Skip to content

Commit e3b93f0

Browse files
authored
docs(todos): register the CI test job pool follow-ups from #425 (#430)
1 parent 268c973 commit e3b93f0

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

tasks/todos.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Deferred Goal Ledger
22

33
> **Status**: Backlog
4-
> **Updated**: 2026-09-13 02:50
4+
> **Updated**: 2026-09-13 03:17
55
> **Scope**: Medium/long-term goals deferred from active plan execution
66
77
Current plan tasks live in the active plan's `## Task Breakdown`.
@@ -66,6 +66,7 @@ Audit evidence and closure rationale: `docs/researches/20260907-deferred-goal-le
6666
| Replace the `await Bun.sleep(2500)` stand-in in `tests/architecture-queue.test.ts` ("record never reclaims a live shared rotation lock at the old two-second threshold") with an observable condition on the child's lock-wait state | The test proves a real invariant — the reclaim threshold must not fire while a peer still holds the shared rotation lock — but it has no handle on the child's lock-wait state, so it approximates "the child is still waiting" by sleeping past the old two-second threshold; giving it a real handle means exposing an observable wait signal from the lock path, which is a source change outside the CI test-gate slice | The suite pays a fixed 2.5s on every run and the assertion is timing-derived rather than state-derived, so it flakes under CI load — observed on run 33980326026 — and a flake there is indistinguishable from a genuine reclaim regression | The next flake of this test, or the next work-package touching the shared rotation lock in `architecture-queue` |
6767
| Add a documentation-to-CLI resolution gate: extract every `repo-harness <group> <sub>` token from the five READMEs and the current changelog section, resolve each against the parent command's `--help` subcommand list, and fail CI on an unresolved token | The 0.19.0 release prep documented three commands that do not exist (`automation authorization mint|list`, `campaign stop`) plus an out-of-bounds `--maximum-duration-ms` example, and every existing check stayed green: `tests/readme-dx.test.ts` asserts literal strings and only ever spawns the CLI for `init --dry-run`, so no gate resolves a documented verb against the real command tree. The defects were caught by the acceptance gate reading `--help` by hand, which does not scale | Until it exists, README and changelog command accuracy rests on a reviewer manually resolving each verb; the failure mode is silent and ships to the npm README. Note the naive detector is unsound — commander prints the parent's help instead of erroring on an unknown subcommand, so the check must test membership in the parent's listed subcommands, not the exit status | The next release-prep pass, or the first user-reported nonexistent command in the published README |
6868
| Canonicalize the two remaining `resolve`-only repo roots outside the CLI: `src/effects/engineers/work-demand-store.ts:101` resolves `input.repo_root` before `repoHarnessRepoIdFor`, and `src/cli/chatgpt-browser/engine.ts:87` `resolveRepoRoot` is `resolve`-only | Found by the acceptance gate while reviewing the `--repo` canonicalization sweep, which was scoped to `src/cli/commands/`. Neither is the reported defect and neither has an observed failure, so fixing them in that slice would have widened it past its review boundary | `work-demand-store` is genuinely symlink-blind on the same `repoHarnessRepoIdFor` contract, so a symlinked `repo_root` reaching it derives a different identity than the registry stored — the same class of false mismatch, just through a different entrypoint. `engine.ts` is path-keyed rather than id-keyed, so its exposure is lower | The first WorkDemand operation observed failing on an identity mismatch, or the next change to either entrypoint's root handling |
69+
| Harden the CI test job pool in `scripts/lib/ci-run-tests.sh` after #425 | Gatekeeper review of #425 left four non-blocking items that were not worth another CI round: only the EXIT trap is saved and restored, so `trap - EXIT INT TERM` resets a caller's INT/TERM handlers; an INT during the pool removes the scratch dir but drains the remaining files as "lost worker" entries instead of aborting; the `BUN_TEST_JOBS=1` byte-identity case in `tests/check-ci-isolate-aggregation.test.ts` compares the new serial branch against itself instead of a frozen pre-change fixture; the 10 s barrier in the concurrency case spawns three real `bun test` processes while the file itself runs under the 4-way hosted pool | None of the four affects the aggregation contract or the 17 min to about 8.5 min Test job gain; the barrier deadline is the only one that can surface as a flake under load | The next change to `scripts/lib/ci-run-tests.sh` or `tests/check-ci-isolate-aggregation.test.ts`, or the first hosted flake of the concurrency case; batch all four into that change |
6970

7071

7172
## User uninstall follow-up

0 commit comments

Comments
 (0)