Skip to content

v1.3.1 — Progressive zoom, fractal search, week rollups

Latest

Choose a tag to compare

@josortmel josortmel released this 12 Jun 10:31

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, sections parameter 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. Optional query_text ranks 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 Rollup template), with the thematic clusters preserved beneath as source_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 declare anthropic/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::text cast with a float param (asyncpg DataError); now float8, 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-cell permanently "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.