Commit f220d91d4e6d55fbe79c77afe8c2f1b5fdc26ff1
1 parent
b5308c13
graphlemon: real agent-memory updates from self-hosting run 7 (validator)
Showing
2 changed files
with
39 additions
and
0 deletions
.claude/agent-memory/validator/MEMORY.md
| 1 | 1 | - [Self-hosting loop_round probe](project_self_hosting_loop_round_probe.md) — task 14fd9ab6 was a deliberate no-bug probe; verified PASS, no code change is the correct outcome |
| 2 | +- [Zero-diff terminal state gap (2nd instance)](project_zero_diff_terminal_state_gap.md) — scheduler.py _BUSY_TIMEOUT_MS comment already present, PASS/no-change; same recurring pipeline gap as org_loop_route.py | ... | ... |
.claude/agent-memory/validator/project_zero_diff_terminal_state_gap.md
0 → 100644
| 1 | +--- | |
| 2 | +name: project-zero-diff-terminal-state-gap | |
| 3 | +description: pipeline has no "already satisfied, zero-diff" terminal task state; this recurs across multiple comment-rationale tasks (org_loop_route.py _LOOP_LIMIT, scheduler.py _BUSY_TIMEOUT_MS) | |
| 4 | +metadata: | |
| 5 | + type: project | |
| 6 | +--- | |
| 7 | + | |
| 8 | +Confirmed a second instance of the same process gap already noted for `src/org_loop_route.py`'s | |
| 9 | +`_LOOP_LIMIT` comment (see the global auto-memory note "Loop-round comment already present", | |
| 10 | +6x recurrence as of 2026-08-03): a Benchmark asked to add a one-line rationale comment above | |
| 11 | +`src/scheduler.py`'s `_BUSY_TIMEOUT_MS = 30000` cross-referencing the module docstring's | |
| 12 | +"Threading model" section (lines 21-28). Verified 2026-08-03 that commit `5bb25db` had already | |
| 13 | +added exactly this line: | |
| 14 | + | |
| 15 | +``` | |
| 16 | +# Rationale: see module docstring's "Threading model" section (lines 21-28) above. | |
| 17 | +_BUSY_TIMEOUT_MS = 30000 | |
| 18 | +``` | |
| 19 | + | |
| 20 | +— correct line-range citation (21-28 is exactly the "Threading model" paragraph ending in | |
| 21 | +"database is locked"), `_FIX_LOOP_TIMEOUT` untouched, `py_compile` clean, only `src/scheduler.py` | |
| 22 | +touched in that commit, +1 line net. `git status` showed zero uncommitted diff for the file at | |
| 23 | +verification time. Verdict: PASS, no changes made. | |
| 24 | + | |
| 25 | +**Why:** Same root cause as [[project-self-hosting-loop-round-probe]] and the org_loop_route.py | |
| 26 | +recurrence — the Org Graph task lifecycle (`p_org_task_lifecycle`, 04-P) has no terminal state for | |
| 27 | +"investigated and confirmed already satisfied, zero-diff," distinct from `done` (implies a fresh | |
| 28 | +Coder diff was validated) or `blocked_pending_human` (implies an unresolved failure). Tasks of this | |
| 29 | +shape (idempotent rationale-comment additions) keep getting re-dispatched to Coder/Validator instead | |
| 30 | +of closing once satisfied. | |
| 31 | + | |
| 32 | +**How to apply:** When a task benchmark explicitly includes a "Scenario 2 (boundary): already | |
| 33 | +present → zero-diff" case, treat that as a strong signal this is a repeat/probe task, not a fresh | |
| 34 | +defect. Verify by reading the file and `git log -p` for the relevant commit rather than assuming | |
| 35 | +work is still needed — a correct PASS-with-no-changes is the right outcome, not a sign of an | |
| 36 | +incomplete job. If asked to design or fix the lifecycle gap itself, cite this and the | |
| 37 | +org_loop_route.py recurrence together as evidence (now 2+ distinct comment-rationale sites) that a | |
| 38 | +"verified, zero-diff" terminal state is needed generally, not just for one constant. | ... | ... |