fix: Story 3.13 Re-Run-#4-Auflösung — P-16 Floor-Semantik (Env exportiert 16000; geerbte Werte <32000 angehoben, A/B 1698/5002, 6/6-Subshell-Test) + Status-Sync (Spec-Change-Log, log.md Re-Run-#2/-#3/-#4-Befunde: winpty/CLAUDE_BIN, P-17 Normalisierer 21/21, Prompt-Wortung)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Michael Tamse
2026-08-23 12:57:42 +02:00
co-authored by Claude
parent 90a01fed37
commit 37d9fdcec5
3 changed files with 18 additions and 6 deletions
@@ -88,12 +88,21 @@ echo "REPO-HEAD (real): $BASE_REAL"
CLAUDE_BIN="${CLAUDE_BIN:-$(command -v claude 2>/dev/null || true)}"
[ -n "$CLAUDE_BIN" ] && [ -x "$CLAUDE_BIN" ] || hardfail "CLAUDE_BIN nicht auflösbar (PATH: 'claude' nicht gefunden; CLAUDE_BIN-Env setzen)"
echo "CLAUDE_BIN: $CLAUDE_BIN"
# P-16 (Re-Run-#3-Befund): CLI-Per-Response-Output-Limit (Default 16000 Token)
# reicht für E.3-Compiler-Läufe nicht — "API Error: Claude's response exceeded
# the 16000 output token maximum" (mehrere Write-Tool-Calls + Text in einer
# Response). Override auf 32000; bleibt per Env überschreibbar.
export CLAUDE_CODE_MAX_OUTPUT_TOKENS="${CLAUDE_CODE_MAX_OUTPUT_TOKENS:-32000}"
echo "CLAUDE_CODE_MAX_OUTPUT_TOKENS: $CLAUDE_CODE_MAX_OUTPUT_TOKENS"
# P-16 (Re-Run-#3/#4-Befund): CLI-Per-Response-Output-Limit reicht für
# E.3-Compiler-Läufe nicht — "API Error: Claude's response exceeded the
# 16000 output token maximum". ACHTUNG: 16000 ist hier KEIN bloßes Default —
# die Session-Umgebung EXPORTIERT es bereits (CLI tragt das Modell-Built-in
# in Child-Env), daher greift ${VAR:-32000} nie. Das Gate definiert eine
# BODEN-GRANZE (Floor): geerbte Werte unter 32000 werden angehoben,
# höhere bleiben erhalten (P-3-Override-Semantik). A/B-geprüft: 1698
# Zeilen abgebrochen bei 16000 vs 5002 Zeilen vollständig bei 32000.
TOKEN_FLOOR=32000
_cur_tokens="${CLAUDE_CODE_MAX_OUTPUT_TOKENS:-}"
case "$_cur_tokens" in
''|*[!0-9]*) export CLAUDE_CODE_MAX_OUTPUT_TOKENS="$TOKEN_FLOOR" ;;
*) if [ "$_cur_tokens" -lt "$TOKEN_FLOOR" ]; then export CLAUDE_CODE_MAX_OUTPUT_TOKENS="$TOKEN_FLOOR"; fi ;;
esac
echo "CLAUDE_CODE_MAX_OUTPUT_TOKENS: $CLAUDE_CODE_MAX_OUTPUT_TOKENS (Floor $TOKEN_FLOOR, P-16)"
command -v timeout >/dev/null || hardfail "timeout fehlt (git-for-win/coreutils erwartet)"
command -v sha256sum >/dev/null || hardfail "sha256sum fehlt (git-for-win/coreutils erwartet)"
command -v tar >/dev/null || hardfail "tar fehlt"