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/logoutclears the session
Debate Engine Hardening
leadagent debate --no-contextnow 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
GuardMiddlewarerewritten as a pure ASGI class — fixesKeyError: 'background'crash on redirect responses in Starlette 1.3.1 / FastAPI 0.138- Replaced deprecated
@app.on_event("startup")withasynccontextmanagerlifespan router.pyandlearn_from_promptnow use structuredlogginginstead of bareprint()- MCP server now propagates
project_idandcwdon 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_idcolumn onQuestionnodes (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 GuardMiddlewarerewritten as pure ASGI — no dependency onBaseHTTPMiddlewareinternals- Session store lives in
security.pywith no circular imports - See SECURITY.md for full details