Skip to main content

Changelog

We build in the open.

  1. 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...

  2. 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...

  3. 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...

  4. 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...

  5. 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...

  6. 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...

  7. 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...

  8. 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...

  9. 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` ...

  10. 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...

  11. 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...

  12. 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...

  13. 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...

  14. 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...

  15. 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...

  16. 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...

  17. 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:

  18. 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:

  19. 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...

  20. 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-...