moving
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled

This commit is contained in:
Oleg Maslov
2026-09-02 10:10:29 +02:00
commit 0c3e2ead3b
3841 changed files with 970576 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# LOCKED — PM-RATIFY-RCA Task 2.6 Path
**Date**: 2026-04-24
**Ratified by**: Marko Marković (via PM adjudication)
**PM**: claude-opus-4-7 (Cowork)
**Prerequisite gate**: 2/3 (Task #29 progress)
## Odluka
**PM-RATIFY-RCA: RATIFIED.** Task 2.6 tech-debt path ratifikovan. Manifest v4 anchor `dedd698` ostaje validan bez ijednog code-freeze break-a. HEAD `373516c` nepromenjen.
## Findings acknowledged
1. **F1**: `judgeEnsemble` je sequential `for await` loop (failure-mode-judge.ts:245-258), NE Promise.all. Sprint brief hipoteza o Promise.all early-exit je bila mehanički pogrešna.
2. **F2**: Svih sedam judge failure modes (HTTP 429, timeout, token budget, malformed JSON, 401/403, context length, 5xx) propagira kroz single catch path na judge-runner.ts:386-400 → judge_error payload → runner continues. Unified error handling confirmed.
3. **F3** (kritičan operativni nalaz): Gate D observed halt bio je EKSTERNI. Claude Code harness process-tree cleanup kada kickoff Bash primi "Terminated" marker. Pid 4984 i pid 65668 bili su children iste kickoff sesije. NE runner-code bug.
4. **F4**: Pre-existing audit-trail bug na runner.ts:493-511 širi judge fields ali izostavlja judge_error. Objašnjava 32 "neither rows" zagonetku. Non-blocking za Stage 3 jer pre-registered thresholds ne zavise od tog polja.
## Task 2.6 carry-over tickets (CLOSED as backlog)
1. **`judge-ensemble-defensive-error-handling`** — Promise.allSettled + 2-of-3 quorum na failure-mode-judge.ts:245-258; čuva Opus+GPT verdicts pod Gemini tail failures. Priority P2.
2. **`runner-judge-error-persistence`** — proširenje runner.ts:493-511 spread-a da uključi judge_error field; zatvara audit-trail gap. Priority P2.
## Operational constraint (non-negotiable)
**N=400 kickoff i §1.3 Gate P+ probe MORAJU biti clean foreground.**
- **FORBIDDEN**: `run_in_background`, nohup-detached kickoff Bash, bilo koja invokacija čiji parent Bash marker može primiti Terminated signal tokom runner lifetime-a.
- **REQUIRED**: dedicated foreground terminal session koja ostaje attached za ceo runner duration, ILI tmux/screen sesija eksplicitno detached od Claude Code harness process-tree.
**Rationale**: Finding 3 utvrđuje da harness process-tree cleanup cascades na sve children-e kickoff Bash-a. Bilo koji background wrapper koji može umreti mid-run ubiće runner bez obzira na runner-code correctness.
Ova constraint vezuje §1.3 probe I N=400 re-kick. Kickoff mehanizam mora biti eksplicitno deklarisan u §1.3 probe halt ping-u.
## Path rejection rationale
- Manifest v5 emission nepotreban — findings ne zahtevaju code change.
- Defensive patch pre re-kick-a odbijen jer je hipoteza u brief-u bila pogrešna; nema ničeg da se patch-uje u runner code-u.
## Next gate
- **2/3 prerequisites CLOSED** (§1.1 Path L-1 ✓, §1.2 Task 2.6 path ✓)
- CC-1 authorized za §1.3 Gate P+ pre-flight probe (50 Gemini calls u 30s, 0 × HTTP 429 required, clean foreground kickoff)
- No self-advance to N=400 re-kick do PM-RATIFY-PROBE
## Artefact
- Memo: `benchmarks/results/manifest-v4-runner-early-exit-rca.md`
- Memo SHA-256: `1d53c9d2d54e715812c3f2e3586876f595b123700ddfdc53e22124b2f38535ac`
- Anchor commit: `274e9871b54599077a3d72de88d505550803a805` on `feature/c3-v3-wrapper`
- Parent chain: 274e987 → 67eb899 (§1.1) → dedd698 (manifest v4) intact