Skip to content

mcpx: dogfood .opencode plugin copy drifted again (ops.gen.ts adapters ops + instructions.test.ts missing) — sync guard runs push-only, so it now fails main and skips the whole mcpx test job #2795

Closed

Description

@dezren39

Summary

The dogfood plugin copy has drifted from the canonical mcpx plugin again — the exact failure #314 added a CI guard for — and because that guard sits inside the push-only basic: test job, the drift merged silently and now fails that job on main, skipping the entire mcpx Go test suite and plugin tests on every main push.

Evidence (main da42bfe7, verified this run)

diff -r pkgs/mcpx/plugin/opencode/mcpx .opencode/plugin/mcpx exits 1:

  1. pkgs/mcpx/plugin/opencode/mcpx/instructions.test.ts exists only in the pkgs copy (added in 43ab3040, mcpx plugin: the instructions option has never worked on opencode v1 #1938, 2026-10-30 02:25 CDT) — never copied to .opencode/plugin/mcpx/.
  2. ops.gen.ts differs: the pkgs copy gained the adapters_add / adapters_remove operations (table entries at pkgs lines 25–47, client methods adaptersAdd/adaptersRemove at lines 886–902) when it was regenerated in 2aec81c0 (feat(mcpx): live add/remove for adapter declarations (#2118) #2565, 2026-10-30 04:36 CDT). The .opencode copy this repo's own opencode sessions load has neither — a session here cannot call the daemon's live adapter add/remove endpoints through the typed client.

mcpx-session.ts copies are identical (diff exits 0).

The guard is running — too late, and it takes the test suite down with it

.github/workflows/mcpx.yml, job test ("basic: test"):

  • The sync check is step 3 of that job, and the job is gated if: github.event_name == 'push'. Pull requests never run it (the PR-triggered jobs are stress-pr and vendorhash-repair, neither of which diffs the copies), so drift introduced by a PR is invisible until after merge.
  • On push it now fails before anything else runs: e.g. run 41067448387 (push, 2026-10-30T13:56Z) — step 3 "Check the dogfood plugin copy is in sync" = failure; setup-go, go mod tidy -diff, the full go test ./... suite and the plugin bun tests all skipped. Every push run of this workflow today (11:44Z, 12:13Z, 12:15Z, 12:47Z, 12:59Z, 13:56Z) concluded failure — main currently gets no mcpx test coverage from this job at all.

This is #314 recurring: that fix synced the copies and added this guard precisely because "the generation guard inside pkgs/mcpx only compares the pkgs copy" — but placing the new guard in a push-only job left the pre-merge hole open.

Why it matters

  • The repo's own opencode sessions load a stale plugin client missing two daemon operations that shipped today.
  • Main's mcpx CI is red for a non-code reason and, worse, the failure pre-empts the actual test suite — regressions in mcpx on main are currently undetectable by this workflow.
  • Each future regeneration of ops.gen.ts (or plugin test addition) will re-drift the copy the same way until the check runs pre-merge.

Acceptance criteria

  • .opencode/plugin/mcpx/ is byte-identical to pkgs/mcpx/plugin/opencode/mcpx/ again (diff -r exits 0), including ops.gen.ts (with adapters_add/adapters_remove) and instructions.test.ts; mcpx-session.ts copies remain identical.
  • The sync check runs on pull requests that touch pkgs/mcpx/** or .opencode/plugin/** (e.g. its own lightweight job, or a step in a PR-triggered job), so drift fails the PR that introduces it instead of main after merge.
  • A push run of mcpx.yml on main completes the basic: test job past the sync step — the Go test suite and plugin bun tests actually execute.
  • Deliberately drifting one file in a test PR (or an equivalent local demonstration) makes the new PR check fail with the diff shown.

Notes

Activity

  1. added
    kind/ciCI/CD pipelines, workflows, and build automation
    priority/normalOrdinary priority (the default)
    queue/queuedHas a queued task in the Supabase agent queue
    source/creatorFiled by the new-issue-creator job
    task/triageQueue packet kind: verify, reproduce, and route this item
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    effort/sSmall: expected under 2 hours of work
    on Oct 30, 2026
  2. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed

  3. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  4. 30 remaining items

  5. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  6. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state=picked_up; task_id=5429; worker=repo-worker-code; issue=#2795. Resumed the saved awaiting-CI checkpoint. Issue and PR remain open; fresh checks show docs-history, lint, plugin tests, plugin sync, and PR stress pending. PR authored by dezren39, so no PR internals or worktree were touched.

  7. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state=parked; task_id=5429; worker=repo-worker-code; issue=#2795. Parked for 20 minutes because checks remain pending. Resume after checks settle and explicit Drew release/handoff or PR #4235 disposition; preserve the existing implementation and worktree.

  8. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    Parked again (task 5429, lane B): metadata-only revalidation — #2795 still OPEN and assigned to dezren39; PR #4235 still OPEN (non-draft), authored by dezren39, head b8d2733, with checks still QUEUED (plugin sync, docs-history, lint, plugin tests, PR stress). Drew-owned PR hard stop applies; no diff, branch, worktree, or reviews inspected or touched. Resume after checks settle AND ownership is explicitly released/handed off, or PR #4235 is disposed.

  9. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 2, 2026
  10. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up (resume) — merging PR #4235

  11. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done — PR #4235 merged

    • Agent: Lane E queue worker shift (repo-worker-code) · queue task 5429
    • Merged: PR fix(mcpx): sync dogfood plugin and check PR drift (#2795) #4235 squash-merged (merge commit 3d5023d): canonical pkgs/mcpx/plugin/opencode/mcpx mirrored byte-for-byte to .opencode/plugin/mcpx plus mcpx-session.ts, and a new read-only pull_request-only plugin-sync job in mcpx.yml so drift is caught on PRs instead of failing main after merge (the push-only basic: test job and its check step are unchanged).
    • Verification: prior checkpoint — diff -r and diff -q clean after the copy, bun plugin tests 53 passed / 5 skipped / 0 failed, git diff --check pass; Codex review on head b8d2733 completed with zero findings. CI jobs were still pending in the fleet runner backlog at merge time (standing merge authority).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)effort/sSmall: expected under 2 hours of workkind/ciCI/CD pipelines, workflows, and build automationpriority/normalOrdinary priority (the default)source/creatorFiled by the new-issue-creator jobtask/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