@@ -30,6 +30,7 @@ Last reviewed commit: `eea4f599c0c54eb8d7dcc0d81a9364f2302fd1e6`
3030| Save Memory | ✅ 100% | Direct observation storage (MCP + HTTP), bypasses LLM compression |
3131| Circuit Breaker | ✅ 100% | Graceful degradation when PostgreSQL unavailable — MCP tools return empty results, HTTP returns 200 + X-Memory-Degraded header, auto-recovery on reconnect |
3232| Memory Quality | ✅ | Cross-project dedup, metadata enrichment, knowledge extraction for all types, usage tracking, trigram similarity dedup for knowledge |
33+ | Structured Summaries | ✅ 100% | response_format: json_object, 9 typed fields (request, investigated, completed, next_steps, files_read, files_modified, decisions, discoveries) |
3334
3435### NOT Implemented
3536
@@ -280,3 +281,12 @@ LLM always creates NEW observations even when near-identical ones exist. The `ex
280281- ~~ Knowledge duplicates (4x Telegram MTProto entries)~~ — cleaned up, kept entry with highest usage_count
281282- ~~ 5 observations with empty metadata from manual import~~ — backfilled via CLI
282283- ~~ ` /api/semantic-search ` route inconsistency~~ — added alias alongside existing ` /semantic-search `
284+ - ~~ Background processor not started in MCP mode~~ — added shared MaintenanceServices + run_maintenance_tick(), both HTTP and MCP use same scheduler
285+ - ~~ Admin endpoints CSRF via missing Json extractor~~ — added Json(()) body to destructive admin endpoints
286+ - ~~ Admin auth bypass via loopback trust behind reverse proxy~~ — dual-mode: token required if set, loopback-only if unset
287+ - ~~ Infinite memory compression poison pill on >200 events~~ — pipeline fetches up to 10K events, chunks at 200 per LLM call
288+ - ~~ strip_markdown_json forward scan truncates JSON with embedded backticks~~ — uses rfind for closing fence
289+ - ~~ MCP background loop SPOT violation (only ran compression)~~ — extracted shared MaintenanceServices, all 7 tasks run in both modes
290+ - ~~ Pipeline dead code (chunking unreachable due to batch limit)~~ — removed per-iteration batch limit, proper chunking for large buckets
291+ - ~~ run_full_compression bypassed circuit breaker~~ — routes through CB with should_allow/record_success/failure
292+ - ~~ Session summaries unstructured free text~~ — structured via response_format: json_object with 9 typed fields
0 commit comments