Files
openclaw/src
Peter Steinberger f6818ae5ea refactor(media): hydrate and prune images from structured facts, delete marker-text parsing (#112913)
* refactor(media): hydrate and prune images from structured facts, delete marker-text parsing

Embedded, CLI, host-context replay, and plugin-harness image hydration now
consume the persisted/runtime MediaFact carrier instead of parsing
OpenClaw-authored [media attached:]/[Image: source:] marker text. The
prompt-text attachment parser family (splitPromptAndAttachmentRefs, leading/
trailing marker extractors, ref-count consumption, text-based prune scrubbing)
is deleted; explicit user-authored paths and file URLs still hydrate.

- Described-image suppression is a declared MediaFact.hydrationSuppressed
  field carried across copy/reprojection boundaries; the runtime symbol
  plumbing is removed.
- Persisted facts plus mediaImageLayout are authoritative at every hydration
  entry point; image blocks reconcile by structural fact index, never
  byte/MIME equality.
- Offloaded attachments (image and non-image) persist their media://inbound
  claim-check alias so ownership-aware history pruning can scrub markers
  after persistence; factless pre-MediaFact rows keep narrow legacy redaction.
- History pruning removes facts, layout, and block provenance structurally
  before replay.

Prompt bytes are golden-equal throughout; goldens from the fact-carrier PR
are untouched. 1,303 tests across 44 files; delegated check:changed green
(run 29980534186, pinned to the declared merge-base).

* fix(media): fail missing inline image slots

* test(agents): carry offloaded CLI retry image as a structured fact

The retry-image reliability test modeled an offloaded attachment with only
its [media attached:] marker text; offloaded attachments are carried as
structured media facts and marker text is presentation-only, never parsed
for hydration.
2026-07-23 03:11:16 -04:00
..