Skip to content

mcpx fleet config: gopls to worktree scope + live workspace proof #961

Open

Description

@dezren39

Slice 4 of decision record 0004 (pkgs/mcpx/docs/decisions/0004-scope-resolved-roots.md, PR #957). Depends on slice 1 (#958) and slice 3 (#959); slice 2 not required. Related: #864 (the fleet .mcpx.json still carries /home/user absolute paths — this slice needs the config in its post-#864 shape, or must say why it proceeded anyway).

What to do

  • Flip gopls-mcp-server to "scope": "worktree" in the fleet config (the user-level config symlinked to this repo's .mcpx.json; identical server lists on both machines stay identical).
  • This is deliberately last: flipping scopes before the spawn-cwd and initialize work landed would only multiply processes.

Acceptance criteria (live proof, from nix#817/#819)

  • With gopls at "scope": "worktree" behind the fixed spawn cwd and initialize root, go_package_api on a module path returns the module's real API promptly (the 2026-10-25 result — empty after 156 s — does not recur).
  • The same proof passes for a caller in a linked worktree, rooted in that worktree, not just the main checkout.
  • Two callers in different checkouts get distinct gopls instances, each rooted in its own checkout (visible in mcpx status root field from slice 1).

Activity

  1. added
    kind/featureNew feature or capability request
    source/humanFiled directly by a human
    status/blockedQueue or user escalation state
    priority/lowNice to have; do when convenient
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 26, 2026
  2. dezren39 commented on Oct 26, 2026

    @dezren39
    MemberAuthor

    Intake review

    Still live (verified this run): slices 1 (#958) and 3 (#959) are unimplemented on main and the design record is still in open PR #957, so the scope flip this issue performs would, by its own reasoning, only multiply gopls processes if done today. No merged PR addresses it.

    Related: #958 (slice 1) · #959 (slice 3) · #960 (slice 2, explicitly not required) · #864 (fleet .mcpx.json absolute /home/user paths — this slice wants the post-#864 config shape or an explicit note on why it proceeded anyway) · PR #957 (decision 0004, open) · origins dezren39/darwin-nix#817 / dezren39/darwin-nix#819.

    Notes / risks: Marked status/blocked at intake — deliberately last in the set. Its acceptance is a live proof, not unit tests: the 2026-10-25 baseline (empty go_package_api result after 156 s) is the regression to beat, and the proof must run from a linked worktree as well as the main checkout, with both machines' fleet configs staying identical.

    Suggested approach: Only after #958 + #959 land: flip gopls-mcp-server to "scope": "worktree" in the fleet config, then run the two-checkout proof and record timings + mcpx status root output on this issue.

    — Fleet monitor intake enrichment (acceptance criteria were already in the body; labels normalized, meta/enriched added).

  3. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), Lane B shift
    • Session / ID: queue task 2298 (triage)
    • Found via: queue claim
    • Task: Triage verdict for mcpx fleet config: gopls to worktree scope + live workspace proof #961 — CONFIRMED but GATED: the flip has not happened, and its slice-3 dependency has not landed
    • Expectation: done = verdict + gate recorded + re-route (below)

    Evidence (fresh GitHub reads at main HEAD e561ab58):

    Why gated: this issue is deliberately last in decision record 0004's ordering — "flipping scopes before the spawn-cwd and initialize work landed would only multiply processes." The spawn-cwd half (#958) has landed; the initialize half (#959) has not. Flipping gopls to worktree scope now would run it against an initialize handshake that doesn't yet send the scope-resolved root, so the live proof in the acceptance criteria (go_package_api returning the module's real API promptly behind the fixed spawn cwd and initialize root) cannot pass yet.

    Route: no fix packet enqueued yet — that would invite exactly the premature flip the decision record warns against. This issue is re-queued (queue/queued + status/needs-triage) for fleet-monitor reconciliation; the next triage pass should re-check #959 first, and once #959 closes, enqueue the slice-4 small_fix (flip gopls-mcp-server to "scope": "worktree" in the fleet config on both machines' identical server lists + the live go_package_api proof). This triage task completes as triaged.

  5. 221 remaining items

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 3, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 20 (priority/low). Stale queue/claimed label removed — it had no live task behind it. Issue carries status/blocked; the covering triage must re-derive and name the current blocker. If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  8. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: triaged_done
    task: 8094 (repo-health-code-pilot, repo-worker-code; OpenChamber scheduled lane 9aca43b4-5439-4939-9f71-323f5d32521b)
    state: triaged; #961 remains live but gated (issue stays OPEN/status/blocked). No config change and no implementation packet.
    verified: Fresh GitHub state and current main 1391b59. #958 is CLOSED via merged PR #3925; #959 is now CLOSED via merged PR #4992. #864 remains OPEN/status/blocked, with no matching open PR; its latest routing evidence says small-fix task 4865 is blocked because fff-mcp is absent from the mcpx daemon PATH. Searches found no open PR for #961 or gopls.
    main config: .mcpx.json still has no scope on gopls-mcp-server. fff remains /home/user/.local/bin/fff-mcp; codedb is now node /home/user/git/code/bin/codedb-bridge.mjs. Thus the machine-specific config shape is not settled; the #864 issue/task remains an external prerequisite and was not touched by this #961 triage.
    verdict: Decision 0004 slice 4 is still live but gated. The prior #961 disposition asked not to enqueue another coverage/fix packet until #959 closes and #864 config shape settles. #959 has closed, but #864 has not. Keep status/blocked; do not flip scope or enqueue the implementation yet.
    resume: after #864's config/path blocker is resolved and its shape is reflected in current main, revalidate #961 and run the acceptance proof through gopls from both the main checkout and a linked worktree; only then flip gopls-mcp-server to scope=worktree.
    bookkeeping: sandbox backlog and sweep.log deferred to fleet reconciliation.

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

Metadata

Metadata

Assignees

Labels

effort/sSmall: expected under 2 hours of workkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/lowNice to have; do when convenientsource/humanFiled directly by a humanstatus/blockedQueue or user escalation statetask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions