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
context/ — request-context extensions
Product plugins that add model-visible request context without defining a tool or service. workspace-context is included by the default dsh-agent-spine-demo bundle and can be disabled through bundle config; time-context is opt-in.
| Package | Role | ctx key |
|---|---|---|
time-context/ |
Durable per-step current time and elapsed-time context | (none) |
workspace-context/ |
AGENTS.md/CLAUDE.md workspace context loader |
(listens on agent/session-prefix + tools/post-execute) |
The workspace-context decision record explains its per-agent/session isolation and lifecycle split.