Skip to content

ci(id): shfmt-check fails on main — pre-existing, unrelated to PR diffs touching it #3208

Closed

Description

@dezren39

Found by queue worker lane B while shepherding PR #3184 (task 4622, 2026-10-31).

Evidence:

  • id workflow run 41221436449 on main @ b3b9ad3 (2026-10-31T16:48Z): job "basic: nix flake check (shfmt-check)" concluded FAILURE.
  • The same job failed in dispatched id run 41231798279 for PR fix(id/web): encode xterm modifiers for special keys in world keyboard encoder (#732) #3184 @ 64e63c0, whose diff touches only pkgs/id/web/src/world-keyboard.ts and world-keyboard.test.ts (TypeScript) — shfmt formats shell scripts, so the PR cannot be the cause.
  • Other jobs in the main run were still in progress at filing time; job logs for the PR run are unavailable until that run completes, so the specific shell file(s) failing shfmt are not yet identified.

Acceptance: identify the shell file(s) failing shfmt on current main (run the shfmt flake check on a clean main checkout), fix the formatting or the check wiring, and verify a main id run with shfmt-check green. Until then, PR shepherds should treat shfmt-check failure as pre-existing and not block unrelated id PRs on it.

Activity

  1. added
    kind/ciCI/CD pipelines, workflows, and build automation
    on Oct 31, 2026
  2. added
    priority/lowNice to have; do when convenient
    effort/xsTrivial: expected under 30 minutes of work
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: Filed from PR #3184 shepherding (task 4622, since merged for #732); the acceptance text already tells shepherds to treat this failure as pre-existing on unrelated id PRs.

    Notes: Evidence verified at filing: main run 41221436449 @ b3b9ad3 has the shfmt-check job FAILURE, and PR #3184's diff (TypeScript only) cannot be its cause. The specific failing shell file(s) are not yet identified — the PR-run job logs were unavailable at filing. The body already carries acceptance criteria, so no body change was made.

    Risks: Low direct risk, but a permanently-red main check erodes the id workflow's signal for every PR that touches it.

    Suggested approach: Run the shfmt flake check on a clean main checkout (CI or laptop — no sandbox builds), name the failing file(s) on this issue, fix formatting or check wiring, and confirm a green main id run.

    — fleet monitor intake, 2026-10-31 fleet-monitor run (19:12 CDT)

  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
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 3, 2026
  5. 2 remaining items

  6. added
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    queue/queuedHas a queued task in the Supabase agent queue
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: queue worker (repo-worker-code), lane 9aca43b4-5439-4939-9f71-323f5d32521b (OpenChamber scheduled lane)
    • Session / ID: task 8217
    • Found via: queue claim (repo-health-code-pilot coverage join, 2026-11-03)
    • Task: triage ci(id): shfmt-check fails on main — pre-existing, unrelated to PR diffs touching it #3208 — reproduce the shfmt-check failure on current main, name the failing shell file(s), scope the fix or close with evidence.
    • Expectation: xs — identify cause and either fix it or record the fix path conclusively.
    • Links: none yet
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane 9aca43b4-5439-4939-9f71-323f5d32521b (OpenChamber scheduled lane)
    • Session / ID: task 8217
    • Found via: queue claim (repo-health-code-pilot coverage join, 2026-11-03)
    • Task: triage ci(id): shfmt-check fails on main — pre-existing, unrelated to PR diffs touching it #3208 — reproduce the shfmt-check failure on current main and name the failing file(s).
    • Expectation: xs — done: the failure no longer reproduces; it was fixed on main and CI proves it.
    • Links: fix commit 26c972e36

    Verdict: fixed on main — closing as no longer reproducible.

    1. The exact check is clean at current main. On a clean worktree of origin/main @ 1c1aa4a79 (2026-11-03), running the check's own command verbatim —
      cd pkgs/id && find . -name '*.sh' -not -path '*/node_modules/*' -exec shfmt -d -i 2 -s {} +
      — exits 0 with an empty diff. (pkgs/id/flake.nix:557 defines the check this way.)
    2. The failure had a cause and it was fixed. 26c972e36 "style(id): fix shfmt drift in recipe checks" (on main, 2026-11-03T01:08Z) reformatted pkgs/id/scripts/just-recipes-check.sh and just-recipes-check-test.sh. Feeding those two files as they were at 26c972e36^ through the same shfmt -d -i 2 -s invocation reproduces the drift the check reports (e.g. > "$tmp/fresh.json" → >"$tmp/fresh.json"), which identifies the formerly-failing files precisely.
    3. CI agrees. The run cited at filing (41221436449, 2026-10-31T16:48Z @ b3b9ad33) has job basic: nix flake check (shfmt-check) = failure. Every completed id run on main since the fix — 41637749940 (12:40Z), 41639624589, 41639779752, 41640197850 (12:58Z) — has that job = success. Runs after 12:58Z are still queued behind the merge backlog, not failing.

    Two adjacent facts so nobody re-opens this by mistake: the id check (pkgs/id/flake.nix) is enforced (nonzero exit on drift), while the repo-wide one (lib/default.nix:945) ends in || true and is report-only — so drift outside pkgs/id (currently visible in infra/worktree-reaper/systemd/install-units.sh and pkgs/opencode-config-normalize/normalize_test.sh) fails nothing and is out of scope for this issue. Shepherds can stop treating shfmt-check as pre-existing red on unrelated id PRs.

  9. 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 30 (priority/low). 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

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)effort/xsTrivial: expected under 30 minutes of workkind/ciCI/CD pipelines, workflows, and build automationmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/lowNice to have; do when convenientqueue/queuedHas a queued task in the Supabase agent queuesource/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