Merge main and apply code review fixes

Merged origin/main into PR branch and applied review feedback:

Review fixes:
- Guard against empty result_obj if jq fails (Macroscope)
- Prioritize result object's session_id over init message (CodeRabbit)
- Add regression test for arrays with session_id only in result element

Resolved conflicts:
- CLAUDE.md: Updated test count to 319

All 319 tests pass.
This commit is contained in:
Test User 2026-01-21 21:42:29 -07:00
commit 761db2f67d
7 changed files with 111 additions and 26 deletions

View file

@ -896,3 +896,26 @@ EOF
local stored_session=$(cat "$RALPH_DIR/.claude_session_id")
[[ "$stored_session" == *"session-persist-array-test"* ]]
}
# Regression test: arrays where only result element carries session_id (review fix: CodeRabbit)
@test "parse_json_response extracts session_id from result object when no init message" {
local output_file="$LOG_DIR/test_output.log"
# Array with session_id only in result object, no init message
cat > "$output_file" << 'EOF'
[
{"type": "assistant", "message": {"content": [{"type": "text", "text": "Working..."}]}},
{"type": "result", "subtype": "success", "result": "Task complete.", "session_id": "session-in-result-only"}
]
EOF
run parse_json_response "$output_file"
assert_equal "$status" "0"
local result_file="$RALPH_DIR/.json_parse_result"
[[ -f "$result_file" ]]
# Session ID should be extracted from result object
local session_id=$(jq -r '.session_id' "$result_file")
assert_equal "$session_id" "session-in-result-only"
}