Commit Graph

2 Commits

Author SHA1 Message Date
sim
c70e736c85 fix: eliminate resource-collision race in ship-notes-wedged-pr jq() mock
Unrelated defect surfaced by a real gsd-test failure while verifying
#3339 (test/3339-fold-state-model-profile diffs zero files this fix
touches -- confirmed via `git diff <this-branch> origin/next -- ...`
returning empty for this file, ship.md, and gsd-core/bin/lib/*.cjs).
Fixed inline per this repo's no-defer policy for defects found while
building, rather than deferred.

The test's jq() mock shelled out to a full new Node.js process for
every mocked `jq -r .field` call inside the extracted track_shipping
bash script. The "exhausts the polling bound" test hits up to 24 cold
Node spawns in one spawnSync call (6 polling iterations x 4 jq calls),
racing a hardcoded 10s timeout -- under CI contention this tipped over
on the linux-node22 lane specifically while linux-node24 had headroom,
producing spawnSync's signal-killed `status: null` instead of the
process's real exit code, asserted against the expected 0.

Replaced the Node-subprocess jq() mock with a pure-shell sed -nE field
extractor that never forks a process, eliminating the variable-cost
operation rather than just widening the timeout. Verified extraction
correctness against sample JSON (head/status/checks/review, including
empty-string and non-matching-field cases). Locally verified (scoped
per session policy): all 9 tests in the file pass; the previously-
marginal test dropped from ~617ms to ~198ms.

The underlying track_shipping polling logic in ship.md was confirmed
correct and untouched -- this was a test-fixture race, not a product
bug.
2026-08-12 08:25:14 -04:00
Dennis Kim
68a199cf5a fix(#2783): address wedged PRs in ship note protocol (#2818)
* fix(#2783): address wedged PRs in ship note protocol

* chore: acknowledge ship.md growth

* fix(#2783): repair ship workflow structure

* fix(#2783): gate ship-note recovery on current PR state

* fix(#2783): avoid scanner collision in poll loop

* fix(#2783): address reviewer feedback on ship-note wedge handling

* test: add timeout to spawnSync in ship-notes-wedged-pr.test.cjs to satisfy lint

* test: update ghCalls bound expectation in ship-notes-wedged-pr.test.cjs

* test: restore ghCalls expected count in ship-notes-wedged-pr.test.cjs
2026-08-11 17:10:36 -04:00