fix: recover Doable MCP authentication in place - #18
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A copied Doable Round could reach the coding agent with the plugin installed but the active MCP connection still unauthenticated. The agent then diagnosed the empty token, changed configuration, and asked the user to restart and paste the request again.
This change preflights the live MCP connection against the exact copied Round and organization before using local state or scanning source. Missing, stale, invalid, and wrong-organization connections now recover inside the original conversation: the agent configures the user-scoped connection, Claude Code asks for only
/mcp→ reconnectdoable, and the original request resumes automatically. Coding-agent-origin feature tests receive the same live preflight before workspace setup or suite lookup.The plugin release is bumped to 0.2.4, and release verification now locks in the preflight and same-conversation recovery rules.
Privacy and compatibility
Credentials remain owned by the coding-agent host and may be stored only in its user-scoped MCP credential/configuration store. They must not be echoed, passed on a command line, written to the project workspace, or included in Doable payloads. The deterministic helper and MCP/backend contracts are unchanged;
get_code_context_connection(round_code=...)already supports the required preflight.The workflow applies to Codex, Claude Code, and Cursor. Claude Code still requires one interactive
/mcpreconnect because an agent cannot invoke its slash-command UI.Verification
npm testuv run --with pyyaml python ~/.codex/skills/.system/skill-creator/scripts/quick_validate.pyfor all three Skillsuv run --with pyyaml python ~/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py plugins/doable-code-context.doable/state includedA fresh Claude Code session was not run locally because the Claude CLI is not installed on this host. The release verifier covers the required host behavior, and the existing MCP server contract was checked to accept both
round_codeandlocal_workspace_id.