Repository navigation
Open
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/ciCI/CD pipelines, workflows, and build automationCI/CD pipelines, workflows, and build automationmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
On 2026-10-30, three NixOS switch attempts in a row died inside the mcpx derivation's checkPhase:
- internal/e2e burns its whole 30m timeout in the sandbox. The suite spawns real script subprocess trees; the build sandbox has no init reaping them, so they pile up as zombies (~3,800 observed, process table degraded) and the package runs to the
go test -timeout 30mcap:FAIL github.com/dezren39/mcpx/internal/e2e 1800.385s. - internal/settings env tests fail in the builder environment.
TestNoUndeclaredEnvReadandTestTheScriptEnvironmentIsWhatTheCodeSetsassert the process environment is exactly what the code sets; the stdenv builder env makes that untrue inside the sandbox.
Interim fix (the mechanism package.nix itself provides): both packages are in checkExclude in pkgs/mcpx/package.nix with the reasons recorded there. The full suite still runs in CI on main.
To restore sandbox checks:
- e2e: bound and reap spawned subprocess trees when running under a non-init supervisor, or split the process-spawning cases behind a sandbox capability check.
- settings: scope the environment assertions to the variables mcpx itself controls, ignoring builder-provided vars.
Acceptance criteria
- mcpx
internal/e2eandinternal/settingsare removed fromcheckExcludeinpkgs/mcpx/package.nix(or any remaining exclusion is narrowed and re-justified in place). - The e2e suite's spawned subprocess trees are bounded/reaped under a non-init supervisor, so the suite no longer burns its 30m timeout in the nix build sandbox.
- The settings env assertions scope to the variables mcpx itself controls, so they pass in the stdenv builder environment.
- The full suite still runs in CI on main (unchanged).
Metadata
Metadata
Assignees
Labels
app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)Package/app: mcpx (pkgs/ or apps/ in this repo)effort/mMedium: expected under 1 day of workMedium: expected under 1 day of workkind/ciCI/CD pipelines, workflows, and build automationCI/CD pipelines, workflows, and build automationmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
mcpx: exclude e2e and settings from the sandbox check phase (#2686)
Merge pull request #2687 from developing-today/fix/mcpx-check-exclude
dezren39 commentedon Oct 30, 2026
Interim fix landed in #2687 (merged d3ba80a):
internal/e2eandinternal/settingsare now incheckExcludein pkgs/mcpx/package.nix with the sandbox reasons recorded, so the NixOS switch is unblocked. This issue stays open for the restore work described above — making both suites sandbox-safe so the exclusions can be removed. The full suite continues to run in CI on main.dezren39 commentedon Oct 30, 2026
Precision note from the 2026-10-30 05:02 switch log on the internal/settings failures: the undeclared-read report names a specific variable —
MCPX_ADAPTER_DECLARATION_SHA256, set at cli/adapter.go:264 and read at routes_settings.go:906 without a declaration. That looks like a genuine undeclared read the test caught (not only a sandbox-environment artifact), so the restore work for internal/settings likely starts with declaring that variable properly; the e2e exclusion stands on the zombie/timeout grounds above.mcpx: also exclude internal/cli from the sandbox check phase (#2686)
Merge pull request #2707 from developing-today/fix/mcpx-exclude-cli
dezren39 commentedon Oct 30, 2026
Update: with e2e + settings excluded, a standalone realise (2026-10-30) showed every other package passing — conformance included — except
internal/cli, which burned its whole 30m timeout (1803.655s) with no failing test: its tests drive the real CLI, daemon and adapter subprocesses and hang waiting on them in the sandbox.internal/cliis now also in checkExclude via #2707 (merged 86c6f61). The restore scope for this issue now covers all three packages: e2e, settings, cli.mcpx: exclude conformance and defaults from sandbox check phase (#2686)
Merge pull request #2710 from developing-today/fix/mcpx-exclude-conf-…
dezren39 commentedon Oct 30, 2026
Update 2: at the newest main the realise also fails fast in
internal/conformance(TestAuthSplit/TestMatrix — auth-split matrix ahead of the in-flight auth-matrix landing) andinternal/defaults(TestNoPackageRedeclaresADefault — unregistered const in internal/execsvc). Both are main-side desync, not sandbox issues; both now excluded interim via #2710 so the OS deploy stops gating on them. Restore scope: e2e, settings, cli (sandbox-shaped) + conformance, defaults (main desync — these two should drop out as soon as their owning work lands and CI on main is green for them).43 remaining items
dezren39 commentedon Nov 4, 2026
🤖 Agent note · parked
2e6dae3f82ecb0df4373a628b62cb4e0169d7229still excludesinternal/e2e,internal/settings, andinternal/cliinpkgs/mcpx/package.nix. No code changes or tests this pass.queue/parked,status/parked, andwork/assigned.~/git/fleet/8663; preserve existing primary-clone changes (flake.lockand.cache), reproduce the settings failure before changing tests, address subprocess-tree reaping, and do not alter the downstream-sensitivego test -timeout 30m $pkgsline.dezren39 commentedon Nov 4, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 4, 2026
Lane M claimed task 8663 for #2686; execution-lane assignment returned
opencode, so this task is handed off to the laptop claimant (opencode-claimant), which launches the bound session. Attempts 23/24 — near cap; if the claimant does not bind before lease expiry, a cap raise may be needed (fleet-monitor repair pattern).dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off