Skip to content
This repository was archived by the owner on Oct 23, 2026. It is now read-only.
This repository was archived by the owner on Oct 23, 2026. It is now read-only.

Dev MCP: coordination_resume does not persist paired carrier into subsequent tool calls #410

Closed as not planned

Description

@James3014

Problem

A successful coordination_resume returns a valid paired carrier, but the pairing is not available to the immediately following Dev MCP call. work_resume_prepare fails with:

A current paired carrier is required

This reproduces even when coordination_resume and work_resume_prepare are invoked sequentially inside the same Code Mode transaction.

Fresh reproduction

  • observed devspace main: 4e0f68002c109b5db7e0e676c376805996ff85c4
  • pending pairing: pair_31bf50a2-5e6c-4598-8cab-050e4fc16905
  • coordination_resume(...) returned carrier carrier_f1009558-b2f5-4ada-acd4-a63a97869299, version 1, with exact issue379/worktree_write contract.
  • next work_resume_prepare(workspaceId=ws_bc65c388d4, ...) returned A current paired carrier is required.
  • same failure reproduced when both calls were awaited sequentially in one Code Mode invocation.

Expected

After an authenticated coordination_resume, the resulting paired carrier must be bound to the caller/session identity consumed by subsequent coordination/work-resume tools, at least for the same conversation/tool session and transaction. A successful resume must not acknowledge pairing if the next tool cannot observe it.

Safety / impact

  • Blocks canonical G2 admission preparation for legitimate isolated workspaces.
  • Forces callers toward external/raw execution workarounds if not fail-closed.
  • Must preserve current carrier scope/version/expiry and must not broaden authority.
  • Do not solve by silently creating a new carrier on each call.

Acceptance

  1. coordination_resume followed by coordination_carrier_status and work_resume_prepare observes the same carrier identity/version.
  2. Works across normal sequential MCP calls in one conversation.
  3. Works when the two calls are issued sequentially inside one Code Mode transaction.
  4. Wrong/stale credential still fails closed.
  5. Expired/superseded carrier still fails closed.
  6. No authority widening or implicit re-pairing.

