Click to expand session logs
"
+ echo ""
+ echo ""
+ sed 's|&|\&|g; s|<|\<|g; s|>|\>|g' /tmp/dev-lead-session-output.txt
+ echo "
"
+ echo ""
+ echo " "
+ } >> "$GITHUB_STEP_SUMMARY" || \
+ echo "::warning::Failed to append session output to GITHUB_STEP_SUMMARY" >&2
fi
- cp "$_tmp" /tmp/dev-lead-session-output.txt
rm -f "$_tmp"
fi
return "$rc"
diff --git a/tests/dev-lead/unit/test_engine_writer.bats b/tests/dev-lead/unit/test_engine_writer.bats
index 662ba0fef..941d0721a 100644
--- a/tests/dev-lead/unit/test_engine_writer.bats
+++ b/tests/dev-lead/unit/test_engine_writer.bats
@@ -23,7 +23,6 @@ setup() {
teardown() {
rm -f "$GITHUB_ENV" "$GITHUB_OUTPUT" "$TEST_PROMPT"
- rm -f /tmp/dev-lead-session-output.txt
rm -rf "$STUB_BIN_DIR"
if [ -n "${TEST_OWNED_TOKEN_LOG:-}" ] && [ "${TOKEN_LOG_FILE:-}" = "$TEST_OWNED_TOKEN_LOG" ]; then
rm -f "$TEST_OWNED_TOKEN_LOG"
@@ -470,81 +469,133 @@ STUB
[ ! -s "$log" ]
}
-# ── session output persistence tests ─────────────────────────────────────────
-
-@test "session: run_writer copies output to /tmp/dev-lead-session-output.txt on success" {
+@test "writer: run_writer persists session output to /tmp/dev-lead-session-output.txt" {
_source_engine "claude"
- export STUB_ENGINE_EXIT=0
- export STUB_ENGINE_RESPONSE="PR: #42 - feat: do thing
-Human review threads addressed: 0
-Files changed: none"
export DEV_LEAD_DRY_RUN=false
- rm -f /tmp/dev-lead-session-output.txt
+ cat > "$STUB_BIN_DIR/claude" << 'STUB'
+#!/usr/bin/env bash
+echo "session output line one"
+echo "session output line two"
+STUB
+ chmod +x "$STUB_BIN_DIR/claude"
+ rm -f /tmp/dev-lead-session-output.txt
run run_writer "$TEST_PROMPT"
[ "$status" -eq 0 ]
[ -f /tmp/dev-lead-session-output.txt ]
- grep -q "Files changed: none" /tmp/dev-lead-session-output.txt
+ grep -q "session output line" /tmp/dev-lead-session-output.txt
+ rm -f /tmp/dev-lead-session-output.txt
}
-@test "session: run_writer appends to GITHUB_STEP_SUMMARY when set" {
+@test "writer: GITHUB_STEP_SUMMARY appends HTML-escaped session output" {
_source_engine "claude"
- export STUB_ENGINE_EXIT=0
- export STUB_ENGINE_RESPONSE="Issues addressed: 0"
export DEV_LEAD_DRY_RUN=false
- local summary_file
- summary_file=$(mktemp)
- export GITHUB_STEP_SUMMARY="$summary_file"
- rm -f /tmp/dev-lead-session-output.txt
+ # Stub writes literal