feat(memory-fixer): v2.1.0 — stale nodes auto-archived (Kwame directive 2026-09-11) #72

Merged
mumuni-bot merged 1 commits from feat/memory-fixer-auto-archive-20260911 into master 2026-09-11 12:12:52 +00:00
Owner

What this changes

Kwame's directive (2026-09-11, via the fixer's daily report): stale nodes can be archived by the memory fixer — the per-batch "archive, refresh, or keep?" round-trip is retired.

memory-fixer.prose.md v2.0.0 → v2.1.0:

  1. New Level 1 fix 4 — Stale-Node Archiving (no Kwame decision needed). Archive-suggested stale nodes are archived outright in a single updateNode call: description → [ARCHIVED] + original text, metadata.state → archived. The [REVIEW: archive] tag is retired (any occurrence now means fix 4 was skipped).
  2. Fix 3 rescoped — tagging [REVIEW: refresh] now applies only to living node types (infrastructure, deployment, system, business, research, learning, project, agent, registry, policy). Living nodes are never archived without a specific Kwame decision.
  3. Level 2 escalation 1 rescoped to refresh-suggested nodes only.
  4. Corrected a wrong operational claim. The contract said updateNode cannot set state to non-standard values and that state transitions + updated_at bumps require direct SSH + SQLite on the bridge host. That is false: updateNode accepts {"updates": {"description": …, "metadata": {"state": "archived"}}} over the MCP bridge and updated_at bumps automatically. SSH is now documented as a fallback only (and it is blocked from kagentz anyway, which is why the old instruction produced DEFERRED-SSH items that never got executed).
  5. Checks section extended: a node left as [REVIEW: archive] is now a defect signal.

Evidence (live, 2026-09-11 12:09 UTC)

Applied the new fix 4 to the queue the fixer had tagged [REVIEW: archive] — all 7 archived over the bridge, state and updated_at verified by read-back:

Node Title state prefix updated_at
#61 Node State Management — Lifecycle & Transitions archived [ARCHIVED] 2026-09-11T12:09:21Z
#373 amdpve Strix Halo MTP Tuning Results — 2026-05-21 archived [ARCHIVED] 2026-09-11T12:09:21Z
#388 Resolved: storepve swap thrashing + acerpve disk cleanup + zombie reaping archived [ARCHIVED] 2026-09-11T12:09:21Z
#465 Fallow-Inspired Code Quality Principles archived [ARCHIVED] 2026-09-11T12:09:21Z
#475 VM 101 — 256K context verified on Qwopus3.6-27B Q4_K_M archived [ARCHIVED] 2026-09-11T12:09:21Z
#526 CT 114 (mumuni) Internet Outage — Docker LAN Subnet Conflict archived [ARCHIVED] 2026-09-11T12:09:21Z
#1476 CT 114 (mumuni) ext4 Journal Corruption — Fixed on hwepve archived [ARCHIVED] 2026-09-11T12:09:21Z

Post-state: SELECT COUNT(*) FROM nodes WHERE description LIKE '%[REVIEW:%' → 31 (all refresh-suggested; the 7 archive-suggested are gone).

Local mirror of the same change is already in the kagentz cron prompt (~/.hermes/cron/memory-fixer-prompt.md), so tomorrow's 08:00 ET run uses the new behaviour regardless of merge timing.

