mistral-vibe

Identity

  • Names: ai.mistral.vibe; short alias mistral-vibe.
  • Native format: mistral-vibe-session, meta.json and messages.jsonl. Rewinds/edits can overwrite message history.
  • Session ID: metadata.session_id, never the shortened directory suffix. No namespace.
  • Content and tools: reasoning_content is reasoning; injected: true establishes harness injection. user_display_content is a separate structured display representation. tool_result.output is raw; cancelled and recorded outcome fields control status. Convert recorded seconds to milliseconds. Manual shell command/cwd/streams/exit/timing fields map with requestedBy: user, without guessing success.
  • Notes: context_boundary: compaction records a summary with unknown replacement range. start_time supplies session start; end_time is a save observation, not session termination. Current title/config/profile/system prompt/tools/stats are tail snapshots. Manual title_source maps 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_tokens is retained context. session_cost is harness-estimated USD. active_model is 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

  • Entity keys and links: Unique message_id; tool_calls[].id joins tool-message tool_call_id. manual_shell.operation_id identifies the recorded user shell operation. Duplicate invocation IDs remain ambiguous. parent_session_id supplies only relatedUnknown, 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: Vibe 2.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.