Skip to content

[schema-watch] claude-code: 4 new message types + 8 new top-level fields #239

@tuo-lei

Description

@tuo-lei

Detection date

2026-05-05

Sample

  • provider: claude-code
  • inspected sessions: 3 most recent JSONL files in `~/.claude/projects/` (cwd: vibe-replay2)
  • baseline last_run: 2026-04-28

Field diff

Newly observed top-level fields

  • `durationMs`
  • `isMeta`
  • `isSnapshotUpdate`
  • `lastPrompt`
  • `messageCount`
  • `messageId`
  • `snapshot`
  • `subtype`

(`leafUuid` was filtered as noise by the `uuid` substring rule, but you may want to verify the parser handles `last-prompt` envelopes that carry it.)

Newly observed message types

  • `last-prompt` — keys: `lastPrompt`, `leafUuid`, `sessionId`, `type`
  • `permission-mode` — keys: `permissionMode`, `sessionId`, `type`
  • `file-history-snapshot` — keys: `isSnapshotUpdate`, `messageId`, `snapshot`, `type`
  • `system` — keys: `content`, `cwd`, `durationMs`, `entrypoint`, `gitBranch`, `isMeta`, `isSidechain`, `messageCount`, `parentUuid`, `sessionId`, `subtype`, `timestamp`, `type`, `userType`, `uuid`, `version`

Disappeared fields / types

None. All baseline fields and types still observed.

Suggested follow-up

  • Inspect `packages/cli/src/providers/claude-code/` to confirm the parser ignores or handles each new `type` value (especially `file-history-snapshot`, which carries snapshot data the viewer may want to surface, and `system` envelopes with `durationMs` / `messageCount`).
  • Decide whether `last-prompt` and `permission-mode` events should appear in replays or be silently consumed.
  • If parser already handles them: confirm shared types in `packages/types/src/index.ts` are aligned.
  • Run claude-code fixture E2E (`pnpm test:e2e`) to confirm no regressions.

References

  • snapshot path (gitignored): `plan/research/schema-snapshots/claude-code.json`
  • baseline last_run: 2026-04-28

Auto-opened by schema-watch routine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    schema-watchUpstream schema drift detected by routine

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions