Skip to content

Commit c6b4dc6

Browse files
MrFlounderclaude
andcommitted
fix(wip): correctly capture codex session UUID from nested directory structure
Codex stores sessions as ~/.codex/sessions/YYYY/MM/DD/rollout-<ts>-<uuid>.jsonl. The old code just listed top-level dirs, grabbing "2026" instead of the UUID. Now finds the most recent .jsonl file and extracts the UUID with grep. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a8bdcf5 commit c6b4dc6

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

src/crabcode

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,16 @@ agent_capture_session_id() {
216216
local agent=$(get_agent_type)
217217
case "$agent" in
218218
codex)
219-
# Codex stores sessions in ~/.codex - grab most recent session ID
219+
# Codex stores sessions in ~/.codex/sessions/YYYY/MM/DD/rollout-<ts>-<uuid>.jsonl
220220
local codex_sessions="$HOME/.codex/sessions"
221221
if [ -d "$codex_sessions" ]; then
222-
ls -t "$codex_sessions" 2>/dev/null | head -1 || echo ""
222+
local latest_file
223+
latest_file=$(find "$codex_sessions" -name "*.jsonl" -type f 2>/dev/null | xargs ls -t 2>/dev/null | head -1)
224+
if [ -n "$latest_file" ]; then
225+
basename "$latest_file" .jsonl | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' || echo ""
226+
else
227+
echo ""
228+
fi
223229
else
224230
echo ""
225231
fi

tests/unit/test_agent_helpers.bats

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -330,16 +330,16 @@ teardown() {
330330
assert_output ""
331331
}
332332

333-
@test "agent_capture_session_id: codex finds session from ~/.codex/sessions/" {
333+
@test "agent_capture_session_id: codex finds session UUID from ~/.codex/sessions/" {
334334
CONFIG_FILE="${HOME}/.crabcode/projects/codex-project.yaml"
335335

336-
# Set up fake codex sessions
337-
mkdir -p "${HOME}/.codex/sessions"
338-
mkdir "${HOME}/.codex/sessions/codex-sess-xyz"
336+
# Set up fake codex sessions with realistic directory structure
337+
mkdir -p "${HOME}/.codex/sessions/2026/03/10"
338+
touch "${HOME}/.codex/sessions/2026/03/10/rollout-2026-03-10T21-25-33-019cdb24-92fb-7513-a77b-548656b63eec.jsonl"
339339

340340
run agent_capture_session_id "/tmp/any-workspace"
341341
assert_success
342-
assert_output "codex-sess-xyz"
342+
assert_output "019cdb24-92fb-7513-a77b-548656b63eec"
343343
}
344344

345345
# =============================================================================

0 commit comments

Comments
 (0)