Repository navigation
v0.4.0
v0.4.0 - 2026-07-03
Difference from v0.3.0
v0.3.0 introduced rich presentation delivery and the first public continuity
release gates. v0.4.0 promotes two broader runtime surfaces: bounded virtual
session working context for long tasks, and policy-gated non-text media handling
for Telegram and Discord. It also includes the follow-up rich-final bridge and
stream-resilience hardening that landed after v0.3.0.
Changed
- Added a resolver-backed
agent-harness.virtual-session-working-context.v1
prompt section keyed by exact platform/channel/user/agent/session axes. The
section is bounded, pointer-only, and can surface same-lane anchors when reply
metadata is absent. - Hardened virtual-session lifecycle:
/newcloses the prior virtual-session
record and starts a clean task boundary, Codex completion capture can backfill
thread ids,maxContinuationDepthis separated from compact-count thresholds,
stream-unstable continuation thresholds are configurable, and max-depth
terminal cases mark the virtual sessionterminal-failed. - Added the virtual-session rollover scenario catalog covering Telegram and
Discord same-agent continuation, non-main isolation,/newboundaries, and
max-depth exact-lane evidence. - Added outbound media directive parsing v2: protected-span masking, quoted
paths,[[as_document]],[[audio_as_voice]], shared deliverable extension
mapping, and loud rejection for invalid directives. - Added
media_delivery_policy: local attachment paths and harness artifact
refs are checked before provider upload, accepted/rejected decisions are
recorded asagent-harness.outbound-media-policy.v1, and media-delivery lint
receipts can warn or fail closed by config. - Expanded provider media delivery: Telegram can send photo albums, documents,
audio, voice, and video with caption handling; Discord can batch multipart
file attachments in one delivery. - Expanded inbound and referenced media handling: Telegram documents, voice,
audio, video, static stickers, and reply media are stored as prompt-safe
artifacts; Discord referenced-message attachments are fetched with provenance. - Added visual-readiness reporting and config-gated native image input. Native
image input ships default-off pending staged live enablement. - Rich final presentation now covers ordinary successful agent replies by
converting final-only text into trusted semantic blocks afterMEDIA:
extraction. Plain text remains the fallback and progress-panel narration is
excluded. - Repeated retryable stream disconnects on high-usage media turns can guardedly
requeue a continuation duringRetryPending, and internal worker progress
events are summarized instead of exposing raw worker final text. - Updated public topology, invariant, schema registry, feature parity, README,
and generated topology explorer surfaces to track invariants I15/I16 and the
new media and virtual-session promotion gates.
Verification
- Focused virtual-session resolver, prompt, lifecycle, config, runtime, Codex
backfill, and scenario-catalog tests passed before release closeout. - Serial
agent-harness-core --lib,agent-harness-core --test memory_pack,
fullagent-harness-cli, workspace check, schema registry, invariants,
release checklist, scenario matrix, config validation, and scoped public
hygiene gates passed in the release validation set. - Channel media validation covered parser/policy/lint fixtures, artifact-ref
resolution, Telegram media kind mapping, Discord multipart batching, inbound
media provenance, native-image bloat preflight, and generated schema/topology
surfaces. - End-to-end channel readback confirmed the virtual-session working-context
prompt section was model-visible, a real/newtask boundary started
cleanly, and Discord media attachment delivery passed with policy
accept/reject receipts. - Release closeout ran
git diff --check, scoped public/private hygiene, and an
independent release-note/hygiene review.
Still gated / not included
- Full promotion of the virtual-session continuity gap still waits for broader
live soak and final-delivery trace evidence across real Telegram/Discord
turns. - Telegram provider media smoke for photo + document + album remains a manual
post-release smoke check. media.nativeImageInputand media lint fail-closed mode remain default-off
pending staged enablement and soak.- Telegram inline callback buttons, Discord component buttons, clicked-action
ingress re-entry, and live preview integration remain separate phases.