Skip to content

Commit e1ed30a

Browse files
committed
fix(cli): surface session_id in /status JSON output
When running claw --output-format json --resume <session> /status, the JSON output had 'session' (full file path) but no 'session_id' field, making it impossible for scripts to extract the loaded session ID. Now extracts the session-id directory component from the session path (e.g. .claw/sessions/<session-id>/session-xxx.jsonl → session-id) and includes it as 'session_id' in the JSON status envelope. 159 CLI tests pass, fmt clean.
1 parent 54269da commit e1ed30a

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

  • rust/crates/rusty-claude-cli/src

rust/crates/rusty-claude-cli/src/main.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4825,6 +4825,11 @@ fn status_json_value(
48254825
"unstaged_files": context.git_summary.unstaged_files,
48264826
"untracked_files": context.git_summary.untracked_files,
48274827
"session": context.session_path.as_ref().map_or_else(|| "live-repl".to_string(), |path| path.display().to_string()),
4828+
"session_id": context.session_path.as_ref().and_then(|path| {
4829+
// Session files live under .claw/sessions/<session-id>/<file>.jsonl
4830+
// Extract the session-id directory component.
4831+
path.parent().and_then(|p| p.file_name()).map(|n| n.to_string_lossy().into_owned())
4832+
}),
48284833
"loaded_config_files": context.loaded_config_files,
48294834
"discovered_config_files": context.discovered_config_files,
48304835
"memory_file_count": context.memory_file_count,

0 commit comments

Comments
 (0)