fix: address review — scratch file survives crash, cap read size, fix instruction (#262)
- Remove SCRATCH_FILE from action-agent cleanup() trap so it survives crashes - Change instruction to note contents already injected (avoid wasted tool call) - Cap scratch file read at 8KB via head -c 8192 - Move predictor scratch instruction after formula (consistent placement) - Remove redundant FINAL_PHASE re-reads in planner/predictor Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6405ac9837
commit
26d20af48c
4 changed files with 9 additions and 10 deletions
|
|
@ -88,7 +88,7 @@ cleanup() {
|
|||
agent_kill_session "$SESSION_NAME"
|
||||
# Best-effort docker cleanup for containers started during this action
|
||||
(cd "${PROJECT_REPO_ROOT}" 2>/dev/null && docker compose down 2>/dev/null) || true
|
||||
rm -f "$PHASE_FILE" "$IMPL_SUMMARY_FILE" "$PREFLIGHT_RESULT" "$SCRATCH_FILE"
|
||||
rm -f "$PHASE_FILE" "$IMPL_SUMMARY_FILE" "$PREFLIGHT_RESULT"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ Periodically (every 10-15 tool calls), write a summary of:
|
|||
- What remains to do
|
||||
to: ${scratch_file}
|
||||
|
||||
If you find this file exists when you start, read it first — it is your previous context.
|
||||
If this file existed at session start, its contents have already been injected into your prompt above.
|
||||
This file is ephemeral — not evidence or permanent memory, just a compaction survival mechanism.
|
||||
_SCRATCH_EOF_
|
||||
}
|
||||
|
|
@ -153,7 +153,7 @@ _SCRATCH_EOF_
|
|||
read_scratch_context() {
|
||||
local scratch_file="$1"
|
||||
if [ -f "$scratch_file" ]; then
|
||||
printf '## Previous context (from scratch file)\n%s\n' "$(cat "$scratch_file")"
|
||||
printf '## Previous context (from scratch file)\n%s\n' "$(head -c 8192 "$scratch_file")"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ export CLAUDE_MODEL="opus"
|
|||
run_formula_and_monitor "planner"
|
||||
|
||||
# ── Cleanup scratch file on normal exit ──────────────────────────────────
|
||||
FINAL_PHASE=$(read_phase "$PHASE_FILE")
|
||||
if [ "$FINAL_PHASE" = "PHASE:done" ]; then
|
||||
# FINAL_PHASE already set by run_formula_and_monitor
|
||||
if [ "${FINAL_PHASE:-}" = "PHASE:done" ]; then
|
||||
rm -f "$SCRATCH_FILE"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -64,12 +64,11 @@ about CI health, issue staleness, agent status, and system conditions.
|
|||
|
||||
## Project context
|
||||
${CONTEXT_BLOCK}
|
||||
${SCRATCH_CONTEXT:+${SCRATCH_CONTEXT}
|
||||
}${SCRATCH_INSTRUCTION}
|
||||
|
||||
${SCRATCH_CONTEXT}
|
||||
## Formula
|
||||
${FORMULA_CONTENT}
|
||||
|
||||
${SCRATCH_INSTRUCTION}
|
||||
${PROMPT_FOOTER}"
|
||||
|
||||
# ── Run session ──────────────────────────────────────────────────────────
|
||||
|
|
@ -77,7 +76,7 @@ export CLAUDE_MODEL="sonnet"
|
|||
run_formula_and_monitor "predictor"
|
||||
|
||||
# ── Cleanup scratch file on normal exit ──────────────────────────────────
|
||||
FINAL_PHASE=$(read_phase "$PHASE_FILE")
|
||||
if [ "$FINAL_PHASE" = "PHASE:done" ]; then
|
||||
# FINAL_PHASE already set by run_formula_and_monitor
|
||||
if [ "${FINAL_PHASE:-}" = "PHASE:done" ]; then
|
||||
rm -f "$SCRATCH_FILE"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue