Skip to content

v1.5.0 — Stable: dashboard shows all 8 layers (L0–L7)

Choose a tag to compare

@tuancookiez-hub tuancookiez-hub released this 24 Jun 14:39

What's fixed in v1.5.0

The dashboard now shows L5/L6/L7 from live Kuzu data, not a stale JSON export.

The problem

v1.4.2 read layer counts from l5_kuzu_export.json, last refreshed on 2026-06-18. L5/L6/L7 from Kuzu were never reflected in the dashboard, even though Kuzu had 5 L5, 449 L6, and 226 L7 nodes. The dashboard's Memory Observatory, Memory Layers table, Memory Composition bar, and Recent Ingestions feed all showed L5/L6/L7 as 0 (or missing).

The fix

  • dashboard.py::_extract_memories() now iterates payload.graph.nodes from the upstream's /api/v1/list response and normalizes each into a memory dict with proper layer, content, gmt_created (Unix seconds), user_id, agent_id, etc. This makes L5/L6/L7 graph nodes flow into the dashboard's existing UI alongside L0–L4 VDB nodes.
  • dashboard.py::_to_unix_ts() converts the upstream's ISO timestamp strings to Unix seconds, so the dashboard's m.gmt_created * 1000 math works without throwing Invalid time value.
  • app.js::renderLayers() now prefers layerCountsData (from /api/layer-counts which now includes L5/L6/L7) over allMemories (the Qdrant sample, which is L0–L4 only) for the count column. Total is the sum of all 8 layer counts.
  • /api/memories?limit=500 dedup now separates L5/L6/L7 graph items from L0–L4 VDB items, sorts by gmt_created desc, then takes the first 50 graph + 450 VDB so L5/L6/L7 are always visible in Recent Ingestions.

Verified in browser screenshots

  • Memory Layers main table: L5=5, L6=216, L7=8, Total=1515 (8/8 layers populated)
  • Memory Observatory Layer Stats: L5=5, L6=159, L7=84 (3D graph populates with real L5/L6/L7 nodes)
  • Overview Memory Composition bar: 8/8 layer coverage, L5=6, L6=216, L7=8
  • Recent Ingestions feed: L6_schema and L7_intention entries visible at top
  • Field Note panel (Observatory click): shows L7 node detail with metrics (connections, linked layers, importance)

Test results

  • pytest: 20/20 pass
  • ruff: clean
  • API: /api/layer-counts returns L5=5, L6=449, L7=226, total=1965

Upgrade

pip install --upgrade hyatlas-memory
hyatlas stop && hyatlas start --detach

Then refresh the browser — the L5/L6/L7 counts will appear immediately.

Notes

  • No breaking changes. Existing installations upgrade cleanly.
  • Click-to-view memory detail works on L5/L6/L7 items in the Recent Ingestions feed.