v1.3 made the fractal memory reachable; v1.3.1 makes it economical and unified. An agent now boots its entire memory in ONE call: compressed narrative for the distant past, full granularity only for the open edge.
Added — Progressive zoom & fractal navigation
GET /api/v1/clusters/telescopic/progressive— progressive-zoom boot view. Each temporal layer is the compression of the previous one; closed periods are never re-read: yearly → unabsorbed quarterlies → unabsorbed monthlies → loose weeks →recent_days(only memories not inside any closed week). Per-level caps count distinct periods,sectionsparameter for size-capped clients.POST /api/v1/clusters/zoom— fractal drill-down. Enter at the highest abstraction, zoom by id: quarter → months → week → themes → raw memories. Optionalquery_textranks children semantically within each scope. Ownership-scoped end to end.- Week rollups — the consolidation cell weaves each closed week's thematic clusters into ONE unified weekly narrative (editable
CellAgent Week Rolluptemplate), with the thematic clusters preserved beneath assource_ids. Views read by lineage; monthly consolidation consumes rollups. Backfill is automatic on re-trigger; a rollup failure never sinks a successful thematic consolidation. - 2 new MCP tools (38 → 40):
get_progressive_view,fractal_search. Both declareanthropic/maxResultSizeChars, so a full boot arrives in one call on Claude Code without any client-side configuration.
Changed — Higher-consolidation prompts v2
Reasoning models undershoot global word targets badly in JSON output (a quarterly came out at 1/3 of its floor). v2 prompts add a mandatory reading protocol (every source represented or the result is invalid), per-section word budgets, and hard absolute minimums framed as execution failure. Measured on real data: monthly 1413/1200/1510 → 1656/1949/1582 words; quarterly 1250 → 3189. CELL_LLM_MAX_TOKENS env (default 32768).
Fixed
- Scheduled foresight extraction always failed when signals were found —
$4::textcast with a float param (asyncpgDataError); nowfloat8, consistent with existing metadata. - Deleted clusters silently blocked regeneration — idempotency only checked
cell_runs, so a ghost run could hide a whole month from a quarterly. Higher-consolidation idempotency now requires the active cluster to exist. - Overlapping weekly clusters — manual trigger, cron and catch-up cut weeks three different ways (rolling vs calendar windows). All paths now anchor to the last complete Mon..Sun week; weekly cron moved Sunday → Monday.
ecodb-cellpermanently "unhealthy" — inherited an HTTP healthcheck from the api image while serving no HTTP; disabled (the worker is PID 1, process state is the liveness signal).- Empty error strings on failed cell runs — the exception type name is preserved when the message is empty.
Image tags: ecodb-api 0.25.0, ecodb-mcp 1.8.0. Schema unchanged (5.3.0); migration 5.3.1_higher_prompts_v2 reseeds prompts idempotently.