Repository navigation
Add message-bound image and file attachments (JVNAUTOSCI-2756) - #650
Merged
Merged
Conversation
…(JVNAUTOSCI-2756)
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.
Users can paste images, drop files and use the file picker in Messages and ordinary Von chat. Attachments stay bound to the submitted message or turn, preserve captions and original bytes, and support attachment-only sends. JVNAUTOSCI-2756.
Merge decision: ready. The previously missing normal-chat and recipient-handoff evidence is now available; no demonstrated material attachment regression remains.
Change
Validation
reused:true, exact recipient original bytes, owner-only URL/substituted-file denial, refresh/reopen and desktop/360px controls.reasoning_effort=none) passed captioned and attachment-only sends. The first answer was “Dark blue; sample 73.” Both turns persisted exactly once with their attachments; original PNG/text bytes and SHA256 values matched before and after refresh. The replay requiressuccess:trueandterminal_status:completed, not merely HTTP 200.Von/new_messages/context_for/prepare_attachment_inputspath with an enforced synthetic recipient, canonical references, byte hashes, retry reuse and wrong-recipient/substituted-copy/cross-org consumer rejection. Codex VS Code inspected those staged originals; this DGX coding session also opened the blue PNG and read the text (sample 37, destination harbour), independently verifying their hashes.Browser product revision:
c826064d9d23d9f1dbaec3f0dfe8dc3d913961c6; subsequent changes are browser tests only. Receipts are retained in the controller-owned checkout under.run/attachments-final/,.run/attachments-resumed/, and.run/JVNAUTOSCI-2756-handoff.txt. Receiver evidence is canonically attached to the native execution task, with original concept IDs and hashes preserved in that handoff.Release boundary and limitations
The database/identities and clipboard/drop events are synthetic; uploads, sends, recipient reads, provider calls and history routes are real candidate implementations. Fixture database connectivity recovered after the supported profile restart. Its synthetic user needed a scoped Luna pool setting; Luna's Chat Completions route required reasoning
none. These are acceptance configuration observations, not production configuration changes.No public deployment or production worker activation is claimed. After merge, the controller must deploy the verified current-main SHA and activate worker/inbox/backend together through the existing safe-boundary release route, with module/revision read-back and rollback. Web deployment alone does not activate the worker changes. No credentials, migrations, production memberships or infrastructure were changed.
Opaque formats retain downloadable originals plus interpretation limitations. Broad format interpretation, all physical devices and unrelated UI/migration improvements are outside this change.