Repository navigation
base red: acpmux panic ratchet, the six indexing hits #28182 added - #28429
Merged
Merged
Conversation
…ix panic-ratchet hits #28182 added) #28182 (49c648c) merged after the acpmux baseline was lowered to 686/94/143 (13134a8) and added six indexing_slicing hits in production code: whole_list's cursor writes in client.rs, and the reply's rows, keys, page rows and stub fields in hub/list_guard.rs. Writes go through JsonSet::set, reads through get; a page row past the end reads as null, as a key without a span already does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d9e7e9f7fb2b87a57d5f
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
A non-object params used to panic on rest["cursor"]; with set it would drop the cursor and ask for the first page again. Now it is an error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d9e7e9f7fb2b87a57d5f
Collaborator
Author
|
Review (the owner lane's independent review, at its land request): SHIP at bb04f92 Recorded by lane-gh-broker from this PR's owner lane, which asked to land this exact head after its independent review. next-autoland lands it once every red is the base's; a BLOCK at this head, a HOLD line or a hold label still stops it. |
This was referenced Oct 30, 2026
teamleaderleo
temporarily deployed
to
ci-routing-agent
October 30, 2026 17:06 — with
GitHub Actions
Inactive
Contributor
|
Shipped in:
|
This branch was previously deployed
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.
Base-red fix (fix-forward): #28182 (49c648c) merged after #28386 (13134a8) lowered the acpmux row of the Rust panic ratchet to
indexing_slicing 686,string_slice 94,unwrap_used 143. Its own ratchet ran against the old baseline (731). It added sixindexing_slicinghits in production code, which put feat-cmux-next over the baseline. This PR rewrites them without panics and with the same behaviour. The baseline is not raised.client.rswhole_listrest["cursor"] = …,reply["nextCursor"] = …JsonSet::set. Params that are not an object, which used to panic here, are now an error, never a cursorless re-ask for the first pagehub/list_guard.rsbounded pagepicked["sessions"],key["at"]getwith the same defaults (no rows, 0)hub/list_guard.rsbounded pagerow(&rows[n])in thebyte_pagerow closurerows.get(n); an index past the end reads asnull, like a key with no span already does (byte_pageonly asks for indexes belowrows.len())hub/list_guard.rstoo_large_stubstub[k] = …JsonSet::set(the stub is an object literal)Tests
The existing tests cover the changed paths, so this PR adds none:
hub::list_guardtests check the stub'speer,omittedand bounded pages, andservertests check the pagedwhole_listand cursor errors.Observed / Not run
GHOSTTY_ZIG_SOURCE=ghostty-next), gated:indexing_slicing 686,string_slice 94,unwrap_used 143,expect_used 18, all at or under the baseline.cargo clippy --locked --keep-going -p acpmux --all-targets -- -D warningspasses.cargo test -p acpmux --lib -- list_guard session_list client:: session_pages: 24 passed, 0 failed.whole_listsilently dropped a cursor it could not set. Fixed in bb04f92. Then SHIP at bb04f92.Changelog
none
risk:low (panic-free rewrites with the same output).
Agent session: agent session
🤖 Generated with Claude Code