You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf(test): cut audit-fleet.test.sh's Windows wall clock (511 s against 34 s on Linux) #13232
Parent: #3716 (criteria 3 and 4). Measured in #10241, docs/test-wall-clock-baseline.md.
Problem
plugins/repo-fleet-hygiene/skills/audit/scripts/audit-fleet.test.sh took 511 s on the Windows Git Bash host in #10241's corpus run, against 34 s on Linux CI: 15 times slower, the largest ratio of the suites measured. It also exited nonzero there; that failure is the Windows-only-failures slice's, and this slice is its run time.
Fix
Profile the suite and audit-fleet with scripts/run-plugin-tests.sh's timing option (#10200) and a spawn count. Cut the spawns the way #3716 step 3 lists: builtins over subprocesses, one batched git call over many, hoisted walks, shared fixture repositories over one per case. The suites must pass unchanged, so behavior is preserved.
Done when
Linux wall clock for the suite, before and after, is in the PR body
The Windows time, re-measured on a Windows Git Bash host, is in the PR body and in the suite's row in docs/test-wall-clock-baseline.md
The suite's assertions are unchanged (any test edit is a fixture or harness change, named in the PR body)
ci-status is green on the PR head
Split by the backlog HITL session from #10241's result. This was generated by AI.
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: none
Understood: cut process spawns in audit-fleet.sh and audit-fleet.test.sh so the suite runs faster, which matters most on Windows Git Bash (511 s against 34 s on Linux). The suite's assertions must stay unchanged. The PR body should carry the Linux before and after times. The Windows re-measurement is a host check for a person, and the earlier refinement already split it out. The suite's Windows-only failure belongs to #13228. Related: #3716, #13229, #13231. No duplicate found.
Not admitted to the issue lane: its done-when asks for what an unattended lane run cannot perform: item 2 (measure-over-time: "The Windows time, re-measured on a Windows Git Bash host, is in the PR body a..."); recommended split: keep the other items here as the admissible issue and move these to a child issue for the host queue (host-run). Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).
Decision recorded. Route this issue to the host queue whole, for a laptop lane with a Windows Git Bash host.
Agent choice, not an owner answer.
Admission refused it for the lane because Done-when item 2 needs a Windows Git Bash host, and a child issue for that one step would raise the open count, so the issue goes host-run instead. The spawn cuts and the Linux before/after can be built and measured on Linux; only the Windows re-measure needs the Windows host, so one host session does the whole change in one PR. The body's Done-when stands unchanged.
On a fleet host with Windows Git Bash, re-measure the suite before and after the change and record both times in the PR body and in the suite's row in docs/test-wall-clock-baseline.md.
The work-resolve-issue lane stopped on this issue (host-only): the run reports the work needs a host run the lane cannot make.
It added host-run and removed agent-ready: an agent run on a host builds it, and it waits on no decision from a person.
In the run's words:
host-only: the issue's fix starts by profiling audit-fleet.test.sh and audit-fleet.sh with scripts/run-plugin-tests.sh --timings and a spawn count, and its done-when needs the suite's Linux wall clock measured before and after the change. This lane cannot run the suite, the profiler or any test (its Bash runs only the named check and verify wrappers), so it can neither find which spawns cost the time nor measure the result. Changing the code without a profile would be a guess. The issue is labeled host-run; a host session with a shell should take it.
What the run says it did not do:
Profiling audit-fleet.test.sh with scripts/run-plugin-tests.sh --timings and a spawn count: this lane cannot run scripts or tests
Linux wall clock for the suite before and after the change, for the PR body: cannot run the suite here
Windows Git Bash re-measurement and the baseline doc row update: listed in person_checks, left to a person
Shipped in #13374 (merged 324f98e). Windows Git Bash on melo-lap-001, run-plugin-tests.sh --timings, --jobs 1, native C: clone, two pairs alternated with nothing else of this lane running:
All cases pass on both sides with identical result lines, and the production --detail report and plan are identical. The cut removed the tr pipe from every Git probe, tr from lower(), and basename from the suite's git mock: the top three fork sites in a per-pid trace. docs/test-wall-clock-baseline.md now lists 268 s for this suite. It is still about 8 times the Linux time, so #3716's budget work goes on there.
Posted by host-run Lane 5. This was generated by AI.
Activity
github-actions commentedon Nov 4, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Small
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: none
Understood: cut process spawns in audit-fleet.sh and audit-fleet.test.sh so the suite runs faster, which matters most on Windows Git Bash (511 s against 34 s on Linux). The suite's assertions must stay unchanged. The PR body should carry the Linux before and after times. The Windows re-measurement is a host check for a person, and the earlier refinement already split it out. The suite's Windows-only failure belongs to #13228. Related: #3716, #13229, #13231. No duplicate found.
Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 4, 2026
Not admitted to the issue lane: its done-when asks for what an unattended lane run cannot perform: item 2 (measure-over-time: "The Windows time, re-measured on a Windows Git Bash host, is in the PR body a..."); recommended split: keep the other items here as the admissible issue and move these to a child issue for the host queue (
host-run). Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).melodic-automation-lanes commentedon Nov 4, 2026
The latest triage verdict holds nothing: the issue is at
status: ready.8 remaining items
github-actions commentedon Nov 4, 2026
kyle-sexton commentedon Nov 4, 2026
Decision recorded. Route this issue to the host queue whole, for a laptop lane with a Windows Git Bash host.
Agent choice, not an owner answer.
Admission refused it for the lane because Done-when item 2 needs a Windows Git Bash host, and a child issue for that one step would raise the open count, so the issue goes host-run instead. The spawn cuts and the Linux before/after can be built and measured on Linux; only the Windows re-measure needs the Windows host, so one host session does the whole change in one PR. The body's Done-when stands unchanged.
docs/test-wall-clock-baseline.md.github-actions commentedon Nov 4, 2026
melodic-automation-lanes commentedon Nov 4, 2026
The work-resolve-issue lane stopped on this issue (
host-only): the run reports the work needs a host run the lane cannot make.It added
host-runand removedagent-ready: an agent run on a host builds it, and it waits on no decision from a person.In the run's words:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41838904070
To hand it back to the lane, remove
host-runand addagent-readyagain.kyle-sexton commentedon Nov 4, 2026
docs(test): record audit-fleet's Windows time and correct the audit-e…
kyle-sexton commentedon Nov 4, 2026
Shipped in #13374 (merged 324f98e). Windows Git Bash on melo-lap-001,
run-plugin-tests.sh --timings,--jobs 1, nativeC:clone, two pairs alternated with nothing else of this lane running:strace -f(Linux)All cases pass on both sides with identical result lines, and the production
--detailreport and plan are identical. The cut removed thetrpipe from every Git probe,trfromlower(), andbasenamefrom the suite's git mock: the top three fork sites in a per-pid trace.docs/test-wall-clock-baseline.mdnow lists 268 s for this suite. It is still about 8 times the Linux time, so #3716's budget work goes on there.Posted by host-run Lane 5. This was generated by AI.