Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Cove stores what you submit. It does not automatically read your assistant conve
| Operate my own PostgreSQL installation | [PostgreSQL operations](docs/operations.md) |
| Understand privacy or move my data | [Privacy](docs/privacy.md) and [export/import](docs/portability.md) |

The hosted MCP address is `https://cove-context.alx21.chatgpt.site/api/mcp`. Live ChatGPT and Codex assistant connections remain unverified; the browser workflow and official SDK integration tests have separate verification records. Manual handoff copying works without an assistant connection. See the [compatibility matrix](docs/mcp.md#host-compatibility-matrix).
The hosted MCP address is `https://cove-context.alx21.chatgpt.site/api/mcp`. The native Codex 0.159.2 MCP host passed OAuth and all seven tools against the public app, including saved revisions and pinned handoffs. ChatGPT's assistant connection remains unverified. Manual handoff copying works without an assistant connection. See the [compatibility matrix](docs/mcp.md#host-compatibility-matrix) for the exact test scope.

## For developers

Expand Down
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Current automated results are in [GitHub Actions](https://github.com/agammann/co

| Record | Scope |
| --- | --- |
| [October 2 verification](verification-2026-10-02.md) | Dependency updates, compiled browser journey and actual HTTP OAuth/MCP checks |
| [October 2 verification](verification-2026-10-02.md) | Dependency updates, compiled browser journey, actual HTTP OAuth/MCP checks and the native Codex MCP host against the public app |
| [September 19 live acceptance](live-acceptance-2026-09-19.md) | Public browser and mobile journeys, live OAuth/MCP, reproduced issues, fixes, and remaining boundaries |
| [Sites verification](sites.md#verification-on-september-13-2026) | Hosted browser verification, local Worker tests, and remaining external host checks |
| [Original verification](verification.md) | September 10 local PostgreSQL release checks |
Expand All @@ -39,4 +39,4 @@ Current automated results are in [GitHub Actions](https://github.com/agammann/co
| [Design research](design-research.md) | Visual references and redesign direction |
| [Pilot plan](pilot.md) | Proposed evaluation, not completed customer research |

Live external ChatGPT/Codex assistant interactions and production disaster recovery remain unverified. Successful SDK fixtures, manual browser use, and local recovery exercises each establish only their own tested paths.
The native Codex MCP host and signed-in public browser workflow have live verification. ChatGPT's assistant connection, model-generated save/continue conversations and production disaster recovery remain unverified. Each report distinguishes host tool calls, SDK fixtures, browser use and local recovery exercises.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update guides that still call Codex unverified

After declaring the native Codex host live-verified here, the current user and operations guides contradict this status: docs/getting-started.md:37 still says Codex host interactions remain unverified, while docs/sites.md:5 and docs/sites.md:7 say Codex behavior is unverified and no external assistant host has connected. Readers following those guides will receive obsolete compatibility guidance, so update them to distinguish the newly verified Codex tool-call path from the still-unverified ChatGPT and model-generated flows.

Useful? React with 👍 / 👎.

6 changes: 4 additions & 2 deletions docs/mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ Retrieve Cove handoff HANDOFF_ID for project PROJECT_ID. Keep its original snaps
| Official TypeScript SDK 2.0.0 against the public Sites endpoint | Real HTTPS, browser consent, loopback callback, PKCE, project grants | [September 19 live checks](live-acceptance-2026-09-19.md): read-only denial, save, handoff, idempotent retry, token refresh, and revocation passed; these are protocol clients, not assistant hosts |
| Official TypeScript SDK 2.0.0, two independent OAuth clients | Loopback HTTP, native callbacks, S256 PKCE, resource audience, separate grants | Executed in integration tests; see verification report |
| Cove browser/manual workflow | Same-origin UI, private copy formats | Executed by Playwright; see browser report |
| Codex as an actual assistant host | Remote MCP URL, OAuth sign-in, save/continue prompts | Pending live host interaction; SDK tests are not a host test |
| Native Codex 0.159.2 MCP host on Windows | Public remote MCP URL, browser OAuth, one project with read/write/handoff grants | [October 2 live host checks](verification-2026-10-02.md#public-app-and-native-codex-host): all seven tools, save/handoff retries, conflict rejection, pinned snapshots and browser-visible persistence passed through the app-server's MCP tool-call interface; model-generated save/continue conversations were not exercised |
| ChatGPT as an actual assistant host | Reachable HTTPS remote MCP endpoint and account's available connection flow | Public deployment is available; live assistant host interaction remains unverified |

Checked official instructions: [Codex MCP](https://learn.chatgpt.com/docs/extend/mcp?surface=cli) and [ChatGPT connection testing](https://developers.openai.com/plugins/deploy/connect-chatgpt). Exact host UI and availability can vary by account. No host has been silently configured and no public tunnel has been opened. Record client/version, date, endpoint, negotiated protocol, configuration, grants, and actual saved IDs when verifying a host. Do not call provider support verified based only on registration or discovery.
Checked official instructions: [Codex MCP](https://learn.chatgpt.com/docs/extend/mcp?surface=cli) and [ChatGPT connection testing](https://developers.openai.com/plugins/deploy/connect-chatgpt). Exact host UI and availability can vary by account. The October 2 check used a temporary host configuration and did not change the user's persistent MCP configuration. Record client/version, date, endpoint, configuration, grants, and actual saved IDs when verifying a host. Do not call provider support verified based only on registration or discovery.

If an embedded browser cannot use your physical security key, open the host's current authorization URL in your regular browser and finish there. Keep the host's login request running until its callback reports completion. The live check used Chrome with the owner's existing signed-in session and a grant limited to one disposable project.
21 changes: 20 additions & 1 deletion docs/verification-2026-10-02.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,23 @@ Run `node scripts/verify-sites-mcp.mjs` against the documented local Sites fixtu

GitHub Actions passed 21 tests including actual PostgreSQL and OAuth integration, the email sign-in and recovery browser journey, and the compiled Sites browser and HTTP MCP checks. A separate disposable Compose job restored a fictional saved revision and pinned handoff, compared complete project/history contents, revoked restored grants, and verified persistence after a database restart. The production container passed fresh migration, health and frontend checks, Host validation, non-root/read-only startup, restart, and rejection of insecure demo settings. See [the verified run](https://github.com/agammann/cove/actions/runs/36962954567) and [the workflow](https://github.com/agammann/cove/actions/workflows/ci.yml).

The local sign-in uses synthetic identity headers on loopback. Live ChatGPT sign-in and a native Codex or ChatGPT assistant interaction still require the owner's account connection. SDK protocol checks do not establish those host integrations. Production recovery, off-host backups and participant usability are outside this evidence.
The local sign-in uses synthetic identity headers on loopback. The public checks below use the owner's actual signed-in account. Production recovery, off-host backups and participant usability are outside this evidence.

## Public app and native Codex host

The public Sites deployment at `https://cove-context.alx21.chatgpt.site` was checked with Chrome 154.0.8037.95 and the native Codex 0.159.2 app-server on Windows. A temporary MCP configuration pointed at `/api/mcp`; the user's persistent MCP configuration was unchanged. The native host completed OAuth through Chrome and its loopback callback, reported `connected` with OAuth authentication, and discovered all seven tools. The consent grant covered only the fictional **Verification — October 2** project, with read, update and handoff permissions for seven days.

The browser-created project and revision 2 were retrieved through the native host. All seven tools returned real hosted data:

- Project listing and search returned only the granted fixture.
- Full context and the browser-created handoff preserved the saved goal and next step.
- Updating with `expectedVersion: 2` saved revision 3. Repeating the same request key and payload returned the same revision ID, without another revision.
- A fresh request key with the stale base returned `VERSION_CONFLICT` and current version 3. Reusing the successful key with changed content returned `IDEMPOTENCY_MISMATCH`.
- Creating a revision 3 handoff and repeating its request returned the same handoff ID. The new handoff recorded the old handoff as superseded.
- The original handoff still held revision 2's complete snapshot and copy formats, while reporting current version 3 and the two changed fields. The new handoff matched revision 3 exactly.
- A request for an unavailable, ungranted project ID returned `PROJECT_UNAVAILABLE` without project data.
- Chrome showed the saved revision, completed-work entry and both handoffs after the host writes.

The fixture's saved revision ID was `34321feb-21ab-41ba-a516-3155a90bfaf2`; its revision 3 handoff was `e308bddf-a09e-41e5-a886-e4c9309c9ff3`. These are private fixture identifiers, not public sharing links.

These checks exercised the native host's OAuth and MCP execution path through its app-server tool-call interface. They did not run a model-generated save/continue conversation, install a persistent Codex connection, or verify ChatGPT's assistant connection. ChatGPT account sign-in to the website is separate from ChatGPT acting as an MCP client. Refresh and revocation were covered by the separately documented SDK checks, not by this native-host session.
Loading