Skip to content

mcpx: internal/cli package test duration exceeds the 600s stress timeout on PR 2714 (stage 1 of #1980) #2859

Open

Description

@dezren39

Problem

On PR #2714 (stage 1 of #1980, head 61a3d0f8), the stress check still fails on the
internal/cli package — even after the plumbing-source leak fix in that head
(scoped SetPlumbingSource per cli.Run invocation + regression test, A/B verified
on the laptop). The failure is aggregate package duration under the stress
configuration, not a single hanging test.

Evidence

  • CI run 41140869569, job 124354518386 ("stress: PR changed tests (race/shuffle/repeat)"):
    FAIL github.com/dezren39/mcpx/internal/cli 600.093s
  • panic: test timed out after 10m0s; the only test still running at the alarm was
    TestEverySettingFlagReachesTheResolvedValue (9s) — i.e. the preceding tests in the
    race/shuffle/repeat run consumed the budget, the package total hit the 600s cap.
  • All other PR feat(mcpx): cli.Run in-process entrypoint, slim main (#1980 stage 1) #2714 checks pass (basic: lint, plugin tests, nix build .#mcpx-docs,
    CI time budget). Only the stress leg is red, and it blocks the stage-1 merge.
  • Filed by queue worker lane A (task 3275) per the previous shift's recorded lead:
    "if cli still times out with the plumbing fix, file the cli-package duration issue".

Acceptance

  • Identify the top duration contributors in pkgs/mcpx/internal/cli under the stress
    invocation (race + shuffle + repeat) — per-test timings, not guesses.
  • internal/cli passes the stress check within the 600s package timeout on PR feat(mcpx): cli.Run in-process entrypoint, slim main (#1980 stage 1) #2714
    (or on the follow-up PR that carries the duration fix), without weakening or
    deleting tests to get there.
  • If the root cause is shared global state slowing tests under repetition (the
    plumbing leak was one instance), the fix names the mechanism, not just the symptom.

Refs: #1980, PR #2714, queue task 3275.

Acceptance criteria

  • The internal/cli package completes within the 600s stress timeout on the PR stress configuration (race/shuffle/repeat), or the package is split/throttled with the aggregate-duration budget documented.
  • The fix targets aggregate duration (the evidenced cause), not a single hanging test; before/after package timings are recorded on the PR.
  • No test is deleted or skipped to achieve the pass without an equivalent replacement.

Activity

  1. added
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    on Oct 30, 2026
  2. added
    kind/ciCI/CD pipelines, workflows, and build automation
    priority/highImportant and time-sensitive
    effort/mMedium: expected under 1 day of work
    source/queue-workerFiled or worked by the queue/worker pilot
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 31, 2026
  3. dezren39 commented on Oct 31, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: PR #2714 (stage 1 of #1980); CI run 41140869569. Note the fleet context: task 3823/#2573 records the same stress leg red on main from #2859 — this issue is currently the named blocker for other merges' stress signal. Risks: sharding the package changes CI topology; measure first. Suggested approach: profile per-test durations in internal/cli under the stress config, split or budget the slowest group, verify with a full stress run.

    — Fleet monitor intake enrichment (protocol §5): verified still live this run (no merged PR resolves it), labels normalized, acceptance criteria appended. Marked meta/enriched.

  4. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Mechanism found and fixed on PR #2714 (d775939, task 3275): the reach test's per-pair handler invocations each rebuilt the settings schema twice — O(commands x flags) builds, 14.45s of one no-race package run. Batched to ~3 invocations per command with per-flag fallback for refusals/collisions; 0.62s now, assertions unchanged. Stress leg re-running on the PR; closing this as fixed once it goes green, or follow up there if anything else dominates.

  5. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  6. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 7366 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  7. 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
  8. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: picked-up
    queue: repo-health-code-pilot
    task: 7366 (triage, worker repo-worker-code, lane 7b47536b-c162-444c-be8a-3a9538cc4cb5)
    by: openchamber-scheduled-lane
    at: 2026-11-04T03:16:40Z

    Resuming the previous OpenCode handoff and checking current evidence. Issue #2859 remains OPEN, and its canonical follow-up PR #2714 is also OPEN. The issue records the suspected aggregate-duration mechanism and a large local improvement (14.45s to 0.62s for the identified reach test), but the current PR head 2787b48 has only CodeRabbit and production-line-guard checks; no stress run is attached to verify the 600-second acceptance criterion. I will record this blocker without opening a competing fix.

  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged
    queue: repo-health-code-pilot
    task: 7366 (triage, worker repo-worker-code, lane 7b47536b-c162-444c-be8a-3a9538cc4cb5)
    by: openchamber-scheduled-lane
    at: 2026-11-04T03:17:39Z

    Current disposition: issue #2859 remains OPEN; canonical fix path is the already-open PR #2714. The prior change reports the identified reach-test path dropping from 14.45s to 0.62s without weakening assertions. However, the current PR head 2787b48 has no stress-check run; only CodeRabbit and production-line-guard are visible and pass. Therefore the 600-second stress acceptance is still unverified and is the blocker to closing #2859. No duplicate branch, PR, or follow-up task was created.

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/mMedium: expected under 1 day of workkind/ciCI/CD pipelines, workflows, and build automationmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivequeue/claimedQueue worker lifecycle statesource/queue-workerFiled or worked by the queue/worker pilotstatus/in-progressQueue worker lifecycle statetask/triageQueue packet kind: verify, reproduce, and route this itemwork/assignedQueue worker lifecycle state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions