Skip to content

fix: verify current chat after Hosted MCP sign-in - #33

Draft
imgoose wants to merge 1 commit into
codex/preserve-original-failure-metadata-20261025from
codex/hosted-onboarding-current-chat-20261027
Draft

imgoose wants to merge 1 commit into
codex/preserve-original-failure-metadata-20261025from
codex/hosted-onboarding-current-chat-20261027

Conversation

@imgoose

@imgoose imgoose commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Hosted Codex onboarding currently tells users to open another chat when tools remain absent after sign-in, and treats project-access errors as a reason to repeat OAuth. The reported incident later succeeded in its original chat, so those unconditional instructions can mislead the user.

This change checks current tool discovery and performs an actual read-only list_projects call before saying the conversation works. Empty project lists count as a successful connection. If tools remain unavailable, it allows one refresh/reconnect action actually supported by that host, then offers a new chat only as a fallback carrying the original task/project context. Project permissions and browser-cookie sign-in remain separate from MCP authentication.

Scope: one Codex Skill file. No OAuth, host-runtime, backend, collector-runtime, version, or Claude changes. The customer's recovery preceded this candidate and is not attributed to it.

Dependency: stacked on #29 and targeting its collection-integration branch, so this review contains only the onboarding change. Merge this bounded change into the #29 branch before publishing that integration to main/the store. This PR itself does not publish either channel.

Validation for8018d59a660b8c9e565b1c8567181a925009c21b:

  • Independent final-diff, exact content hash, Skill structure, relative links and whitespace checks pass.
  • Real gpt-6.1-sol in Codex0.164.0-alpha.11.1 naturally selected and read the exact candidate Skill, then called list_projects({}) in that same ephemeral conversation. The controlled read-only MCP returned an empty list; the model said the current chat could continue and kept Web sign-in unknown.
  • A real model read the candidate and called list_projects/read_project. The fixture returned403 PROJECT_ACCESS_DENIED; the model directed account/project-access checks without requesting another MCP OAuth login.
  • In a separate ephemeral conversation with a genuinely empty current tool inventory and no model-callable refresh action, the model read the candidate/diagnostic reference and provided a conditional new-chat handoff. It did not claim recovery and required an actual read in the continuation.
  • Both exact-head GitHub Plugin helpers test checks pass. Root independent behavior review passes for these three controlled scenarios.

Boundaries: these are real model actions against read-only loopback fixtures, not a new production OAuth/Web login test or a trigger-rate estimate. The original user's0.154.0 GUI and actual same-thread automatic tool-loading mechanism were not tested. There was no forced Skill-body injection, copied credential, new login, user configuration change, global install or production ChatCut call. Test thread execution used the existing permitted mode after requirements checks; no OS/UAC settings changed. Failed test-harness preparation attempts are retained separately and excluded from passing scenario evidence. Doctor remains on hold.

@imgoose
imgoose marked this pull request as ready for review October 27, 2026 16:58
@imgoose
imgoose marked this pull request as draft October 27, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant