Kody v2026.08.01
Kody v2026.08.01
The shared database was becoming the ceiling. This release moves the hottest per-user data — daily quotas, workflow run state, vector search, email metadata, service liveness, and storage tracking — into dedicated per-user storage boundaries, so your assistant stays fast and reliable as the platform grows. Nothing here changes what Kody does for you today; it changes how much room there is to grow.
New
-
Per-user quota meter. Your daily entitlement checks now run against a dedicated per-user store that boots from the shared database once and stays warm, so quota enforcement no longer waits on a shared write every time you hit a limit. The same per-user meter now shadows storage-byte usage and package-service liveness as additive data — non-authoritative for now, but ready to become the source of truth once production parity is verified. Account export and deletion cover every new surface. (#1115, #1118, #1119)
-
Per-user Mailbox storage scaffolded. Email threads, messages, attachments, and delivery events now have a dedicated per-user home with built-in 365-day message retention and 90-day event retention. This is phase one — the existing store stays authoritative while the new one is wired in, tested, and verified for parity before any read cutover. (#1116)
-
Architecture decision records. Platform-shaping decisions — especially decisions not to build something — now live in a durable
docs/contributing/decisions/folder so they're recorded instead of re-litigated. The first two records cover package versioning (no) and the data-placement rubric that motivated this entire release. (#1108, #1109)
Improved
-
Per-user vector search isolation. Your package, memory, and job vectors now write to and query from your own Vectorize namespace instead of a shared global index. During migration both old and new results are merged and deduplicated, and a maintenance sweep rebuilds your derived vectors into the new partition. (#1110)
-
Per-user run and workflow state. Workflow projections, job run observability, and package activation state moved into a dedicated per-user run log with atomic slot reservations, stale-run recovery, and 90-day terminal projection retention. Legacy data is preserved through bounded read-through during migration. (#1114)
-
Faster entitlement enforcement. Repeated entitlement checks within 60 seconds now resolve your plan from a short-lived cache instead of re-reading it every time, while usage stays fresh on every call. (#1111)
-
Independent scheduled lanes. Each scheduled task — billing sweeps, email processing, retention — now runs in its own isolated lane with independent concurrency, so a slow lane no longer blocks its siblings. Stripe customer polling was replaced with per-user alarms armed by checkout and billing activity, cutting wasted work. (#1117)
-
Smarter package source reconciliation. Artifacts now marks package sources for reconciliation only when a write token is minted, so the five-minute check skips sources with no pending work. A daily fleet-wide backstop remains as a safety net. (#1112)
-
Admin reporting and audit trail moved off the shared database. Email reporting and audit records now live in their own store, freeing the shared database for user-facing work. (a9d7c704)