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:
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).
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.
Level 2 escalation 1 rescoped to refresh-suggested nodes only.
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).
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:
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.
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 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.
- 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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.mdv2.0.0 → v2.1.0:updateNodecall:description→[ARCHIVED]+ original text,metadata.state→archived. The[REVIEW: archive]tag is retired (any occurrence now means fix 4 was skipped).[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.updateNodecannot setstateto non-standard values and that state transitions +updated_atbumps require direct SSH + SQLite on the bridge host. That is false:updateNodeaccepts{"updates": {"description": …, "metadata": {"state": "archived"}}}over the MCP bridge andupdated_atbumps 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).[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,stateandupdated_atverified by read-back:[ARCHIVED][ARCHIVED][ARCHIVED][ARCHIVED][ARCHIVED][ARCHIVED][ARCHIVED]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
type, missingnamespace) — untouched.[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.[REVIEW: keep]/[REVIEW: merge]tag semantics — untouched.Authorization
memory-fixer.prose.mdis a normal sensitivity contract (any registered agent), owner Mumuni — no CRITICAL-contract sign-off required. Directive came directly from Kwame.Reviewer notes
state: archived+[ARCHIVED]prefix; flippingstateback toactiveand stripping the prefix restores it./root/.hermes/contracts/memory-fixer-v3.mdon 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.