Skip to content

mcpx: internal/settings (scriptenv) and internal/conformance (TestAuthSplit, TestMatrix) failing on clean main #2716

Open

Description

@dezren39

Finding (queue worker Lane A, task 3277 verification, 2026-10-30)

Two mcpx test packages fail on a clean checkout of main (verified at 7b76c79, the #2685 merge, in a pristine worktree on the laptop — no local changes):

  1. pkgs/mcpx/internal/settings — scriptenv_test.go:118,123: MCPX_ADAPTER_DECLARATION_SHA256 is set by cli (internal/cli/adapter.go:436) and MCPX_EPHEMERAL is set by exec (internal/execsvc/execsvc.go:758), but ScriptEnv does not declare/list them as setters.
  2. pkgs/mcpx/internal/conformance — TestAuthSplit and TestMatrix fail (each also fails standalone with -run, so it is not suite interference).

Both reproduce with: cd pkgs/mcpx && go test ./internal/settings/ ./internal/conformance/ -count=1 on clean main.

Why it matters

Every queue worker verifying an mcpx PR on the laptop currently has to re-prove these are pre-existing before trusting any other result (this cost ~15 minutes of task 3277's shift). Under the main-only CI model, a red main also means the post-merge runs for unrelated PRs report failures nobody owns.

Acceptance

  • Both packages pass on clean main.
  • The fix names which merge introduced each failure (git bisect or the diff that desynced ScriptEnv / the conformance matrix).

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    priority/normalOrdinary priority (the default)
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 30, 2026
  2. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake pass (2026-10-30 run). Labels normalised this pass: status/needs-triage, effort/s, meta/enriched (kind/bug, priority/normal, app/mcpx were already present). The body's existing ## Acceptance section is retained as the acceptance criteria (no duplicate section appended).

    Still live: no merged PR since filing (2026-10-30T11:37Z) touches mcpx internal/settings ScriptEnv declarations or the conformance TestAuthSplit/TestMatrix failures; the recent merged code PRs are muse-proxy / opencode-config / pm-stack work.

    Overlap warning — read before claiming: this issue is a roll-up of the same main-red failures filed separately as #2697 (the three internal/settings guard tests, including the same MCPX_ADAPTER_DECLARATION_SHA256 ScriptEnv gap) and #2695 (conformance TestMatrix). Whoever takes one of the three should expect the settings half to close #2697's settings items and the conformance half to overlap #2695; the non-overlapping remainder here is TestAuthSplit and the MCPX_EPHEMERAL ScriptEnv declaration. Do not run three parallel fixes on the same two packages.

    Suggested approach: fix once, on one branch: declare both env vars in ScriptEnv, repair the conformance auth-split applicability, then close or cross-link the duplicates with evidence per package.

  3. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Still failing on main @ bcc7a45a (verified locally 2026-10-30T15:45Z, and in the stress: PR changed tests job of run 41069456034, which gates every PR in the queue):

    --- FAIL: TestTheScriptEnvironmentIsWhatTheCodeSets
        scriptenv_test.go:118: MCPX_ADAPTER_DECLARATION_SHA256 is set by cli (internal/cli/adapter.go:436) and ScriptEnv does not declare it
        scriptenv_test.go:123: MCPX_EPHEMERAL is set by exec (internal/execsvc/execsvc.go:896), and ScriptEnv does not list it as a setter
    --- FAIL: TestNoUndeclaredEnvRead
        consumed_test.go:224: internal/daemon/routes_settings.go:906 reads MCPX_ADAPTER_DECLARATION_SHA256 (index), which no setting and no ScriptEnv entry declares
    --- FAIL: TestEverySettingHasAnEffectProbeOrAnExemption
        effect coverage violations:
              script.imports has neither an effect probe nor an exemption
              script.importsOnDynamic has neither an effect probe nor an exemption
    

    script.imports/script.importsOnDynamic are the newer pair — script.cwd and script.interpreter were the other two when PR #2611 started and that PR now ships probes for them, so this ticket shrinks by two. Because stress: PR changed tests runs the whole internal/settings package, this failure is currently red on every queue PR regardless of its diff (#2611 at 05b113ed failed only here, everything else passed).

  4. added
    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
    on Nov 3, 2026
  5. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    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 40 (priority/normal). 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

  6. 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 3, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triage verdict (task 7982)

    • Agent: repo-worker-code, lane code-j (direct execution lane)
    • Verdict: CONFIRMED on current main — and the failure set has grown since filing. Fix enqueued as task 8673 (verified queued).

    Reproduction (this run): pristine laptop worktree at origin/main 8e151e895875, cd pkgs/mcpx && go test ./internal/settings/ ./internal/conformance/ -count=1 — both packages FAIL (log /tmp/go-test-7982.log on the laptop).

    Settings — 5 failing tests (filed as 1):

    • TestTheScriptEnvironmentIsWhatTheCodeSets — as filed, plus a third undeclared setter: MCPX_ADAPTER_DECLARATION_SHA256 (cli, adapter.go:436) undeclared; MCPX_EPHEMERAL (exec, execsvc.go:1197) and now MCPX_TRANSPORT_BEARER_TOKEN (consumer.go:863 + execsvc.go:1200) not listed as setters.
    • TestNoUndeclaredEnvRead — internal/daemon/routes_settings.go:950 reads MCPX_ADAPTER_DECLARATION_SHA256 by hand, undeclared.
    • TestEverySettingHasAnEffectProbeOrAnExemption — proto.elicitationPerMinute, proto.samplingPerMinute, proto.samplingSessionPerMinute, script.imports, script.importsOnDynamic lack probes/exemptions.
    • TestEveryDocumentHasAChapter — TESTING.md + 3 docs/changes files missing from docs/compendium.manifest.json.
    • TestTheEnvironmentDocIsCurrent — docs/environment.md stale (regenerable via the test's -update mode).

    Conformance — 4 failing tests (filed as 2):

    • TestAuthSplit + TestMatrix — as filed: authsplit.json entries (authz-accept-only-own-tokens/server, authz-canonical-uri-guidance/server) do not bind mcpx.
    • TestMessagesClient (new) — client declares extensions it does not handle (elicitation form, io.modelcontextprotocol/tasks, roots).
    • TestUtilitiesServer (new) — completion/complete returns -32601 "capability completions not advertised" where the matrix expects a result.

    Routing: one combined small_fix enqueued as task 8673 (the fix dedupe pattern allows one fix task per issue; per-package detail packets kept as annexes: hidden_files/packets/fix-2716-settings-desync.json, fix-2716-conformance-desync.json; enqueued packet: fix-2716-combined.json). The packet carries #2716's acceptance addendum — name the introducing merge for each desync, and fix the side (code vs fixture) that is actually wrong. Nothing here is blocked; the settings half is mechanical, the conformance half needs per-case code-vs-fixture judgement.

    • Labels: claim labels removed at this terminal state.
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/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/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