fix: bug-hunt wave — transport, persistence, and approval teardown - #133
Merged
Merged
Conversation
…decodes hostPortAddr treated every IPv6 literal as already-ported (it contains ':'), so ws://[::1]/ws dialled an address with no port. Use u.Port() and net.JoinHostPort so bracketed literals and empty-port forms get the scheme default. getJSON now decodes through a 256 MiB LimitReader like ExportSession — a broken or hostile server streaming unbounded bytes must not OOM the client.
…ble split stderr lines splitTokenURL cleared the whole RawQuery, silently dropping non-token parameters from pasted attach URLs — strip only the token. Stop signalled the process group without checking whether the reaper had already observed the child's death, risking a SIGINT into a recycled PID's group. appendTail recorded a stderr line straddling two pipe writes severed in half — merge the buffered partial line before splitting.
…orrupt-file backups Tokens' persist rewrote the whole map from the in-memory snapshot, so concurrent bodek instances erased each other's minted tokens; adopt the on-disk map wholesale on mutation (caller's own id re-applied) the way workspace's reloadLocked already does, so peer deletions converge too. The corrupt-store quarantine used a fixed .corrupt name, so a second corrupting write destroyed the first quarantined evidence — rotate to .corrupt.1 in both stores. Workspace's failed quarantine also left the path set, letting the next Save overwrite unrecoverable bytes; mirror tokens and stop persisting with a warning.
…down /clear mid-turn wiped the transcript but left approvals, deadlines, bells, and clarify armed over a dead request, keeping the keyboard gated; errMsg's teardown cleared approvals and deadlines but not the bell latch, breaking the documented lockstep invariant. Both paths now tear down the full set, matching done/disconnect.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bodek | a5b9444 | Commit Preview URL Branch Preview URL |
Sep 25 2026, 02:51 PM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
9 validated bugs from a 3-agent hunt, fixed RED-first.
Transport/server
u.Port()+net.JoinHostPort)splitTokenURLstrips only the token — other attach-URL params surviveStoprefuses to signal a reaped (possibly recycled) PID's groupPersistence
.corruptquarantine rotates to.corrupt.1; failed workspace quarantine stops persisting with a warningTUI
/clearand error teardown drop approvals, deadlines, bells, and clarify — keyboard no longer gated by dead requests; bell lockstep invariant restored7 new test files;
make fmt/vet/lint/testclean, 3-judge adversarial review passed.