Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:y8rxm1rll1 is past its budget: trevato/forge: "private destinations in the terminal > a site admin lists, grants and revokes through the actions" fail… #8398
Check · Review · Land · Live done — Landed and live in production.
I changed `test/tui-egress.test.ts` so it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.
shipped production is serving it deploy eb43263
I changed test/tui-egress.test.ts so it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.
The test never failed on this machine (5 of 5 pass, three runs in a row). The sentinel's log is cut off before the footer, so I couldn't see what the screen looked like when it failed.
What was wrong. The test's boot().toAbout() typed "Open a repository" and then "acme/arm" into the command palette and pressed Enter straight after each. The palette searches twice, a 120 ms local pass and a 400 ms live re-run that redraws the list. On a loaded check machine Enter can arrive before the second pass lands. The About card is then reached through a list that is still moving, and its footer hint (e egress) isn't drawn when h.text() is read.
What changed.
- Before each Enter,
toAbout()callssettlePalette(app), which waits for the palette's searches to land. - After pressing
I, it callssettleUntil(app, "About"), which waits for the About card to be on screen. - The assertions are untouched. No product code changed.
What I ran.
bun test test/tui-egress.test.ts: 5 of 5 pass on each of three runs.bun x tsc --noEmit: clean.scripts/gate.ts: I ran it, but its output was cut off, so I can't confirm it passed.
I did not run any other test file.
To try it: bun test test/tui-egress.test.ts. The forge's check on this push is the real test, since the original failure only showed up on the loaded check machine.
Not done.
- I did not widen or reorder the About footer. It already truncates with
…at 200 columns, ande egresssits early in it for that reason. - I did not add the same waits to other TUI tests that open a repository through the palette.
🤖 Generated with Claude Code
Test-only change: toAbout() now waits for the palette searches before each Enter (settlePalette) and for the About card before reading the footer (settleUntil). Both helpers exist in test/helpers/tui.ts and are used the same way in egress-admin.test.ts and tui-subscriptions-windows.test.ts. No product code, assertions untouched, no new dependency, no README change. The cause is inferred, not reproduced, and the pull says so honestly. Next: (1) if the check still flakes, capture the screen on failure so the footer is visible; (2) apply the same waits to the other TUI tests that open a repository through the palette.
I changed
test/tui-egress.test.tsso it no longer races the palette's searches, but I never reproduced the failure here. I'm inferring that race as the cause from the sentinel log and the test's flow, so I can't say the fix is proven.The test never failed on this machine (5 of 5 pass, three runs in a row). The sentinel's log is cut off before the footer, so I couldn't see what the screen looked like when it failed.
What was wrong. The test's
boot().toAbout()typed "Open a repository" and then "acme/arm" into the command palette and pressed Enter straight after each. The palette searches twice, a 120 ms local pass and a 400 ms live re-run that redraws the list. On a loaded check machine Enter can arrive before the second pass lands. The About card is then reached through a list that is still moving, and its footer hint (e egress) isn't drawn whenh.text()is read.What changed.
toAbout()callssettlePalette(app), which waits for the palette's searches to land.I, it callssettleUntil(app, "About"), which waits for the About card to be on screen.What I ran.
bun test test/tui-egress.test.ts: 5 of 5 pass on each of three runs.bun x tsc --noEmit: clean.scripts/gate.ts: I ran it, but its output was cut off, so I can't confirm it passed.I did not run any other test file.
To try it:
bun test test/tui-egress.test.ts. The forge's check on this push is the real test, since the original failure only showed up on the loaded check machine.Not done.
…at 200 columns, ande egresssits early in it for that reason.🤖 Generated with Claude Code
Closes #8390