mistral-vibe
Identity
-
Names:
ai.mistral.vibe; short aliasmistral-vibe. -
Native format:
mistral-vibe-session,meta.jsonandmessages.jsonl. Rewinds/edits can overwrite message history. -
Session ID:
metadata.session_id, never the shortened directory suffix. No namespace. -
Content and tools:
reasoning_contentis reasoning;injected: trueestablishes harness injection.user_display_contentis a separate structured display representation.tool_result.outputis raw;cancelledand recorded outcome fields control status. Convert recorded seconds to milliseconds. Manual shell command/cwd/streams/exit/timing fields map withrequestedBy: user, without guessing success. -
Notes:
context_boundary: compactionrecords a summary with unknown replacement range.start_timesupplies session start;end_timeis a save observation, not session termination. Current title/config/profile/system prompt/tools/stats are tail snapshots. Manualtitle_sourcemaps to user; auto may be fallback slicing, so it does not prove model authorship.session_prompt_tokens, completion/cache/total counts are cumulative usage;context_tokensis retained context.session_costis harness-estimated USD.active_modelis configuration, not a served model.
Position basis
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
mistral-vibe: native facts without a standard field
Links
- Entity keys and links: Unique
message_id;tool_calls[].idjoins tool-messagetool_call_id.manual_shell.operation_ididentifies the recorded user shell operation. Duplicate invocation IDs remain ambiguous.parent_session_idsupplies onlyrelatedUnknown, not delegation, copies or root.
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. Rules for what a backend includes in its usage counts require evidence; do not infer them from a model name.Lane and unassigned facts
Facts without established session ownership use manifest_meta["ai.mistral.vibe/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. For omitted unassigned facts, use a documented vendor loss or report; do not create a new core category.Evidence
Basis: source-verified: Vibe2.24.1, commit 4530b9ce6f74046afbeadf63a2c89be9e35ee2bb (session_logger.py, types.py). A no-model SessionLogger probe verifies append, no-op and rewrite with stable message IDs. It does not qualify live tools or model calls.
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.
Observations from 2026-10-27
observed, version 3.0.3: Vibe 3.0.3 used generation, checkpoint, chunk and journal storage. Two CLI runs succeeded, but the legacy converter discovered no streams. This is a different storage format, and no converter for it is qualified here.
The ctx conversion produced 0 streams and 0 records, with 0 errors, 0 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.
observed@2.24.1: two primary CLI runs and one child wrote the legacy meta.json/messages.jsonl layout (3 streams, 60 records, no errors or notices). These runs exercise the actual CLI persistence path, separately from the SessionLogger probe run without a model. No sanitized native fixture was retained for these runs.
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.