feat(memory): FPLAN-0276 — unify memory limits into config single-source + cleanup

- memory.config.json is the single source of truth: char caps (entry_limits, global) + rollover counts (per_branch, materialized from registry); .trinity files stripped to a one-line _usage header
- changed_entries gate now matches by content identity, not array position — prepending a new entry never re-flags unchanged legacy entries (old=old, new=new; no trimming required on a cap change)
- rollover push command + top-level 'drone @memory push' alias; corrected config _note + --help (rollover push surfaced, labeled destructive system-wide reset)
- removed 3 dead functions: seed_per_branch, its orphaned write_config, add_learning + its tests
- spawn birthright/builder + LOCAL/OBSERVATIONS templates aligned to the stripped shape
- 966 tests, seedgo 100%

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
AIOSAI
2026-06-14 20:54:34 -07:00
co-authored by Claude Opus 4.8
parent 6c675e9b78
commit 72659eccbd
21 changed files with 743 additions and 408 deletions
@@ -12,20 +12,14 @@
"work_log",
"{{BRANCHNAME}}"
],
"limits": {
"max_sessions": 20,
"max_key_learnings": 25,
"session_summary_max_chars": 150,
"learning_value_max_chars": 200,
"note": "DO NOT trim, prune, or delete entries. Rollover to @memory handles overflow automatically. Just add new entries."
},
"_usage": "Automated file — add entries within your sections; rollover trims automatically. Limits live in @memory's memory.config.json.",
"status": {
"health": "healthy",
"last_health_check": "{{DATE}}",
"current_lines": 0
"last_health_check": "{{DATE}}"
}
},
"key_learnings": [],
"todos": [],
"sessions": [
{
"number": 1,
@@ -12,13 +12,9 @@
"patterns",
"{{BRANCHNAME}}"
],
"limits": {
"max_lines": 600,
"note": "DO NOT trim, prune, or delete entries. Auto-rollover to @memory when max_lines exceeded."
},
"_usage": "Automated file — add entries within your sections; rollover trims automatically. Limits live in @memory's memory.config.json.",
"status": {
"health": "healthy",
"current_lines": 0,
"last_health_check": "{{DATE}}"
}
},
@@ -12,23 +12,14 @@
"work_log",
"{{BRANCHNAME}}"
],
"limits": {
"max_sessions": 20,
"max_key_learnings": 25,
"session_summary_max_chars": 150,
"learning_value_max_chars": 200,
"note": "DO NOT trim, prune, or delete entries. Rollover to @memory handles overflow automatically. Just add new entries. todos[] is OPERATIONAL — never vectorized/trimmed by rollover; completing/removing a todo is normal.",
"max_todos": 10,
"todo_text_max_chars": 200
},
"_usage": "Automated file — add entries within your sections; rollover trims automatically. Limits live in @memory's memory.config.json.",
"status": {
"health": "healthy",
"last_health_check": "{{DATE}}",
"current_lines": 0
"last_health_check": "{{DATE}}"
}
},
"todos": [],
"key_learnings": [],
"todos": [],
"sessions": [
{
"number": 1,
@@ -38,4 +29,4 @@
"tags": []
}
]
}
}
@@ -12,13 +12,9 @@
"patterns",
"{{BRANCHNAME}}"
],
"limits": {
"max_lines": 600,
"note": "DO NOT trim, prune, or delete entries. Auto-rollover to @memory when max_lines exceeded."
},
"_usage": "Automated file — add entries within your sections; rollover trims automatically. Limits live in @memory's memory.config.json.",
"status": {
"health": "healthy",
"current_lines": 0,
"last_health_check": "{{DATE}}"
}
},