feat(tui): unify image presentation across message origins - #130
Conversation
|
Local verification for
Coverage includes typed user/tool/assistant live and replay transport, completed versus partial Markdown nodes, managed session authority, local permissions/symlinks/FIFOs, rejected remote origins/nonpublic addresses, response limits/redirects, stale-task cancellation, corrupt formats, pixel/source budgets, cache/resize/fallback, content-exact deduplication, and text-only search/copy behavior. Presentation evidence uses real This stack remains unmerged. Base is |
eeedaff to
d84baa2
Compare
b3723c8 to
4998666
Compare
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Pull Request is not mergeable
Summary
Unifies TUI image presentation for user attachments, native assistant-generated images, typed tool results, and parsed Markdown image nodes. Shares asynchronous decoding, terminal protocols, resource limits, and live/replay behavior without attaching displayed media to model context.
Stacked on #129; this PR intentionally targets
feat/compose-files-phase-3.Impact
Assistant-generated images now retain pixels in the transcript instead of becoming text-only placeholders. Authorized Markdown images load only when visible, with alt/source fallbacks, stable viewports, and message-local content deduplication that preserves repeated Markdown occurrences.
Technical details
KIT_TUI_IMAGE_ORIGINSexplicitly authorizes exact HTTPS origins; every DNS address must be public and is pinned while TLS hostname verification remains active. Redirects, ambient proxies, cookies, and credential-bearing URLs are excluded.pulldown-cmark =0.13.0parser and its sole new transitive dependency,unicase =2.9.0; no other dependency versions change.