Skip to content

v0.7.0 — Interactive Memory Graph, Cookie Auth, Hardened Backend

Latest

Choose a tag to compare

@cortexhatch-ux cortexhatch-ux released this 23 Jun 23:35
· 1 commit to main since this release
85ab5c9

What's new in v0.7.0

Interactive Knowledge Graph

  • Click any node to open a side panel showing source, type, and connections
  • Double-click a node to forget it from the graph
  • Filter by node type (entity / concept / file / episodic / semantic) via dropdown
  • Text search, physics-freeze toggle, and one-click refresh
  • Color-coded legend: indigo = entity, purple = concept, slate diamond = file, amber square = episodic, green square = semantic
  • AgentMemory episodic and semantic nodes now appear alongside KuzuDB entities, auto-linked where entity names appear in memory content

Dual-Tier Semantic Memory

  • Every completed Q&A pair is written to episodic memory
  • Debate consensus and distilled Q&A pairs go to semantic memory
  • Both layers are retrieved on future prompts and visible in the graph

Secure Dashboard Login

  • Dashboard now requires an httpOnly session cookie (la_session, 8h expiry)
  • First visit redirects to /dashboard/login — enter your API key via form
  • The key never appears in a URL or JS-accessible storage
  • POST /dashboard/logout clears the session

Debate Engine Hardening

  • leadagent debate --no-context now uses global semantic scope instead of skipping memory entirely — broader context without local-project tunnel-vision
  • Umpire fallback skips Ollama when a stronger agent is available

Backend Hardening

  • GuardMiddleware rewritten as a pure ASGI class — fixes KeyError: 'background' crash on redirect responses in Starlette 1.3.1 / FastAPI 0.138
  • Replaced deprecated @app.on_event("startup") with asynccontextmanager lifespan
  • router.py and learn_from_prompt now use structured logging instead of bare print()
  • MCP server now propagates project_id and cwd on every agent call

Cleanup

  • Removed PTY-based usage scraper daemons (usage_daemon.py, backend/scrapers/, host_daemon/) — quota tracking moved to watchdog
  • Slack bot exits cleanly (exit 0, INFO log) when tokens are absent; restart: "no" in compose prevents log spam
  • ROI card removed from dashboard (no real math backing it)

Test Coverage

  • New test modules: test_security, test_watchdog, test_mcp_server, test_tools, test_db, test_permissions, test_memory_client
  • Autouse Ollama mock in conftest.py — test suite time dropped from ~50s to 0.2s
  • Audit session shape normalisation tests (5 variants)

Breaking Changes

Recommended: fresh install for users upgrading from v0.6.x

  • Docker container labels changed — existing containers must be removed before upgrading:
    docker compose down -v
    docker rm -f $(docker ps -aq --filter "name=leadagent") 2>/dev/null || true
    ./nuke.sh
    git pull origin main && ./install.sh
  • KuzuDB schema gains a session_id column on Question nodes (additive migration, but untested against all older schemas)
  • Usage scraper daemons removed — quota data now comes from watchdog only

Security

  • Dashboard API key no longer passes through URLs or sessionStorage
  • GuardMiddleware rewritten as pure ASGI — no dependency on BaseHTTPMiddleware internals
  • Session store lives in security.py with no circular imports
  • See SECURITY.md for full details