fix: keep ask_user images and pin them across compaction - #585
Closed
justrach wants to merge 2 commits into
Closed
Conversation
Zig 0.17's AlignedManaged ArrayList has no .empty; the #580 fixtures must use Array.init / undefined like the rest of the suite.
This was referenced Aug 20, 2026
Owner
Author
|
Closing as landed. |
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.
Closes #580. Closes #581.
What happened
Two related failures in the same session (
choosing-an-editable-notes-platformon 0.0.267):ask_useraccepted nine screenshots. The tool result delivered to the model was nine literal[Image]placeholders. Pixels never left the readline buffer.What we do now
#580. Every successful paste/drop/
@[path]appends to a 16-slot queue (the last image still fillspending_imagefor history nav).ask_userstill returns text — Responses/OpenAI tool output is a string — andvision_queue.flushPendingthen appends one follow-up user message with the same vision blocks a normal prompt already builds (ADR 0012). If the reply has[Image]markers and the queue is empty, the tool result names path / paste-text / next-prompt fallbacks instead of implying the pixels arrived.#581.
recentContextStartandemergencyCutIndexpin the opening user of an unresolved turn (and any first-turn image prompt). A HungRequest retry sees the same cut. If that pin is the whole history, compact returnserror.ActivePromptPinnedinstead of summarizing attachments to text. Traces emitcompact_cutwith the boundary and preserved image count, not payloads. Child index-0 mandates stay on the pinChildTask path.Tests
input_imageblocks on the next request.recentContextStartcall does not move the cut.Out of scope
ACP / PR #573 is untouched. This branch is from
main.