zed
Identity
-
Names:
zed/dev.zed.agent. -
Native format:
zed-threads-sqlite, one rewritten JSON or zstd thread blob perthreads.id. -
Session ID:
threads.id, no namespace. External agents using the Agent Client Protocol (ACP) store their own histories, which use those agents’ identities. -
Entity keys:
User.id(ClientUserMessageId) is native and stable. Agent and compaction array positions are capture-scoped.ToolUse.idjoins the matchingAgent.tool_resultsmap key only when unique. Native content order is array order; no per-message timestamp is invented. -
Notes:
Compaction.Summaryhas unknown replaced extent.Compaction.ProviderNativeretains opaque provider/items; Resume and unknown variants stay vendor data.cumulative_token_usageis session usage. The pinned TokenUsage serializer omits zero counters, so a counter missing from a present usage object means zero; this is documented behavior.request_token_usagekeyed byClientUserMessageIdis a per-turn aggregate, not inference.initial_project_snapshot.worktree_snapshotssupplies roots and recorded Git state. Settings belong at the tail. Earlier blob revisions are unavailable.
Position basis
Use only positions established by the stated format and mapping evidence. Current-state rows without transcript positions go at the end, as the snapshot tail. A protocol commit boundary takes precedence over physical EOF; uncommitted bytes are not a gap.
Destinations
zed: native facts without a standard field
Links
- Lineage:
subagent_context.parent_thread_id, also written to SQLthreads.parent_id, explicitly identifies a subagent parent. The child keeps its own thread ID. A parent-side announcement can be derived from that exact child row as a snapshot. No copy or root rule is qualified.
Usage
Select one report per native accounting identity only when this entry establishes that identity. Keep unjoinable or overlapping reports as native evidence. Declare incomplete semantic coverage. Schema defaults and placeholder zeros are not reported usage. Backend inclusion rules require evidence; do not infer them from a model name.Lane and unassigned facts
Facts without established session ownership use manifest_meta["dev.zed.agent/unassigned"] with the common shape. Selection may retain these facts with any session subset, including an empty subset, but must not imply session ownership. State the selection policy in the export report.
Losses
Declare every applicable loss under ASR-157. Missing model rendering, accounting joins, lineage or exact context boundaries remain losses when this entry does not qualify them. Unknown ownership is not itself lost data. Omitted unassigned facts use a documented vendor loss or report, not a new core category.Evidence
Basis: source-verified:zed-industries/zed commit eb5483528be607b497afdaad0a237bebeb191249; native desktop 1.17.2 at c8e44cfa7bda9b2e22c8d6934d78969352e7f61a. Both use DbThread::VERSION 0.3.0. Two no-model submissions verify persistence and User IDs; tool and compaction rules have source and authored evidence.
Evidence applies only to the named formats and explicit mappings above. A real capture covers only exercised behavior. A no-model writer probe covers persistence, not model or tool execution. Authored tests do not qualify an agent version. Unlisted formats and link mappings remain unqualified.