Commit f220d91d4e6d55fbe79c77afe8c2f1b5fdc26ff1

Authored by bboonnee
1 parent b5308c13

graphlemon: real agent-memory updates from self-hosting run 7 (validator)

.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.
... ...