mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-11-09 20:07:43 +08:00
Attachment reads and ZIP export previously inferred ownership from common field names on arbitrary events. Opaque ignorable plugin payloads could therefore cause storage reads, while declared compaction content was missed. Select attachment-bearing fields by current built-in event type in both readers. Read direct image and file blocks, including flat V4 tool results and developer messages, without interpreting extra block fields. Leave unknown payloads and malformed inbox entries opaque. The archive preserves the complete logical log even when its payload does not authorize a read. V4 validates title requests as one text block, so do not treat them as an attachment carrier. Compaction keeps its declared ContentBlock fields for valid custom producers; the basic producer's text-only output is documented. Historical wrappers remain the adjacent converters' responsibility rather than a second compatibility path in attachment readers. Adapt the original policy change to master after V4 landed, retaining its author credit and scope. Cover tool-result export explicitly, keep Team fixtures free of invented message roles, and verify that denied carriers never read storage. The 889 owning tests pass with 100% statement, branch, function, and line coverage for both changed runtime files. Co-authored-by: Tianyi Cui <53024+tianyicui@users.noreply.github.com>