Changelog
We build in the open.
-
2026-06-18
Email Delivery Provider Ses
Introduces a provider abstraction over outbound email and a complete Amazon SES implementation behind it (transport, per-tenant DKIM identity auth, SES Tenant reputation isolation, SNS-authenticate...
-
2026-06-18
Progressive Charter And Commands
Two layers. **Layer 1 — Operator Commands:** a day-1, optional, plain-language standing instruction. A global Command reaches every work-type prompt (a mandatory + reserved `CommandsResolver` in `C...
-
2026-06-18
Workspace Finder
On the platform host, a returning customer enters their email and receives one email listing every workspace that email belongs to, each with a single-use magic-link that signs them in on the corre...
-
2026-06-18
Edit Personalization Dataset
789 turns a tenant's own captured edits (785) into a per-tenant voice profile + tier-2 prompt overlay (D1 `TenantVoiceLearner`), and assembles the consented, PII-removed, outcome-validated `(AI-dra...
-
2026-06-18
Edit Prompt Self Improvement
Loop C: turns a *cluster* of similar human edits for one work type into a drafted `CompiledPrompt` platform variant, launched through the existing variant + auto-retirement machinery. Clusterer (F1...
-
2026-06-18
Edit Internal Learning Loops
Loop A (structured-diff lessons), Loop B (outcome-validated edit → exemplar), and the outcome-link backfill (`AiEditCapture.memory_loop_id`). Wires 785's high-fidelity capture corpus into better le...
-
2026-06-18
Edit Capture Surface Coverage
Wires the five no-capture gap surfaces — automations, funnels, forms, inbox `EmailDraft`, and support `Message` — into 785's `EditCapture::Recorder`, gives the two off-pipeline surfaces (`EmailDraf...
-
2026-06-18
Edit Capture Foundation
Converts the lossy edit-capture layer (a `diff_hash` SHA1 + an overwritten-in-place AI original) into a high-fidelity, consent-gated, redacted, append-only capture record (`AiEditCapture`) plus a r...
-
2026-06-17
Onboarding Operator Auto Enable
Removed onboarding friction. The autonomous operator now turns ON at provisioning for every new tenant (cold-start `:suggest` ceiling keeps it safe — it proposes, a human approves). `connect_data` ...
-
2026-06-17
Signup Email Verification
Closes the pre-launch email-squatting gap: platform signup no longer provisions a tenant + grants a session without proving the submitter controls the email. `#create` now saves an unverified `Pend...
-
2026-06-17
Launch Leads Verification Spike
A **read-only** investigation spike. No app code, migration, view, controller, job, route, or config was created or modified. The single substantive artifact is `specs/782-launch-leads-verification...
-
2026-06-17
Page Seo Noindex Consistency
The reported bug — "the page editor writes the noindex flag to `seo_config` but the render helper reads it from `seo_meta`, so noindex is lost" — **was already fixed by Spec 622**. The write → reco...
-
2026-06-17
Webinar Public Registration
Builds the missing public registration funnel for the webinars domain: a public `WebinarsController` with a mobile-first landing page (`#show`) and a registration action (`#register`) that mints/re...
-
2026-06-17
Whatsapp Template Authoring
Fixed the two confirmed 500s on the admin WhatsApp surface. (1) The three WhatsApp resources were declared inside `namespace :messaging` but passed `controller: 'messaging/whatsapp…'` strings, so R...
-
2026-06-17
Dormant Engine Activation
Pure-wiring activation of three built-but-unwired engines: (1) the memory tier-mover + 536 resolution loop (`Memory::SchedulerJob`), (2) the HR autonomous loop (`Hr::WeeklyReviewJob` + `Hr::ExpiryW...
-
2026-06-17
Contract Signature Guard
The public contract-signing action (`Contracts::SigningController#update`) accepted a **blank signature**: a missing/empty `signature_data` was coalesced to `{}`, the signer was transitioned to `si...
-
2026-06-17
Invoicing Late Fee Crash
The per-tenant late-fee cron (`Invoicing::LateFeeApplicator`) crashed on every overdue `sent`/`viewed` invoice, so late fees never applied — a silent revenue leak. Two stacked root causes, both fixed:
-
2026-06-17
Metering Reserve Release Atomicity
Two pre-launch concurrency-correctness fixes (AP3). Both convert a read-modify-write / check-then-act (TOCTOU) window into a single atomic DB operation so racing callers can no longer both win:
-
2026-06-17
Booking Money Safety
Closes three confirmed money-correctness bugs in the bookings domain: (1) refunds had no cumulative cap and were written outside any lock; (2) a package session was burned before the slot-availabil...
-
2026-06-16
Customer Surface Consolidation
Consolidate the three parallel "Customers" / "AI Copilot" / "Customer Health" nav front doors into one "Customers" area (sidebar + command palette) with per-link/per-item module gating; add a read-...