Activity

  1. github-actions commented on Oct 6, 2026

    @github-actions

    Authority: RESEARCH_OBSERVATION_ONLY / NO_ENGINEERING_AUTHORITY

    Hybrid replication capture receipt
    {
      "body_gzip_base64": "H4sIAAAAAAACA41VTY/jNgy9+1cQmMsWiJ1PZ+IFepjudoseplhgC/SY0DI9I4xiuZIcT/59SdnOZLbZohfDlqXHR75H6u4OvjpbGjomyQP4Tinyvu4MHJS1rtINBm2bvSPfHekAjkLnGg8IJzS6gha1owoUOqfJzaDsAoRniuu6eQLtobEB8ITaIEeBYON/fTxSpTGQOUNtjbG97P5MJ3j89JXhjMng0Fv3Mkbet45adMygZiQPvQ7PH5Pk8ACqc46a8B0TCezo707WDkny53P8bp2tOk4Q6EQN9M/8uJ0mNtUPwvMDdHOyLxzLcwAOrZntmRe9rigm5/FI8Mny16M8gsPGo5IAWZLc3cEXBn2+0JH1JEnBlp7ciWErOvkWFcERdfMRDhta1NvdYrFSy0VR5lV5Twva3m/V+p6X86LY1vUuV5sDg7TUVFLJsf58Wt7262VZ5wtcpTltVbrJi126U1imi3xBm1ott8Uil+O3qvEhy7KfJuWvKnwYX/b1crEo8nyXlqs6TzdYYYqq2qS4XWNxv9sWq6I4zOBEzjMqLGdRPaBXrgnr5Dta3xdzqXZwRPve6UCgbMN1UyFjVg29hptyfJC1WKvfq597vy/VNlfr3a7azOA71v/PKRItqicu61jqi2eqwS6lZeZiT7Yg8X/skdn+ywpgm2sHiGEUvhng19eWFB/jlqsDU8AGsGPnMABvE7a3XDmL5pIPEyaNr/I4dj5ASUyxY/eOfSZUyc09N7XUnh3KMcJZyiuYFZRnbvpypA/XYaMi6RCb4azxM8AAhpDj1Na9WZ3BRNzhlOyEKZ700bX94d2IGbEj8Tgl1Etje0PV09UAqWOcaIEIrbCRvWO3gA5DSb9hTZzXnCcL+yFIQ/1irHrxcsA2XFcDv60Aq6MeqA0WipxjNoaedNBHLj87wpoow8VeXozxxTqZHUNJPbPp0VVsY1awQTN32PMHqS5CylF0IoWXHISyeCpVxnqqBO5R0mYWQx6TOSc1vbItzceemdNrq905lvNSrdJZZDmjcyz3zFlAP9v4jxNgTNFWG0ZlTypHGF2DXMv+EoaZEqrB0kMhH1ieNmCjKEmW2Q/m4zCyB/u83zENBR8wdP6/JumooL/y0dSRo0un9LNklcFfogVbxFkvd4o7ornqusu14afuuzZllqwngNjFEjH0djwQR7qModsT/X0rvxvmG0Z1tnmac7Z8t3GNq5GOD9qY8a6aJM8zaXzp2bnvWubGu9/a99aJbQZ/2DeBeW4yvojIfmWfG6104C5Kx2bJ/gFmWS/0zQcAAA==",
      "capture_sha256": "775a829765e9f1a72adc0a5e177d73d198a2c54d838df874aafa1621a9ac68ab",
      "captured_at": "2026-10-06T21:57:38Z",
      "contract_sha256": "3085764ff5c1d3fe8b9a55f6d05ac2d6ed2e9bfa1398852807c7a2b1ad2cf1cc",
      "created_at": "2026-10-06T21:57:29Z",
      "default_branch": "main",
      "issue_number": 410,
      "issue_updated_at": "2026-10-06T21:57:29Z",
      "pre_implementation_revision": "4e0f68002c109b5db7e0e676c376805996ff85c4",
      "repository": "James3014/devspace",
      "schema": "nexus.hybrid_replication.capture.v1",
      "source_event_id": "actions:37537448918:1",
      "title": "Dev MCP: coordination_resume does not persist paired carrier into subsequent tool calls"
    }
  2. github-actions commented on Oct 6, 2026

    @github-actions

    Authority: RESEARCH_OBSERVATION_ONLY / NO_ENGINEERING_AUTHORITY

    {
      "activation_boundary": "2026-10-06T16:12:42Z",
      "activation_state": "AUTOMATIC_CAPTURE_READY",
      "admitted_at": "2026-10-06T21:57:38Z",
      "capture_sha256": "775a829765e9f1a72adc0a5e177d73d198a2c54d838df874aafa1621a9ac68ab",
      "disposition": "ADMITTED_PRIMARY_FRESH_TASK",
      "exclusion_set_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "implementation_pr_numbers": [],
      "issue_state_at_admission": "open",
      "receipt_sha256": "33addd476a60d6a091a3f304cd242505956a2b810d367779e8b1d1fc79a68066",
      "schema": "nexus.hybrid_replication.admission.v1",
      "task_key": "James3014/devspace#410",
      "tracked_parent_created_at": null,
      "tracked_parent_issue_number": null
    }
  3. James3014 commented on Oct 6, 2026

    @James3014
    OwnerAuthor

    Additional downstream impact observed while closing #379 / PR #383:

    • Dev M5 candidate_integration_readiness for the exact immutable fix: resolve Mach-O LC_RPATH dependencies in host-operation sandbox carveouts (#379) #383 Candidate onto a fresh current-main clone returned fully ready: Candidate verified, destination head matched, zero path overlap, zero blockers.
    • The corresponding candidate_integrate(confirmApply=true) then failed before first effect with:
      [NEXUS_ADMISSION_REQUIRED] Nexus-enrolled repository mutation requires a current resumableWork pointer prepared from the canonical carrier before the first effect.
    • work_resume_prepare could not produce that pointer because the preceding successful coordination_resume pairing was not visible to the next tool call, which is the Dev MCP: coordination_resume does not persist paired carrier into subsequent tool calls #410 reproduction.
    • effectState remained effectively not started; no partial Candidate integration occurred.

    Practical impact: legitimate Dev M5 repository writes become unavailable even after explicit Owner carrier approval, forcing callers to stop or use an independent non-Dev-MCP transport. This strengthens the acceptance requirement that resumed carrier identity persist into the immediately subsequent admission-preparation call without implicit re-pairing or authority widening.

  4. james3014-nexus-agent commented on Oct 16, 2026

    @james3014-nexus-agent

    Closing as superseded (2026-10-16)

    On devspace main e1caddf neither coordination_resume nor work_resume_prepare is registered as an MCP tool (zero occurrences in src/server.ts; src/server.test.ts asserts work_resume_prepare is absent from the direct-dispatch projection and instructions). Repository writes (agent_start) no longer require a resumableWork pointer prepared from a carrier, and C4 (#471, PR #478) makes new cutover_start / dependency_sync Carrier-free. The "resume succeeds but the next call cannot see the pairing" path therefore no longer exists for any new operation.

    Historical bound cutover recovery (the only remaining Carrier use) takes an explicit per-call carrier credential (#382/#385), not session-persisted pairing.

    Disposition: SUPERSEDED_BY_SURFACE_REMOVAL_AND_C4 (#471). Reopen if session-scoped Carrier pairing is reintroduced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions