fix(repl): keep image chips atomic and renumbered - #821
Open
yxlyx wants to merge 3 commits into
Open
Conversation
Open the cancellation fixture with iteration enabled because finish prunes directory entries. Linux path-only directory handles cannot be enumerated. Build native package mocks at their declared optional-dependency versions and install the smoke consumer offline. Otherwise a version mismatch can resolve a real binary instead of the mock and fail on missing credentials.
Record each mock connection prewarm response and permit only that anchor in fresh-socket assertions. Recovery and compaction legitimately bootstrap a new socket before sending full history, so rejecting every previous_response_id misclassifies valid recovery. Keep socket replacement, stale-chain rejection, and full-history assertions intact. Report only connection and parent identifiers on mismatch rather than dumping complete request bodies.
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.
Fixes #820
Fixes #834
Fixes #835
What changed
Why
Image chips are attachment controls, not ordinary words. Generic word boundaries could split a chip into literal text. Separately, payload deduplication could remove an attachment slot without removing its chip, allowing repeated
[Image #2]labels to accumulate.The Linux CI fixture also reached directory pruning through a handle that was not opened for iteration, causing
BADF. The SDK package smoke built native fixtures at the SDK version rather than the versions declared by its optional dependencies, which allowed package resolution to select a released binary instead of the isolated fake executable.WebSocket recovery can legitimately prewarm a replacement connection before replaying full history. The previous assertion rejected every parent anchor, misclassifying that fresh connection-local prewarm as a stale inference chain.
Constraints and trade-offs
[Image #N]text remains unchanged.