kilo
Identity
-
Names:
kilo/ai.kilocode. -
Native format:
opencode-sqlite. Read session/message/part tables and available sequencedsession_messageorsession_entrytables in one transaction, including WAL. Keep alternate migration representations as vendor records. Only layouts verified at this entry’s pin are covered. -
Session ID: Native
session.idorsession_v2.id, with no namespace for the pinned CLI format. A table name or path is not part of identity. Older Kilo editor tasks usecline-taskwith the task ID and a stable installation namespace; that separate family remains unverified here.
Position basis
See the OpenCode family mapping for shared storage guidance. This entry’s own pinned evidence controls qualification; family membership does not transfer identity or semantic claims. Shared order and capture rules are in OpenCode. These shared rules do not make evidence for one agent apply to another.
Use only positions established by the stated format and mapping evidence. Current-state rows without transcript positions form the snapshot tail. A protocol commit boundary takes precedence over physical EOF; uncommitted bytes are not a gap.
Destinations
kilo: native facts without a standard field
Links
- Lineage:
session.parent_idsupplies onlyrelatedUnknown;fork_session_idsuppliesforkedFromwhere that exact field exists at the pinned revision. A task tool’smetadata.sessionIdnames its child. It does not identify the inverse delegating call in a child header. No copies, root or copied-prefix length follow from matching IDs.
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["ai.kilocode/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: Kilo7.4.22, commit 91a337e31cd7675d680aeb13c92870b8f81bdf36. A native no-model import capture verifies persistence and WAL acquisition. Tool transitions and inference have authored evidence only.
Evidence applies only to the named formats and explicit mappings above. A real capture covers only exercised behavior. A writer probe run without a model covers persistence, not model or tool execution. Authored tests do not qualify an agent version. Unlisted formats and link mappings remain unqualified.
Observations from 2026-10-27
observed, version 7.8.18: Kilo 7.8.18 retained edit, shell-test, resume, fork and child sessions. This evidence belongs to Kilo, independently of OpenCode. When parts are folded into a message, preserve every contributing native part row separately in native.record or native.blob.
The ctx conversion produced 3 streams and 110 records, with 0 errors, 3 notices, 0 gaps and 0 unidentified inputs under validator-v0.1.2. These counts describe the selected output; an empty bundle qualifies no source format. No sanitized native fixture was retained for this observation.
Whole native records use native.record or native.blob, with JSON text columns preserved as strings. The exporter’s own bookkeeping for serialization, partitioning and message keys belongs in the exporter namespace (rs.ctx for ctx), not in a provider metadata destination. These runs add no evidence for unexercised approvals, lineage links, compaction boundaries or exact request context.