Skip to content

v0.9.5 — Debt Resolution & Dashboard Backend

Choose a tag to compare

@josortmel josortmel released this 02 Jun 09:49
· 17 commits to main since this release

EcoDB v0.9.5 — Debt Resolution

Zero-debt release. All architectural debt from v0.9.0 resolved. Dashboard backend complete.

SSE org-scoped broadcast

Events now carry org_id. Non-super clients only receive their organization's events. Worker document lifecycle events (document_indexed, document_failed, duplicate_detected) now send correctly with X-Internal-Secret auth and org_id resolution.

Method-aware rate limiting

POST /memories/preview = 10/min, POST /memories = 20/min. GET paths unchanged at 120/min. Rate limit key now includes HTTP method — different methods on the same path don't share buckets.

Louvain optimization

SQL pre-filtering via JOIN instead of Python set filtering. Configurable LOUVAIN_MIN_DEGREE env var. Empty result guard prevents accidental cluster data wipe.

Search improvements

user_id filter now correctly excludes document chunks (documents have no individual author). New warnings field in SearchResponse for machine-parseable query behavior notices.

10 mechanical fixes

  • TeamResourceLink model with actual fields
  • Node name case-insensitive lookup (trigram suggestion)
  • Graph clusters pagination (limit/offset)
  • AGE statement_timeout 4.5s on Cypher queries
  • Onboarding contradictions = None stub
  • graph_clusters cleanup on entity merge
  • SSE event_type newline sanitization
  • Clusters offset cap (50k)
  • Dead code removal
  • Rate limit key eviction for inactive users

Documentation

  • docs/design/graph-org-scoping.md — shared graph + visibility layer direction
  • docs/migration-v0.9-to-v0.9.5.md — migration guide with DD8 trigger behavior
  • docs/DASHBOARD_BACKEND_GUIDE.md — complete backend integration guide for frontend
  • 4 new trigger verification tests
  • Schema v5.1.1 (graph_clusters table)

2 adversarial design loops (Prima) + 2 construction loops (adv-code + adv-seg + verificador + code). All findings resolved.