Repository navigation
test(ssh): unreaped-server test no longer loses its zombie fixture - #22427
Conversation
The fixture killed the child before `sh -c "... exec sleep 600"` had exec'd. Dash still reaps children until then, so a child killed in that window never became a zombie and the test failed with an empty `ps`. Wait for the parent to be `sleep` before killing the child. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a small, localized SSH test-fixture reliability change confined to ignored test paths. It does not modify production behavior, product defaults, or static-analysis configuration. Notes:
You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
## What's Changed * fix(web): pinned threads' pin icon stays put on hover by @t3dotgg in pingdotgg/t3code#22303 * fix(web): show pointer cursors on changed-file controls by @UtkarshUsername in pingdotgg/t3code#22266 * fix(web): use the shared markdown scrollbar width by @UtkarshUsername in pingdotgg/t3code#22200 * revert: limit bars with many accounts no longer clip names to one letter (#19964) by @juliusmarminge in pingdotgg/t3code#22395 * fix(mobile): pin expo-modules-core so the release smoke patch stays in use by @Project516 in pingdotgg/t3code#22343 * fix(server): updates no longer keep every old runtime on disk by @juliusmarminge in pingdotgg/t3code#22253 * fix(mobile): chat chips match desktop and the composer again by @flamboh in pingdotgg/t3code#22169 * fix(web): normalize disabled terminal button opacity by @UtkarshUsername in pingdotgg/t3code#22389 * fix(contracts): settings save again when the writing style has default fields by @MatiasGadeberg in pingdotgg/t3code#22203 * fix(relay): run the relay Worker next to its database by @juliusmarminge in pingdotgg/t3code#22065 * test(web): disposable render helper and lint rule for browser tests by @juliusmarminge in pingdotgg/t3code#22187 * fix(mobile): use native sheet headers and toolbar filters by @juliusmarminge in pingdotgg/t3code#22390 * test(ssh): unreaped-server test no longer loses its zombie fixture by @juliusmarminge in pingdotgg/t3code#22427 * test(web): require-disposable-render is now an error by @juliusmarminge in pingdotgg/t3code#22410 * test(web): migrate the last .ts browser tests and stop wrapping userEvent in act by @juliusmarminge in pingdotgg/t3code#22424 * fix(web,mobile): Limits bars show the even-pace mark as a tick in a gap by @juliusmarminge in pingdotgg/t3code#22408 * test(web): pooled Limits segments narrower than 6px draw no pace mark; fixture README by @juliusmarminge in pingdotgg/t3code#22453 * fix(mobile): the composer stays one row until the draft wraps by @juliusmarminge in pingdotgg/t3code#20812 * fix(web): restore left-aligned markdown table cells by @t3-code[bot] in pingdotgg/t3code#22482 * feat(scheduled-tasks): event filters for webhook deliveries by @juliusmarminge in pingdotgg/t3code#22194 * fix(mobile): prevent update checker from crashing iOS at launch by @juliusmarminge in pingdotgg/t3code#22488 * feat(scheduled-tasks): replay dedupe and coalescing for webhook deliveries by @juliusmarminge in pingdotgg/t3code#22234 * ci(release): Make Windows arm64 CI job 50% faster by @jahands in pingdotgg/t3code#22428 * ci(release): Windows arm64 verify no longer runs the crashing ARM PowerShell by @t3dotgg in pingdotgg/t3code#22494 * refactor(source-control): GitCafe creates repositories and pull requests over REST by @juliusmarminge in pingdotgg/t3code#22495 * test(web): fix release browser test failures by @t3dotgg in pingdotgg/t3code#22508 * fix(mobile): connecting an environment no longer crashes the header by @juliusmarminge in pingdotgg/t3code#22521 * fix(mobile): folded Back clears the detail route before the next selection by @juliusmarminge in pingdotgg/t3code#22526 * ci(release): release tests stop timing out and finish in about 5 minutes by @t3dotgg in pingdotgg/t3code#22524 ## New Contributors * @MatiasGadeberg made their first contribution in pingdotgg/t3code#22203 * @jahands made their first contribution in pingdotgg/t3code#22428 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261020.3411...v0.1.1-nightly.20261020.3438 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261020.3438
## What's Changed * fix(web): pinned threads' pin icon stays put on hover by @t3dotgg in pingdotgg/t3code#22303 * fix(web): show pointer cursors on changed-file controls by @UtkarshUsername in pingdotgg/t3code#22266 * fix(web): use the shared markdown scrollbar width by @UtkarshUsername in pingdotgg/t3code#22200 * revert: limit bars with many accounts no longer clip names to one letter (#19964) by @juliusmarminge in pingdotgg/t3code#22395 * fix(mobile): pin expo-modules-core so the release smoke patch stays in use by @Project516 in pingdotgg/t3code#22343 * fix(server): updates no longer keep every old runtime on disk by @juliusmarminge in pingdotgg/t3code#22253 * fix(mobile): chat chips match desktop and the composer again by @flamboh in pingdotgg/t3code#22169 * fix(web): normalize disabled terminal button opacity by @UtkarshUsername in pingdotgg/t3code#22389 * fix(contracts): settings save again when the writing style has default fields by @MatiasGadeberg in pingdotgg/t3code#22203 * fix(relay): run the relay Worker next to its database by @juliusmarminge in pingdotgg/t3code#22065 * test(web): disposable render helper and lint rule for browser tests by @juliusmarminge in pingdotgg/t3code#22187 * fix(mobile): use native sheet headers and toolbar filters by @juliusmarminge in pingdotgg/t3code#22390 * test(ssh): unreaped-server test no longer loses its zombie fixture by @juliusmarminge in pingdotgg/t3code#22427 * test(web): require-disposable-render is now an error by @juliusmarminge in pingdotgg/t3code#22410 * test(web): migrate the last .ts browser tests and stop wrapping userEvent in act by @juliusmarminge in pingdotgg/t3code#22424 * fix(web,mobile): Limits bars show the even-pace mark as a tick in a gap by @juliusmarminge in pingdotgg/t3code#22408 * test(web): pooled Limits segments narrower than 6px draw no pace mark; fixture README by @juliusmarminge in pingdotgg/t3code#22453 * fix(mobile): the composer stays one row until the draft wraps by @juliusmarminge in pingdotgg/t3code#20812 * fix(web): restore left-aligned markdown table cells by @t3-code[bot] in pingdotgg/t3code#22482 * feat(scheduled-tasks): event filters for webhook deliveries by @juliusmarminge in pingdotgg/t3code#22194 * fix(mobile): prevent update checker from crashing iOS at launch by @juliusmarminge in pingdotgg/t3code#22488 * feat(scheduled-tasks): replay dedupe and coalescing for webhook deliveries by @juliusmarminge in pingdotgg/t3code#22234 * ci(release): Make Windows arm64 CI job 50% faster by @jahands in pingdotgg/t3code#22428 * ci(release): Windows arm64 verify no longer runs the crashing ARM PowerShell by @t3dotgg in pingdotgg/t3code#22494 * refactor(source-control): GitCafe creates repositories and pull requests over REST by @juliusmarminge in pingdotgg/t3code#22495 * test(web): fix release browser test failures by @t3dotgg in pingdotgg/t3code#22508 * fix(mobile): connecting an environment no longer crashes the header by @juliusmarminge in pingdotgg/t3code#22521 * fix(mobile): folded Back clears the detail route before the next selection by @juliusmarminge in pingdotgg/t3code#22526 * ci(release): release tests stop timing out and finish in about 5 minutes by @t3dotgg in pingdotgg/t3code#22524 ## New Contributors * @MatiasGadeberg made their first contribution in pingdotgg/t3code#22203 * @jahands made their first contribution in pingdotgg/t3code#22428 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261020.3411...v0.1.1-nightly.20261020.3438 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261020.3438
tunnel.test.ts› "replaces a managed server that exited but was not reaped" flaked on main (run) withexpected 1 to equal +0and an empty message.The fixture builds a zombie with
sh -c "sleep 600 & echo $!; exec sleep 600"and kills the child as soon as it reads its pid. If the kill lands before the shell has exec'd intosleep, dash reaps the dead child itself, so no zombie forms andps -pexits 1 with no output. Running that setup 1,600 times with eight copies in parallel lost the zombie 4 times.Fix
Before killing the child, wait until
ps -o comm=reports the parent assleep(matched as*sleepfor macOS, which prints the full path). With that wait, the same 1,600-run harness produced a zombie every time. The test passed 10 of 10 local runs.🤖 Generated with Claude Code