Generic Session Interchange
Generic Session Interchange
Status: manual import only
Evidence date: 2026-07-26
Tested contract: `aiwg.session-interchange` schema `1.0.0`
Purpose
The generic adapter imports an explicitly selected AIWG interchange file when no provider-specific adapter applies. It does not discover sources and does not guess provider semantics from arbitrary JSON keys.
Format
The interchange is UTF-8 JSONL. The first record is a mandatory header:
{"type":"aiwg.session-interchange","schemaVersion":"1.0.0","product":"exporter-name","productVersion":"1.0.0","sourceId":"selected-source-id","exportedAt":"2026-07-26T12:00:00Z","consistency":"complete","lifecycle":"complete","workspace":{"id":"workspace-id"},"provenance":{"exporter":"exporter-name","exporterVersion":"1.0.0","sourceClass":"manual-export"}}
Following records have `type: "event"` and require `sessionId`, `eventId`, nonnegative `sequence`, `kind`, `text`, and `lifecycle`. Timestamps must be RFC 3339 with `Z` or an explicit numeric offset. Unknown fields are retained under the `native.generic` normalized extension.
Safety and limitations
- Selection and allowed-root authorization are explicit; home-directory
scanning and network acquisition are not supported.
- Unknown schema majors, arbitrary JSON, missing or duplicate identities,
ambiguous local timestamps, malformed records, and truncated tails fail closed.
- Transcript text is untrusted data. It is redacted before normalized
persistence and cannot invoke commands, tools, URLs, plugins, or workflows.
- The adapter preserves declared product, workspace, lifecycle, provenance,
extensions, and unknown fields. It does not infer absent provider semantics.
- Raw provider data is never modified. Deleting an AIWG import removes only
AIWG-owned normalized and derived copies according to the session lifecycle policy; it does not delete the manually selected export.
Verification
Synthetic fixtures live under `test/fixtures/sessions/generic/`. They cover a valid v1 interchange, opaque future event kinds, redaction canaries, duplicate IDs, ambiguous timestamps, unknown schema majors, arbitrary opaque input, and a truncated provisional file. No real-user transcript data is included.