1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
SQLite format 3 @ .c
�
M 4��
�xW
�M. �^ �tabletodotodo
CREATE TABLE `todo` (
`session_id` text NOT NULL,
`content` text NOT NULL,
`status` text NOT NULL,
`priority` text NOT NULL,
`position` integer NOT NULL,
`time_created` integer NOT NULL,
`time_updated` integer NOT NULL,
CONSTRAINT `todo_pk` PRIMARY KEY(`session_id`, `position`),
CONSTRAINT `fk_todo_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE
)'
; indexsqlite_autoindex_todo_1todo�u�AtablesessionsessionCREATE TABLE `session` (
`id` text PRIMARY KEY,
`project_id` text NOT NULL,
`workspace_id` text,
`parent_id` text,
`slug` text NOT NULL,
`directory` text NOT NULL,
`path` text,
`title` text NOT NULL,
`version` text NOT NULL,
`share_url` text,
`summary_additions` integer,
`summary_deletions` integer,
`summary_files` integer,
`summary_diffs` text,
`metadata` text,
`cost` real DEFAULT 0 NOT NULL,
`tokens_input` integer DEFAULT 0 NOT NULL,
`tokens_output` integer DEFAULT 0 NOT NULL,
`tokens_reasoning` integer DEFAULT 0 NOT NULL,
`tokens_cache_read` integer DEFAULT 0 NOT NULL,
`tokens_cache_write` integer DEFAULT 0 NOT NULL,
`revert` text,
`permission` text,
`agent` text,
`model` text,
`time_created` integer NOT NULL,
`time_updated` integer NOT NULL,
`time_compacting` integer,
`time_archived` integer,
CONSTRAINT `fk_session_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE
)-A indexsqlite_autoindex_session_1session �w�QtablepartpartCREATE TABLE `part` (
`id` text PRIMARY KEY,
`message_id` text NOT NULL,
`session_id` text NOT NULL,
`time_created` integer NOT NULL,
`time_updated` integer NOT NULL,
`data` text NOT NULL,
CONSTRAINT `fk_part_message_id_message_id_fk` FOREIGN KEY (`message_id`) REFERENCES `message`(`id`) ON DELETE CASCADE
)'; indexsqlite_autoindex_part_1part�a�tablemessagemessageCREATE TABLE `message` (
`id` text PRIMARY KEY,
`session_id` text NOT NULL,
`time_created` integer NOT NULL,
`time_updated` integer NOT NULL,
`data` text NOT NULL,
CONSTRAINT `fk_message_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE
)-A indexsqlite_autoindex_message_1message��{tableprojectprojectCREATE TABLE `project` (
`id` text PRIMARY KEY,
`worktree` text NOT NULL,
`vcs` text,
`name` text,
`icon_url` text,
`icon_url_override` text,
`icon_color` text,
`time_created` integer NOT NULL,
`time_updated` integer NOT NULL,
`time_initialized` integer,
`sandboxes` text NOT NULL,
`commands` text
)-A indexsqlite_autoindex_project_1project
� � [
A5+ prj_fixture000000000000001/tmp/fixture-projectgitfixture-project�t � �t � []
� � A prj_fixture000000000000001
Y
C
Y �g?C�Mmsg_fixtureAsst0000000002ses_fixtureBBBBBBBBBBBBBBB1�t ���t ��{"role": "assistant", "time": {"created": 1750000000200, "completed": 1750000000500}, "parentID": "msg_fixtureUser0000000002", "modelID": "claude-fixture", "providerID": "anthropic", "mode": "build", "agent": "build", "path": {"cwd": "/tmp/fixture-project", "root": "/tmp/fixture-project"}, "cost": 0.0123, "tokens": {"input": 100, "output": 200, "reasoning": 0, "cache": {"read": 10, "write": 5}}, "finish": "stop"}�P?C�msg_fixtureUser0000000002ses_fixtureBBBBBBBBBBBBBBB1�t � �t �d{"role": "user", "time": {"created": 1750000000000}, "agent": "build", "model": {"providerID": "anthropic", "modelID": "claude-fixture"}}�g?C�Mmsg_fixtureAsst0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�H�t";�{"role": "assistant", "time": {"created": 1750000061000, "completed": 1750000090000}, "parentID": "msg_fixtureUser0000000001", "modelID": "claude-fixture", "providerID": "anthropic", "mode": "build", "agent": "build", "path": {"cwd": "/tmp/fixture-project", "root": "/tmp/fixture-project"}, "cost": 0.0123, "tokens": {"input": 100, "output": 200, "reasoning": 0, "cache": {"read": 10, "write": 5}}, "finish": "stop"}�}?C�ymsg_fixtureUser0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�`�t!�T{"role": "user", "time": {"created": 1750000060000}, "agent": "build", "model": {"providerID": "anthropic", "modelID": "claude-fixture"}, "system": "You are a helpful coding agent."}
� ���� ?msg_fixtureAsst0000000002?msg_fixtureUser0000000002?msg_fixtureAsst0000000001? msg_fixtureUser0000000001
� c�
��<
� � G� | +?CYprt_asstB_text1msg_fixtureAsst0000000002ses_fixtureBBBBBBBBBBBBBBB1�t ���t ��{"type": "text", "text": "hello back"}t+?CIprt_userB_text1msg_fixtureUser0000000002ses_fixtureBBBBBBBBBBBBBBB1�t � �t � {"type": "text", "text": "hi"}�!1?C�prt_asstA_tool_errmsg_fixtureAsst0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�2�t!�2{"type": "tool", "callID": "call_2", "tool": "edit", "state": {"status": "error", "input": {"path": "file.txt"}, "error": "permission denied", "time": {"start": 1750000064000, "end": 1750000065000}}}�X/?C�prt_asstA_tool_okmsg_fixtureAsst0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�1�t!�1{"type": "tool", "callID": "call_1", "tool": "bash", "state": {"status": "completed", "input": {"command": "cat file.txt"}, "output": "file contents: hello world\n", "title": "bash", "metadata": {}, "time": {"start": 1750000062000, "end": 1750000063000}}}�
+?Cuprt_asstA_text1msg_fixtureAsst0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�0�t!�0{"type": "text", "text": "I'll check the file now."}�'?C�
prt_userA_imgmsg_fixtureUser0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�c�t!�c{"type": "file", "mime": "image/png", "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=", "filename": "screenshot.png"}�C'?C�iprt_userA_pdfmsg_fixtureUser0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�b�t!�b{"type": "file", "mime": "application/pdf", "url": "https://example.com/report.pdf", "filename": "report.pdf"}�9/?C�Mprt_userA_ignoredmsg_fixtureUser0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�a�t!�a{"type": "text", "text": "internal scratch note \u2014 not shown to the model", "ignored": true}�+?C�prt_userA_text1msg_fixtureUser0000000001ses_fixtureAAAAAAAAAAAAAAA1�t!�`�t!�`{"type": "text", "text": "Please check this file and fix the bug."}
J �r�J����^ +prt_asstB_text1 +prt_userB_text11prt_asstA_tool_err/prt_asstA_tool_ok+prt_asstA_text1'prt_userA_img'prt_userA_pdf/prt_userA_ignored+ prt_userA_text1
� y
� �aCA /5 M s ses_fixtureBBBBBBBBBBBBBBB1prj_fixture000000000000001fixture-session-b/tmp/fixture-projectFixture Session B (plain, older)1.0.0build{"id": "claude-fixture", "providerID": "anthropic"}�t � �t ��CA /5 I �+ ses_fixtureAAAAAAAAAAAAAAA1prj_fixture000000000000001fixture-session-a/tmp/fixture-projectFixture Session A (hard cases)1.0.0?��!�R�<xT2
{"messageID": "msg_fixtureAsst0000000001", "snapshot": "snap_fixture0001", "diff": "@@ -1 +1 @@\n-old\n+new\n", "files": [{"path": "src/a.txt", "additions": 3, "deletions": 1, "patch": "@@ -1,1 +1,3 @@\n"}]}�t!�`�t"��
� �� Cses_fixtureBBBBBBBBBBBBBBB1C ses_fixtureAAAAAAAAAAAAAAA1
� � UC;#ses_fixtureAAAAAAAAAAAAAAA1Fix the bug in file.txtin_progresshigh�t!�<�t!�<
� � C ses_fixtureAAAAAAAAAAAAAAA1