honcho/src
Phil 70c4584e7c feat(models): make tenant_id a first-class primitive for shared-tenant schema
Introduce a `tenants` registry table and a `tenant_id` column on every
tenant-scoped table, with composite `(tenant_id, id)` primary keys, composite
foreign keys (natural-key chains plus a `tenant_id` -> tenants FK), and
`HASH(tenant_id)` partitioning (N=128) so many tenants can share one database
with per-tenant isolation. `workspaces.name` uniqueness becomes
`UNIQUE(tenant_id, name)` and indexes lead with `tenant_id`.

Service tables (queue, active_queue_sessions) carry a plain `tenant_id` for
attribution and stay unpartitioned; their FKs to the now-partitioned parents
are dropped.

Adds the bootstrap migration that creates the partitioned shared schema from
the declarative models (written, not run).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 12:36:23 -04:00
..
cache perf(cache): hash-tag the cache namespace so an instance uses one shard (#1058) 2026-08-25 12:34:42 -04:00
crud fix(deriver): strip NUL bytes from model-generated observations (#1095) 2026-08-31 13:32:43 -04:00
deriver fix(deriver): reduce scope backfill memory usage (#1104) 2026-09-01 09:17:34 -04:00
dialectic fix(dialectic): revamp workspace and pair chat system prompts (#1066) 2026-08-25 12:30:06 -04:00
dreamer Scopes Phase 2a: scope-kind peers, guardrails, and scopes CRUD routes (#884) 2026-08-12 16:21:40 -04:00
llm fix(openai): fix content normalization in openai backend history adapter (#1064) 2026-08-26 12:14:32 -04:00
reconciler fix(embedding): truncate in batch embed and return results breakdown (#1019) 2026-08-20 11:42:38 -04:00
routers feat: Add workspace-level chat (#931) 2026-08-24 15:54:23 -04:00
schemas fix(deriver): strip NUL bytes from model-generated observations (#1095) 2026-08-31 13:32:43 -04:00
startup Make embeddings configurable (#678) 2026-05-14 15:03:35 -04:00
telemetry review: fix db_connections_open leak on the detach path; comment/doc polish 2026-08-24 14:37:20 -04:00
utils fix(deriver): strip NUL bytes from model-generated observations (#1095) 2026-08-31 13:32:43 -04:00
vector_store fix: stop top_k=0 from reaching Turbopuffer on message search (#1084) 2026-08-26 17:07:41 -04:00
webhooks Tighten Transaction Scopes (#525) 2026-04-08 11:14:50 -04:00
__init__.py v0.0.8 Documentation Updates (#55) 2024-05-15 00:07:25 -04:00
_version.py feat: add new cloudevents for api routes (#637) 2026-05-20 18:25:30 -04:00
config.py telemetry: zero-initialize bounded-label metrics so an absent series means a broken scrape (#927) 2026-08-20 10:24:49 -04:00
db.py review: fix db_connections_open leak on the detach path; comment/doc polish 2026-08-24 14:37:20 -04:00
dependencies.py add read db (#773) 2026-06-10 13:28:36 -04:00
embedding_client.py fix: only classify genuine oversize input as a token-limit error (#791) 2026-08-25 09:45:01 -04:00
exceptions.py fix(embedding): truncate in batch embed and return results breakdown (#1019) 2026-08-20 11:42:38 -04:00
main.py feat(telemetry): add physical DB-connection metrics 2026-08-24 14:35:51 -04:00
models.py feat(models): make tenant_id a first-class primitive for shared-tenant schema 2026-09-02 12:36:23 -04:00
security.py Fix scoped JWTs (#679) 2026-06-22 17:30:00 -04:00