Intentionally NOT changed

  • Staleness windows (dynamic 14d, procedures 90d, ephemeral 30d, strategic 120d, default 45d) — untouched.
  • Level 1 fixes 1 & 2 (missing type, missing namespace) — untouched.
  • The 31 [REVIEW: refresh] nodes — deliberately not archived. These include the Proxmox cluster, the agent identity/registry, business context and architecture canon; archiving them would delete living infrastructure references. They still go to Kwame as a decision item.
  • The ⛔ exclusions (Koby nodes, canary/integrity nodes, #411/#11/#468 curator canon) — untouched.
  • The duplicate-node and orphan-node escalations — untouched.
  • The [REVIEW: keep] / [REVIEW: merge] tag semantics — untouched.

Authorization

memory-fixer.prose.md is a normal sensitivity contract (any registered agent), owner Mumuni — no CRITICAL-contract sign-off required. Directive came directly from Kwame.

Reviewer notes

  • Archiving is non-destructive and reversible: the node remains in the graph with state: archived + [ARCHIVED] prefix; flipping state back to active and stripping the prefix restores it.
  • The canonical executable copy referenced in the contract header (/root/.hermes/contracts/memory-fixer-v3.md on another node) is root-owned and outside my reach — the effective runner on kagentz is the cron prompt, already updated. If that v3 file is still authoritative elsewhere, it needs the same edit by whoever holds root.
## What this changes Kwame's directive (2026-09-11, via the fixer's daily report): **stale nodes can be archived by the memory fixer** — the per-batch "archive, refresh, or keep?" round-trip is retired. **`memory-fixer.prose.md` v2.0.0 → v2.1.0:** 1. **New Level 1 fix 4 — Stale-Node Archiving (no Kwame decision needed).** Archive-suggested stale nodes are archived outright in a single `updateNode` call: `description` → `[ARCHIVED] ` + original text, `metadata.state` → `archived`. The `[REVIEW: archive]` tag is **retired** (any occurrence now means fix 4 was skipped). 2. **Fix 3 rescoped** — tagging `[REVIEW: refresh]` now applies only to *living* node types (infrastructure, deployment, system, business, research, learning, project, agent, registry, policy). Living nodes are **never** archived without a specific Kwame decision. 3. **Level 2 escalation 1 rescoped** to refresh-suggested nodes only. 4. **Corrected a wrong operational claim.** The contract said `updateNode` cannot set `state` to non-standard values and that state transitions + `updated_at` bumps require **direct SSH + SQLite** on the bridge host. That is false: `updateNode` accepts `{"updates": {"description": …, "metadata": {"state": "archived"}}}` over the MCP bridge and `updated_at` bumps automatically. SSH is now documented as a fallback only (and it is blocked from kagentz anyway, which is why the old instruction produced DEFERRED-SSH items that never got executed). 5. **Checks section** extended: a node left as `[REVIEW: archive]` is now a defect signal. ## Evidence (live, 2026-09-11 12:09 UTC) Applied the new fix 4 to the queue the fixer had tagged `[REVIEW: archive]` — all 7 archived over the bridge, `state` and `updated_at` verified by read-back: | Node | Title | state | prefix | updated_at | |---|---|---|---|---| | #61 | Node State Management — Lifecycle & Transitions | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #373 | amdpve Strix Halo MTP Tuning Results — 2026-05-21 | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #388 | Resolved: storepve swap thrashing + acerpve disk cleanup + zombie reaping | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #465 | Fallow-Inspired Code Quality Principles | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #475 | VM 101 — 256K context verified on Qwopus3.6-27B Q4_K_M | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #526 | CT 114 (mumuni) Internet Outage — Docker LAN Subnet Conflict | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | | #1476 | CT 114 (mumuni) ext4 Journal Corruption — Fixed on hwepve | archived | `[ARCHIVED]` | 2026-09-11T12:09:21Z | Post-state: `SELECT COUNT(*) FROM nodes WHERE description LIKE '%[REVIEW:%'` → **31** (all refresh-suggested; the 7 archive-suggested are gone). Local mirror of the same change is already in the kagentz cron prompt (`~/.hermes/cron/memory-fixer-prompt.md`), so tomorrow's 08:00 ET run uses the new behaviour regardless of merge timing. ## Intentionally NOT changed - **Staleness windows** (dynamic 14d, procedures 90d, ephemeral 30d, strategic 120d, default 45d) — untouched. - **Level 1 fixes 1 & 2** (missing `type`, missing `namespace`) — untouched. - **The 31 `[REVIEW: refresh]` nodes** — deliberately *not* archived. These include the Proxmox cluster, the agent identity/registry, business context and architecture canon; archiving them would delete living infrastructure references. They still go to Kwame as a decision item. - **The ⛔ exclusions** (Koby nodes, canary/integrity nodes, #411/#11/#468 curator canon) — untouched. - **The duplicate-node and orphan-node escalations** — untouched. - **The `[REVIEW: keep]` / `[REVIEW: merge]` tag semantics** — untouched. ## Authorization `memory-fixer.prose.md` is a *normal* sensitivity contract (any registered agent), owner Mumuni — no CRITICAL-contract sign-off required. Directive came directly from Kwame. ## Reviewer notes - Archiving is **non-destructive and reversible**: the node remains in the graph with `state: archived` + `[ARCHIVED] ` prefix; flipping `state` back to `active` and stripping the prefix restores it. - The canonical executable copy referenced in the contract header (`/root/.hermes/contracts/memory-fixer-v3.md` on another node) is root-owned and outside my reach — the effective runner on kagentz is the cron prompt, already updated. If that v3 file is still authoritative elsewhere, it needs the same edit by whoever holds root.
mumuni-bot added 1 commit 2026-09-11 12:10:36 +00:00
feat(memory-fixer): v2.1.0 — stale nodes are auto-archived (Kwame directive 2026-09-11)
PR Pipeline — Authorize → Validate → Review → Merge / auth (pull_request) Successful in 5s
PR Pipeline — Authorize → Validate → Review → Merge / validate (pull_request) Successful in 2s
PR Pipeline — Authorize → Validate → Review → Merge / lint (pull_request) Successful in 3s
PR Pipeline — Authorize → Validate → Review → Merge / ai-review (pull_request) Successful in 1s
PR Pipeline — Authorize → Validate → Review → Merge / gate (pull_request) Successful in 1s
b001b657d4
- New Level 1 fix 4: archive-suggested stale nodes are archived outright via one
  updateNode call (description -> '[ARCHIVED] ' + metadata state=archived).
  The [REVIEW: archive] tag is retired.
- Fix 3 now tags refresh-suggested (living) nodes only; those are still escalated.
- Corrected the SSH claim: updateNode DOES accept state transitions and bumps
  updated_at (verified 2026-09-11 archiving 7 nodes: #61 #373 #388 #465 #475 #526 #1476).
- Level 2 escalation 1 rescoped to refresh-suggested nodes.
- Checks section: any remaining [REVIEW: archive] means fix 4 was skipped.
mumuni-bot merged commit fb185ed90a into master 2026-09-11 12:12:52 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SyslogSolution/prose-contracts#72