Attach images to outgoing prompts - #271
Open
dnouri wants to merge 1 commit into
Open
Conversation
Let users attach one materialized raster image to an ordinary idle prompt and send it through Pi's documented image-content RPC field. Keep attachment ownership explicit across validation, model changes, failures, rendering, history, and draft replacement. Extend the fake subprocess contract and headless coverage so persisted user content is verified end to end.
dnouri
force-pushed
the
feature/prompt-image-attachments
branch
from
August 31, 2026 23:45
47f29ef to
1d1e81d
Compare
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.
Summary
Add a narrow, explicit path for outgoing image prompts:
C-c C-ain the input buffer and select—or paste—the path to one PNG, JPEG, GIF, or WebP image.C-u C-c C-aclears it.imagesRPC field when the selected model advertises image input.agent_startarrives.Image-bearing drafts remain deliberately outside local follow-up and steering queues. Busy, slash-command, steering, unresolved-capability, and text-only-model attempts refuse without clearing the draft.
Stack
This PR is stacked on #273, which extracts the shared text-prompt settlement and session-reset ownership fixes found during review. This branch contains the image feature plus image/model-specific integration and hardening. Once #273 merges, this PR can be retargeted to
masterwithout changing its feature diff.Intentional limits
Verification
make checkon the combined stack — 1,680 tests, one compatibility skip, no unexpected resultsmake test-integration-fake— all 15 fake contracts passedEmacs -Qterminal and Xvfb GUI image-send/render probes passedagent_start, extension-handled prompt, model/process replacement, reload, and reset race probes passedgit diff --checkpassedCloses #261.