deepseek-harness/docs/core-data-structures
Tianyi Cui 2745879132 refactor(llm): drop the image content block until a path can honor it
ImageBlock had no production producer and every consumer dropped it:
the deepseek serializer skipped it, the pi-ai converter skipped it as
unrepresentable, the ACP bridge neither advertises image prompt
capability nor forwards image blocks, and compact-basic charged a flat
85-token estimate and rendered an [image] placeholder. A block
constructed today would silently vanish from the wire — the vocabulary
advertised a capability no path honors, the silent-data-loss shape the
defensive patterns warn against. The only constructors were tests
pinning the skip/estimate branches.

Remove ImageBlock and its ContentBlockMap entry (its cache?: CacheHint
field leaves with it; CacheHint itself and the other two cache? fields
are out of scope). compact-basic loses its explicit image estimate and
placeholder arms (the merge-extensible default arms absorb the case);
the deepseek serializer, pi-ai converter, and ACP codec already handled
image in their default arms, so only their image-naming comments
change. The codec's inbound rejection of ACP-protocol image prompt
content stays — that guards wire content a client can send regardless
of our vocabulary.

Tests that constructed harness image blocks to pin the removed branches
are dropped (the 85-token estimate pin) or retargeted onto plugin-added
block types / other non-text blocks, which the surviving default arms
own. Docs, the type-equiv pastes, and the content-block vocabulary
RFC's block list and multimodal-home consequence are updated in the
same change; the RFC moves to implemented/ and the index is
regenerated. A real multimodal feature reintroduces image via
declaration merging together with the adapter mapping, ACP
advertisement, and compaction pricing that honor it.
2026-07-04 17:21:13 +08:00
..
bash.md docs(bash): reframe stdin/env — the scrub is the security control, not a trust boundary 2026-07-02 04:08:24 +08:00
compaction.md fix(compact): harden summarization convergence 2026-06-29 16:56:44 +08:00
core.md refactor(llm): drop the image content block until a path can honor it 2026-07-04 17:21:13 +08:00
filesystem.md Merge remote-tracking branch 'origin/master' into codex/fs-directory-listing 2026-07-04 00:56:17 +08:00
llm-streaming.md refactor(llm): drop the image content block until a path can honor it 2026-07-04 17:21:13 +08:00
persistence.md docs: address review sync gaps 2026-07-01 12:56:13 +08:00
session.md Merge branch 'worktree-hooks-d-subagent' into worktree-hooks-e-protocol 2026-07-04 03:01:22 +08:00
subagent.md refactor(subagent): drop the agentType lifecycle field 2026-07-02 05:52:02 +08:00
tools.md Merge branch 'worktree-hooks-b-bash-seam' into worktree-hooks-c-interception 2026-07-04 02:44:26 +08:00
web.md fix(web): open WebError.code to string, aligning with other seams 2026-07-03 15:56:47 +08:00