Files
deepseek-harness/packages/guard
Turtle f593ef5ab5 fix(session): drop the <context> envelope and project context verbatim
context/message previously defaulted to a <context source="…">…</context>
wrapper. No model is trained on a <context> tag either, and message
framing does not belong on the session surface: the surface projects the
durable log, and a caller that wants a frame formats its own content —
which the one heavy producer (workspace-context) already does with its own
<system-reminder> frame, opting out via 'raw'. The tag only added
machinery — ContextEnvelope plus an envelope field threaded through
InjectOptions, HookContext, the context/message event, and the agent-loop
inject/additionalContexts plumbing.

context/message now projects its content verbatim as a user-role message,
sharing one deriveEventMessage case with user/message and steering/message.
ContextEnvelope and every envelope field are removed; context/message.meta
still carries durable, model-hidden JSON state. Regenerated catalogs and
website API; refreshed the three affected keyless snapshots (envelope field
only; timestamps unchanged).

Broadens and renames the steering Agent Note to cover both envelope
removals as one decision.

Agent Note: .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md
2026-07-20 16:22:20 +08:00
..

guard/ — loop-hygiene guard family

Behavioral guard plugins that watch the agent loop for unproductive patterns and nudge the model back on course. A single product package — there is no interface/implementation seam here, because a guard is a self-contained consumer of existing core seams (tools/post-execute, agent/prompt-submit, agent/status), not a swappable capability.

Package Role ctx key
repeat-tool-guard/ Advisory reminders when an agent loops on identical tool calls (listens on ctx.tools' waterfalls)

Reminders travel as additionalContexts on the tools/post-execute decision; the agent loop appends them as logged context/message events after the step's tool results (see the tools package), so everything a guard says to the model is reconstructable from the session log.