Local review UI compatibility probe
This is milestone 1 of the import review UI plan. It is an isolated synthetic plugin, not the auto-bean product UI. It never opens a ledger, changes import schemas, or changes Harbor grading. The product implementation must wait until the desktop checks below pass.
Run the protocol check
From the repository root:
UV_CACHE_DIR=/tmp/auto-bean-ui-uv-cache uv run --frozen --project experiments/review-ui-probe python experiments/review-ui-probe/check.py
This starts the official Python MCP SDK server over stdio and verifies tool discovery, HTML resource retrieval, a structured synthetic session, persisted idempotent actions, and rejection of an invalid action ID. It uses an isolated temporary directory and cleans its test data on exit. It does not prove that the desktop renderer or conversation bridge works.
The small HTML view uses the documented MCP Apps JSON-RPC bridge directly for the compatibility test. The full product UI remains planned in React/TypeScript with the MCP Apps SDK. The lockfile pins the probe's Python dependencies.
Installed test package
On 2026-10-21 an isolated copy of the package was installed as
auto-bean-review-probe@auto-bean-ui-probe. Its temporary marketplace source is
.cache/review-ui-probe-marketplace. It is separate from auto-bean@auto-bean.
The package copy contains only the manifest, MCP configuration, lockfile,
Python project, server, and HTML view; it excludes the development virtualenv.
Codex CLI 0.163.0 confirmed through plugin/read that the plugin is installed,
enabled, and declares the review-probe MCP server. After a tool refresh, the
current conversation exposed open_review_probe and opened its panel.
Required desktop check
- Select Auto Bean Review Probe in the existing conversation's plugin picker. Refresh the plugin list if necessary.
- Open Import Review Probe from the conversation's panel controls or call
its
open_review_probetool. - Confirm the view displays Host bridge connected.
- Choose Read synthetic session. Confirm
example.csvandaccount_review. - Choose Save test action. Confirm one synthetic action is persisted.
- Choose Continue this conversation. Verify the message arrives in the originating conversation and the agent can resume.
- Reopen the view and read again to confirm saved actions survive the view.
The continuation message contains only a synthetic action ID and test purpose. No financial data is read or transmitted. Saving alone never sends a message; the separate continuation button is an explicit test action.
Evidence and completion boundary
Verified on 2026-10-21:
- Real stdio discovery, resource read, structured read, persistence, idempotency, and invalid-input rejection passed.
- Installed plugin metadata reports enabled state and the local MCP server.
- Existing product and Harbor host tests passed: 89 tests.
- Root Mypy passed: 31 source files; the two standalone probe files also passed a separate check using the probe virtualenv as the Python executable.
- The actual desktop host rendered the panel. Its initialization reported
hostInfo.name: chatgpt, version26.1016.51333, desktop platform, andserverTools,serverResources, andmessagecapabilities. - The panel's Read synthetic session button fetched
example.csvinaccount_reviewthrough the host bridge. - Save test action persisted
da987fcc-6568-4978-8dbe-f19facb2f9c6; a subsequent model-sideopen_review_probecall returned that action. - Continue this conversation received a successful host response. The corresponding MCP app message arrived in the same conversation with the matching saved action ID; implementation resumed successfully.
Not yet verified:
- State restoration after closing and reopening the panel.
The computer-use tool explicitly refuses to control com.openai.codex:
Computer Use is not allowed to use the app 'com.openai.codex' for safety reasons.
After tool refresh, the tool call opened the panel and the permitted MCP Apps
browser surface could inspect it and click its controls. Native app control
was not needed. Local rendering and bridge calls are supported on this build.
The full parsed-v2, staged approval, panel, skills, and Harbor changes are not implemented. Do not describe this probe or the existing 89 passing tests as acceptance of that feature.