diff --git a/.github/assets/devo-readme-logo.png b/.github/assets/devo-readme-logo.png
deleted file mode 100644
index 357dd833..00000000
Binary files a/.github/assets/devo-readme-logo.png and /dev/null differ
diff --git a/.github/assets/devo-terminal-tui-coding-agent-screenshot.png b/.github/assets/devo-terminal-tui-coding-agent-screenshot.png
index ae24764d..030ca0dc 100644
Binary files a/.github/assets/devo-terminal-tui-coding-agent-screenshot.png and b/.github/assets/devo-terminal-tui-coding-agent-screenshot.png differ
diff --git a/Cargo.lock b/Cargo.lock
index 04a90b19..af381f48 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1709,7 +1709,7 @@ checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04"
[[package]]
name = "devo-arg0"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"clap",
@@ -1729,7 +1729,7 @@ dependencies = [
[[package]]
name = "devo-cli"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"async-trait",
@@ -1758,7 +1758,7 @@ dependencies = [
[[package]]
name = "devo-client"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"chrono",
@@ -1776,7 +1776,7 @@ dependencies = [
[[package]]
name = "devo-code-search-mcp"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"bm25",
@@ -1829,7 +1829,7 @@ dependencies = [
[[package]]
name = "devo-config"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"devo-protocol",
@@ -1845,7 +1845,7 @@ dependencies = [
[[package]]
name = "devo-core"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"async-trait",
@@ -1891,7 +1891,7 @@ dependencies = [
[[package]]
name = "devo-execpolicy"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"clap",
@@ -1908,7 +1908,7 @@ dependencies = [
[[package]]
name = "devo-file-search"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"clap",
@@ -1924,7 +1924,7 @@ dependencies = [
[[package]]
name = "devo-keyring-store"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"keyring",
"tracing",
@@ -1932,7 +1932,7 @@ dependencies = [
[[package]]
name = "devo-linux-sandbox"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"clap",
@@ -1944,7 +1944,7 @@ dependencies = [
[[package]]
name = "devo-mcp"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"async-trait",
"chrono",
@@ -1960,7 +1960,7 @@ dependencies = [
[[package]]
name = "devo-network-proxy"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"pretty_assertions",
@@ -1972,7 +1972,7 @@ dependencies = [
[[package]]
name = "devo-protocol"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"agent-client-protocol",
"chrono",
@@ -1991,7 +1991,7 @@ dependencies = [
[[package]]
name = "devo-provider"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"async-stream",
@@ -2012,7 +2012,7 @@ dependencies = [
[[package]]
name = "devo-rmcp-client"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"axum",
@@ -2046,7 +2046,7 @@ dependencies = [
[[package]]
name = "devo-safety"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"async-trait",
"devo-config",
@@ -2066,7 +2066,7 @@ dependencies = [
[[package]]
name = "devo-sandbox"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"chrono",
@@ -2092,7 +2092,7 @@ dependencies = [
[[package]]
name = "devo-sandbox-network-proxy"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"devo-sandbox",
@@ -2104,7 +2104,7 @@ dependencies = [
[[package]]
name = "devo-server"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"async-trait",
@@ -2149,7 +2149,7 @@ dependencies = [
[[package]]
name = "devo-skills"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"chrono",
"include_dir",
@@ -2166,7 +2166,7 @@ dependencies = [
[[package]]
name = "devo-tasks"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"async-trait",
@@ -2182,7 +2182,7 @@ dependencies = [
[[package]]
name = "devo-tools"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"async-trait",
"devo-protocol",
@@ -2197,7 +2197,7 @@ dependencies = [
[[package]]
name = "devo-tui"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"ansi-to-tui",
"anyhow",
@@ -2258,14 +2258,14 @@ dependencies = [
[[package]]
name = "devo-util-fuzzy"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"pretty_assertions",
]
[[package]]
name = "devo-util-git"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"assert_matches",
"devo-util-paths",
@@ -2283,7 +2283,7 @@ dependencies = [
[[package]]
name = "devo-util-paths"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"dirs",
"pretty_assertions",
@@ -2296,7 +2296,7 @@ dependencies = [
[[package]]
name = "devo-util-process"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"devo-sandbox",
@@ -2313,7 +2313,7 @@ dependencies = [
[[package]]
name = "devo-util-shell-command"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"base64 0.22.1",
@@ -2333,7 +2333,7 @@ dependencies = [
[[package]]
name = "devo-windows-sandbox"
-version = "0.1.32"
+version = "0.1.33"
dependencies = [
"anyhow",
"base64 0.22.1",
diff --git a/Cargo.toml b/Cargo.toml
index 00bb29b9..fd5fe909 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -37,7 +37,7 @@ resolver = "3"
edition = "2024"
license = "MIT"
rust-version = "1.88.0"
-version = "0.1.32"
+version = "0.1.33"
[workspace.dependencies]
agent-client-protocol = "0.14.0"
diff --git a/README.ja.md b/README.ja.md
index 3006de98..7d8891d7 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -26,11 +26,11 @@
## スクリーンショット
-
+
-
+
## Devo を選ぶ理由
diff --git a/README.md b/README.md
index 5a804704..e372322f 100644
--- a/README.md
+++ b/README.md
@@ -27,11 +27,11 @@
## Screenshots
-
+
-
+
## Why Devo
diff --git a/README.ru.md b/README.ru.md
index fd9c9076..9e19ec9e 100644
--- a/README.ru.md
+++ b/README.ru.md
@@ -26,11 +26,11 @@
## Скриншоты
-
+
-
+
## Почему Devo
diff --git a/README.zh-Hans.md b/README.zh-Hans.md
index 055bdcc3..f634be8d 100644
--- a/README.zh-Hans.md
+++ b/README.zh-Hans.md
@@ -26,11 +26,11 @@
## 截图
-
+
-
+
## 为什么选择 Devo
diff --git a/README.zh-Hant.md b/README.zh-Hant.md
index 5365b29a..244e4d02 100644
--- a/README.zh-Hant.md
+++ b/README.zh-Hant.md
@@ -26,11 +26,11 @@
## 截圖
-
+
-
+
## 為什麼選擇 Devo
diff --git a/apps/desktop/package.json b/apps/desktop/package.json
index 75c1d3fd..f9e8c326 100644
--- a/apps/desktop/package.json
+++ b/apps/desktop/package.json
@@ -1,7 +1,7 @@
{
"name": "@devo/desktop",
"productName": "Devo",
- "version": "0.1.32",
+ "version": "0.1.33",
"description": "AI-powered coding assistant desktop app",
"author": "Devo",
"license": "MIT",
diff --git a/crates/core/tests/fixtures/rollout_v1/basic_session.jsonl b/crates/core/tests/fixtures/rollout_v1/basic_session.jsonl
index 53937879..a100f699 100644
--- a/crates/core/tests/fixtures/rollout_v1/basic_session.jsonl
+++ b/crates/core/tests/fixtures/rollout_v1/basic_session.jsonl
@@ -1,4 +1,4 @@
-{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000b1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","last_activity_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":null,"agent_role":null,"agent_path":null,"model_provider":"openai","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.32","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"on-request","tokens_used":12345,"first_user_message":"Fix the flaky test","archived_at":null,"git_sha":"abc123","git_branch":"main","git_origin_url":"git@github.com:example/repo.git","parent_session_id":null,"schema_version":2}}}
+{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000b1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","last_activity_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":null,"agent_role":null,"agent_path":null,"model_provider":"openai","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.33","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"on-request","tokens_used":12345,"first_user_message":"Fix the flaky test","archived_at":null,"git_sha":"abc123","git_branch":"main","git_origin_url":"git@github.com:example/repo.git","parent_session_id":null,"schema_version":2}}}
{"Turn":{"timestamp":"2026-07-01T12:00:02Z","turn":{"id":"00000000-0000-0000-0000-0000000000b2","session_id":"00000000-0000-0000-0000-0000000000b1","sequence":1,"started_at":"2026-07-01T12:00:02Z","completed_at":"2026-07-01T12:00:03Z","status":"Completed","kind":"regular","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","request_model":"gpt-5.2-codex","request_thinking":null,"input_token_estimate":null,"usage":{"input_tokens":100,"output_tokens":50,"cache_creation_input_tokens":10,"cache_read_input_tokens":20,"reasoning_output_tokens":5,"total_tokens":150},"schema_version":4}}}
{"Item":{"timestamp":"2026-07-01T12:00:11Z","item":{"id":"00000000-0000-0000-0000-0000000000b3","session_id":"00000000-0000-0000-0000-0000000000b1","turn_id":"00000000-0000-0000-0000-0000000000b2","seq":1,"timestamp":"2026-07-01T12:00:11Z","attempt_placement":null,"turn_status":"Running","sibling_turn_ids":[],"input_items":[{"UserMessage":{"text":"Fix the flaky test"}}],"output_items":[{"AgentMessage":{"text":"On it."}},{"Plan":{"text":"1. reproduce\n2. fix"}}],"worklog":null,"error":null,"schema_version":1}}}
{"Item":{"timestamp":"2026-07-01T12:00:12Z","item":{"id":"00000000-0000-0000-0000-0000000000b4","session_id":"00000000-0000-0000-0000-0000000000b1","turn_id":"00000000-0000-0000-0000-0000000000b2","seq":2,"timestamp":"2026-07-01T12:00:12Z","attempt_placement":null,"turn_status":"Running","sibling_turn_ids":[],"input_items":[],"output_items":[{"ToolCall":{"tool_call_id":"call-1","tool_name":"read_file","input":{"path":"src/lib.rs"}}},{"ToolResult":{"tool_call_id":"call-1","tool_name":"read_file","output":{"content":"fn main() {}"},"display_content":"fn main() {}","is_error":false}}],"worklog":null,"error":null,"schema_version":1}}}
diff --git a/crates/core/tests/fixtures/rollout_v1/internal_lines.jsonl b/crates/core/tests/fixtures/rollout_v1/internal_lines.jsonl
index b5739d7b..90a0acec 100644
--- a/crates/core/tests/fixtures/rollout_v1/internal_lines.jsonl
+++ b/crates/core/tests/fixtures/rollout_v1/internal_lines.jsonl
@@ -1,4 +1,4 @@
-{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000c1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":"scout","agent_role":"explorer","agent_path":null,"model_provider":"openai","model":null,"model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.32","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"full-access","tokens_used":12345,"first_user_message":null,"archived_at":null,"git_sha":null,"git_branch":null,"git_origin_url":null,"parent_session_id":"00000000-0000-0000-0000-0000000000c0","session_context":{"base_instructions":"base","available_skills":null,"workspace_instructions":null,"locked_agents_snapshot":null,"environment":{"cwd":".","shell":"bash","current_date":"2026-07-01","timezone":"UTC"},"language":{"language_preference":"Reply in the same natural language as the user's latest message. If the latest user message mixes languages, use the primary language of that message. Preserve technical terms, code identifiers, file paths, commands, API names, and quoted text in their original form unless the user explicitly asks to translate them. This language rule also applies to Proposed Plan and Goal: any content inside and must follow the same natural language as the user's latest message."},"persona":"default","model":{"slug":"gpt-5.2","display_name":"","provider":"openai_chat_completions","description":null,"reasoning_capability":"unsupported","default_reasoning_effort":"medium","reasoning_implementation":null,"base_instructions":"","context_window":200000,"effective_context_window_percent":null,"truncation_policy":{"mode":"bytes","limit":8000},"input_modalities":["text"],"supports_image_detail_original":false,"channel":null,"temperature":null,"top_p":null,"top_k":null,"max_tokens":null},"reasoning_effort_selection":null,"reasoning_effort":null,"system_prompt_mode":"coding_agent"},"schema_version":2}}}
+{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000c1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":"scout","agent_role":"explorer","agent_path":null,"model_provider":"openai","model":null,"model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.33","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"full-access","tokens_used":12345,"first_user_message":null,"archived_at":null,"git_sha":null,"git_branch":null,"git_origin_url":null,"parent_session_id":"00000000-0000-0000-0000-0000000000c0","session_context":{"base_instructions":"base","available_skills":null,"workspace_instructions":null,"locked_agents_snapshot":null,"environment":{"cwd":".","shell":"bash","current_date":"2026-07-01","timezone":"UTC"},"language":{"language_preference":"Reply in the same natural language as the user's latest message. If the latest user message mixes languages, use the primary language of that message. Preserve technical terms, code identifiers, file paths, commands, API names, and quoted text in their original form unless the user explicitly asks to translate them. This language rule also applies to Proposed Plan and Goal: any content inside and must follow the same natural language as the user's latest message."},"persona":"default","model":{"slug":"gpt-5.2","display_name":"","provider":"openai_chat_completions","description":null,"reasoning_capability":"unsupported","default_reasoning_effort":"medium","reasoning_implementation":null,"base_instructions":"","context_window":200000,"effective_context_window_percent":null,"truncation_policy":{"mode":"bytes","limit":8000},"input_modalities":["text"],"supports_image_detail_original":false,"channel":null,"temperature":null,"top_p":null,"top_k":null,"max_tokens":null},"reasoning_effort_selection":null,"reasoning_effort":null,"system_prompt_mode":"coding_agent"},"schema_version":2}}}
{"Turn":{"timestamp":"2026-07-01T12:00:02Z","turn":{"id":"00000000-0000-0000-0000-0000000000c2","session_id":"00000000-0000-0000-0000-0000000000c1","sequence":1,"started_at":"2026-07-01T12:00:02Z","completed_at":null,"status":"Failed","kind":"manual_compaction","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","request_model":"gpt-5.2-codex","request_thinking":"enabled","input_token_estimate":42,"usage":null,"latest_query_usage":{"input_tokens":10,"output_tokens":5,"cache_creation_input_tokens":null,"cache_read_input_tokens":null,"total_tokens":15},"error":{"code":"PROVIDER_SERVER_ERROR","message":"provider request failed","recovery_hint":"retry later"},"session_context":{"base_instructions":"base","available_skills":null,"workspace_instructions":null,"locked_agents_snapshot":null,"environment":{"cwd":".","shell":"bash","current_date":"2026-07-01","timezone":"UTC"},"language":{"language_preference":"Reply in the same natural language as the user's latest message. If the latest user message mixes languages, use the primary language of that message. Preserve technical terms, code identifiers, file paths, commands, API names, and quoted text in their original form unless the user explicitly asks to translate them. This language rule also applies to Proposed Plan and Goal: any content inside and must follow the same natural language as the user's latest message."},"persona":"default","model":{"slug":"gpt-5.2","display_name":"","provider":"openai_chat_completions","description":null,"reasoning_capability":"unsupported","default_reasoning_effort":"medium","reasoning_implementation":null,"base_instructions":"","context_window":200000,"effective_context_window_percent":null,"truncation_policy":{"mode":"bytes","limit":8000},"input_modalities":["text"],"supports_image_detail_original":false,"channel":null,"temperature":null,"top_p":null,"top_k":null,"max_tokens":null},"reasoning_effort_selection":null,"reasoning_effort":null,"system_prompt_mode":"coding_agent"},"turn_context":{"environment":{"cwd":"/tmp/legacy-project","shell":"bash","current_date":"2026-07-01","timezone":"UTC"},"persona":"default","model":{"slug":"gpt-5.2","display_name":"","provider":"openai_chat_completions","description":null,"reasoning_capability":"unsupported","default_reasoning_effort":"medium","reasoning_implementation":null,"base_instructions":"","context_window":200000,"effective_context_window_percent":null,"truncation_policy":{"mode":"bytes","limit":8000},"input_modalities":["text"],"supports_image_detail_original":false,"channel":null,"temperature":null,"top_p":null,"top_k":null,"max_tokens":null},"reasoning_effort_selection":null,"reasoning_effort":null,"observed_agents_snapshot":null,"collaboration_mode":"build"},"schema_version":4}}}
{"Item":{"timestamp":"2026-07-01T12:00:11Z","item":{"id":"00000000-0000-0000-0000-0000000000c3","session_id":"00000000-0000-0000-0000-0000000000c1","turn_id":"00000000-0000-0000-0000-0000000000c2","seq":1,"timestamp":"2026-07-01T12:00:11Z","attempt_placement":null,"turn_status":"Running","sibling_turn_ids":[],"input_items":[{"HookPrompt":{"text":"hook text"}}],"output_items":[{"ToolProgress":{"tool_call_id":"call-9","message":"working"}},{"TurnSummary":{"text":"3"}}],"worklog":null,"error":null,"schema_version":1}}}
{"MessageEditRecorded":{"timestamp":"2026-07-01T12:00:40Z","record":{"schema_version":1,"session_id":"00000000-0000-0000-0000-0000000000c1","edit_id":"00000000-0000-0000-0000-0000000000c4","target_message_id":"00000000-0000-0000-0000-0000000000c5","replacement_message_id":"00000000-0000-0000-0000-0000000000c6","target_turn_id":"00000000-0000-0000-0000-0000000000c2","replacement_turn_id":null,"queue_item_id":null,"edited_content_parts":[{"content_type":"text","value":"edited"}],"edited_mentions":[],"workspace_restore_policy":"skip","edit_state":"accepted","requested_by_client_id":null,"created_at":"2026-07-01T12:00:40Z"}}}
diff --git a/crates/core/tests/fixtures/rollout_v1/orphan_decision.jsonl b/crates/core/tests/fixtures/rollout_v1/orphan_decision.jsonl
index a99d0393..d19fa778 100644
--- a/crates/core/tests/fixtures/rollout_v1/orphan_decision.jsonl
+++ b/crates/core/tests/fixtures/rollout_v1/orphan_decision.jsonl
@@ -1,4 +1,4 @@
-{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000d1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","last_activity_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":null,"agent_role":null,"agent_path":null,"model_provider":"openai","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.32","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"untrusted","tokens_used":12345,"first_user_message":"Fix the flaky test","archived_at":null,"git_sha":"abc123","git_branch":"main","git_origin_url":"git@github.com:example/repo.git","parent_session_id":null,"schema_version":2}}}
+{"SessionMeta":{"timestamp":"2026-07-01T12:00:00Z","session":{"id":"00000000-0000-0000-0000-0000000000d1","rollout_path":"rollout.jsonl","created_at":"2026-07-01T12:00:00Z","updated_at":"2026-07-01T12:00:01Z","last_activity_at":"2026-07-01T12:00:01Z","source":"cli","agent_nickname":null,"agent_role":null,"agent_path":null,"model_provider":"openai","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","cwd":"/tmp/legacy-project","additional_directories":["/tmp/legacy-extra"],"cli_version":"0.1.33","title":"Legacy Session","title_state":{"Final":"ModelGenerated"},"sandbox_policy":"workspace-write","approval_mode":"untrusted","tokens_used":12345,"first_user_message":"Fix the flaky test","archived_at":null,"git_sha":"abc123","git_branch":"main","git_origin_url":"git@github.com:example/repo.git","parent_session_id":null,"schema_version":2}}}
{"Turn":{"timestamp":"2026-07-01T12:00:02Z","turn":{"id":"00000000-0000-0000-0000-0000000000d2","session_id":"00000000-0000-0000-0000-0000000000d1","sequence":1,"started_at":"2026-07-01T12:00:02Z","completed_at":null,"status":"WaitingApproval","kind":"regular","model":"gpt-5.2","model_binding_id":"binding-1","reasoning_effort_selection":"high","request_model":"gpt-5.2-codex","request_thinking":null,"input_token_estimate":null,"usage":{"input_tokens":100,"output_tokens":50,"cache_creation_input_tokens":10,"cache_read_input_tokens":20,"reasoning_output_tokens":5,"total_tokens":150},"schema_version":4}}}
{"Item":{"timestamp":"2026-07-01T12:00:11Z","item":{"id":"00000000-0000-0000-0000-0000000000d3","session_id":"00000000-0000-0000-0000-0000000000d1","turn_id":"00000000-0000-0000-0000-0000000000d2","seq":1,"timestamp":"2026-07-01T12:00:11Z","attempt_placement":null,"turn_status":"Running","sibling_turn_ids":[],"input_items":[],"output_items":[{"ApprovalDecision":{"approval_id":"appr-orphan","decision":"approve","scope":"session"}}],"worklog":null,"error":null,"schema_version":1}}}
{"Item":{"timestamp":"2026-07-01T12:00:12Z","item":{"id":"00000000-0000-0000-0000-0000000000d4","session_id":"00000000-0000-0000-0000-0000000000d1","turn_id":"00000000-0000-0000-0000-0000000000d2","seq":2,"timestamp":"2026-07-01T12:00:12Z","attempt_placement":null,"turn_status":"Running","sibling_turn_ids":[],"input_items":[],"output_items":[{"ImageGeneration":{"text":"image result"}}],"worklog":null,"error":null,"schema_version":1}}}
diff --git a/crates/core/tests/legacy_projector.rs b/crates/core/tests/legacy_projector.rs
index dc65f39e..b5a0f116 100644
--- a/crates/core/tests/legacy_projector.rs
+++ b/crates/core/tests/legacy_projector.rs
@@ -76,7 +76,7 @@ fn session_record(n: u128) -> SessionRecord {
reasoning_effort_selection: Some("high".into()),
cwd: "/tmp/legacy-project".into(),
additional_directories: vec!["/tmp/legacy-extra".into()],
- cli_version: "0.1.32".into(),
+ cli_version: "0.1.33".into(),
title: Some("Legacy Session".into()),
title_state: SessionTitleState::Final(SessionTitleFinalSource::ModelGenerated),
sandbox_policy: "workspace-write".into(),
diff --git a/crates/core/tests/v2_roundtrip.rs b/crates/core/tests/v2_roundtrip.rs
index eaab4b73..d3c1f0c3 100644
--- a/crates/core/tests/v2_roundtrip.rs
+++ b/crates/core/tests/v2_roundtrip.rs
@@ -424,7 +424,7 @@ fn live_write_lines() -> Vec {
reasoning_effort_selection: Some("medium".into()),
cwd: "/tmp/live".into(),
additional_directories: vec!["/tmp/live-extra".into()],
- cli_version: "0.1.32".into(),
+ cli_version: "0.1.33".into(),
title: None,
title_state: SessionTitleState::Unset,
sandbox_policy: "workspace-write".into(),