Skip to content
MISSIONBuilding to $50K/year · partnership threshold — every $20 subscription reserves 10 meals in the fund. Report published monthly.SEE THE PROGRESS →
CHANGELOG · SHIPPED · CHANGED · FIXED · REGRESSED

What actually changed.

Chronological. No PR sheen. Regressions are owned publicly. If you want the narrative version, /blog has the monthly roundups.

SHIPPEDCHANGEDFIXEDREGRESSED
  1. 2026-08-08FIXED
    Changelog fabrication audit

    Rebuilt this file to reflect only shipped code, dated against actual commits. Removed 40+ entries describing events that had not happened (a PBC filing, a partnership with the hunger-relief charity we select, monthly partner receipts, a million-meals milestone, specific incident post-mortems). The whole point of a receipts-first company is that its receipts are real.

  2. 2026-08-08SHIPPED
    THE LOOK — definitive visual overhaul

    Warm-dark rebase across the app. Old cold near-black scale (#0B0A0C / #121014) replaced with a warm umber scale (#0F0D10 → #14110F → #17130F → #1B1611 → #1E1913). Ambient center-light layer. Four signature moments (send ripple, streaming shimmer, meal-toast rebuild, theme cross-dissolve). Kill list: Constellation/Field art removed from chat canvas. Written into DESIGN.md as §18 / The Look.

  3. 2026-08-08SHIPPED
    Marketing expansion — six pages substantially deeper

    Manifesto rebuilt as 10 chapters + 4 addenda. Principles rebuilt as 13 principles with per-principle receipts. Docs expanded from 10 to 20 pages in three categories. Learn expanded from 16 to 23 guides in five tracks. Help expanded from 34 to 48 articles across 8 categories (added Features and Troubleshooting). ~35,000 new words of first-party product writing.

  4. 2026-08-07FIXED
    Feature audit — 69 features verified end-to-end

    New grand-tour self-test provisions a real user via admin.createUser + signInWithPassword, walks 69 features through the deployed API with a real session cookie. Uncovered and fixed: chat search returning 500 (PostgREST embed-filter collision on the messages.chats join); sign-out-all returning 500 (wrong signOut signature — admin.signOut takes a JWT not a user id); ⌘K 'Share this chat' event had no listener; composer chip toggles silently no-op'd before first message on new chats.

  5. 2026-08-07SHIPPED
    Share chat modal + header button

    The share endpoint existed but no UI reached it. Added ChatShareModal listening for ladle:share-current; wired the ⌘K palette action; added a SHARE button in the chat header (visible when a chat has at least one turn).

  6. 2026-08-07FIXED
    Composer toggles now apply on the first turn

    SEARCH / THINK / MODEL / STYLE flipped before the first message on a new chat used to no-op silently (the client bailed at `if (!currentChatId) return`). Fixed: the send route now accepts the four flags in the request body on new-chat creation and PATCHes them onto the fresh chats row before the first send reads them back.

  7. 2026-08-07SHIPPED
    I-series: dedicated flagship surfaces

    /design becomes a real gallery page (live-iframe hero, own-work grid with IntersectionObserver, starter briefs, recent design-chats rail). /artifacts becomes its own surface with type-chip filter + grid/list toggle. /plans and /give move in-app (marketing pages remain for visitors).

  8. 2026-08-07SHIPPED
    Setting the Table — 10-step onboarding

    New first-run flow: name, role, intents, style (with live-streamed samples), theme (with mid-flow re-render), context + memory consent, language (conditional), the cause split, the receipts moment, plan interest, table closer. Every answer writes to a real profile field. Seeded role memory shows up in the standard Memory settings.

  9. 2026-08-07FIXED
    Artifacts + Design mode incident — root cause + fix

    Artifacts hadn't been landing on prod (zero rows ever created). Two bugs: (1) client-side detect POST raced router.replace() on new chats, unmounting ChatSurface before the POST returned; (2) design turns exceeded the 90s maxDuration and the post-stream persist block never ran. Fixed: detection moved server-side (LADLE_ARTIFACT sentinel in the stream), maxDuration→300s, max_tokens=16K for design. Added a real-API-route + real-session E2E test suite.

  10. 2026-08-07CHANGED
    CLAUDE.md self-test rule

    Every self-test suite must include at least one end-to-end test per feature through the REAL API route with a REAL authenticated session (not service_role, not in-process function calls). Prior test suites passed while the artifacts feature was broken — that's the specific failure mode this rule prevents.

  11. 2026-08-07SHIPPED
    Daylight theme compat layer

    The theme was authored dark-first with hardcoded rgba(244,239,230,x) values inline. Tokens invert on daylight; inline literals don't. Added a CSS attribute-substring override sheet that catches every common ivory-alpha pattern under html[data-theme='daylight'] and remaps to ink-alpha equivalents. Daylight reads on every surface.

  12. 2026-08-06SHIPPED
    H-series: furniture density + Daylight theme + languages + Design mode

    Commit a6ae118. Adds chats.mode='design' with a dedicated system prompt, per-user theme + reduced-motion + response-language preferences via ui_prefs, and an English/Français interface dictionary.

  13. 2026-08-06SHIPPED
    G.5: Kitchen panel (radical transparency) + Second Opinion

    Commit a5665d6. Every assistant reply persists prompt_meta (base/style/memory/custom/project lengths, model, tier, routing reason, thinking budget, search state). Kitchen opens from the ⋯ menu on any assistant turn and shows the whole plate. Second Opinion: one click routes the reply through the OTHER tier for a verifier critique, stored on messages.second_opinion.

  14. 2026-08-06SHIPPED
    G.4: project knowledge + voice dictation + usage meter

    Commit 8497437. Files attached to a project are extracted (pdf-parse) and rendered into a 'Project knowledge' block in the system prompt with per-message filename citation. Web Speech API dictation in the composer. Usage counters (input/output tokens, search count) exposed at Settings → Usage.

  15. 2026-08-06SHIPPED
    G.3: memory — user-owned, fully inspectable

    Commit 674083d. memories table with per-user RLS. Manual add from Settings → Memory. Background extraction after every 10th assistant reply via a Haiku call. Every memory visible, editable, deletable. Never announced by the assistant. Off entirely via a single ui_prefs toggle.

  16. 2026-08-06SHIPPED
    G.2: manual model override + extended thinking

    Commit 2ad2e4a. Per-chat FAST/DEEP/AUTO override on chats.model_override. Extended thinking (Sonnet-only) on chats.thinking_enabled with a ~8K reasoning budget; the trace streams via a LADLE_THINKING sentinel and renders inside a collapsed 'Thinking…' block.

  17. 2026-08-06SHIPPED
    G.1: conversation branching + temporary chat + shared links

    Commit dfba9cb. Regenerate creates a sibling branch via parent_id + branch_index on messages. Active-leaf-per-chat persists so re-opening a chat restores the exact conversation. Temporary chats (?temp=1) skip persistence entirely. Public /share/:slug snapshots of the active branch; image attachments copied to a public bucket, PDFs represented as chips.

  18. 2026-08-06SHIPPED
    F.6 polish: star action + response style + rail icons

    Commits 126d9b1 + 5fe762a. messages.starred_at column + POST /api/app/messages/:id/star. chats.response_style + per-chat STYLE chip in the composer. Bottom-rail nav icons on the sidebar. Self-test verifies both round-trip through the real API.

  19. 2026-08-06SHIPPED
    F.5: Library + response styles + palette destinations

    Commit c06fdf7. /library first iteration (later refactored to Starred + Snippets during the I-series). Five response-style presets (Default, Concise, Thorough, Direct, Friendly) as directive tokens appended to the system prompt. ⌘K palette gains destinations for the new surfaces.

  20. 2026-08-06SHIPPED
    F.4: scheduled tasks (Vercel cron)

    Commit 6c0d6bb. Recurring prompts on daily / weekdays / weekly cadences at a chosen hour + timezone. Cron endpoint claims due tasks with a row-level lock (status='running'), executes a one-shot Anthropic call, persists user + assistant messages, computes next_run_at. Two target modes: dedicated_chat and new_chat_per_run.

  21. 2026-08-06CHANGED
    F.4 downgrade: cron runs daily 09:00 UTC on Hobby

    Commit 8b572b8. Vercel Hobby doesn't allow */15 * * * * cron schedules; downgraded to a single 0 9 * * * daily firing. Higher-frequency runs blocked on a Pro upgrade.

  22. 2026-08-06SHIPPED
    F.3: web search with citations (Anthropic server-side tool)

    Commit 3d39bc1. Per-chat SEARCH toggle wires the Anthropic web_search_20250305 tool with max_uses=3 per turn. Citations captured to messages.citations jsonb and rendered as a sources rail below the reply. Usage counted separately in usage_counters.searches_count.

  23. 2026-08-06SHIPPED
    F.2: real image + PDF uploads via Anthropic vision / document

    Commit 79fe9ca. Composer accepts images (PNG, JPG, WEBP, GIF up to 20MB) and PDFs (up to 32MB / 100 pages). Files land in the uploads bucket; the send route streams them as base64 into Anthropic vision / document content blocks. Attachments force HEAVY tier so Haiku doesn't get vision work.

  24. 2026-08-06SHIPPED
    F.1: provider seam + Artifacts (right-side panel)

    Commit a92efe9. First iteration of the artifact system: detection heuristic (code ≥40 lines / HTML doc / prose ≥600 words after a write-ask), artifacts + artifact_versions tables with RLS, right-side ArtifactPanel with per-type rendering. Provider abstraction (getProvider(name).streamChat(...)) allows a future OpenAI drop-in without touching the send route.

  25. 2026-08-06FIXED
    A-gap: loud logging when instructions read fails

    Commit 616ea3d. Silent-swallow was hiding cases where custom instructions failed to load. Every failed read now logs with the specific error and the user_id so the incident is diagnosable from server logs.

  26. 2026-08-06SHIPPED
    A.4: shell polish, mobile drawer, Setting placements, feel pass

    Commit 0d45282. Mobile responsive rebuild — sidebar becomes a drawer under 900px, layout collapses to a single column, composer respects env(safe-area-inset-bottom) so it never sits under the iOS home indicator. Setting glyphs placed at their earned moments.

  27. 2026-08-06SHIPPED
    A.3: My Table flagship + full settings + onboarding v1

    Commit abe9c33. /my-table is the personal impact ledger (renders a plate grid per subscribed cycle when the ledger has entries). Full settings shell (Account, Behavior, Appearance, Memory, Language, Data, Billing, Usage). First-run onboarding (later expanded to the 10-step Setting the Table flow on 2026-08-07).

  28. 2026-08-06SHIPPED
    A.2: sidebar rebuild + search + projects + palette + shortcuts

    Commit b97a444. Sidebar with pinned/recent chat groups and per-row menus. Chat search across titles + message content. Projects (create/rename/delete/instructions). ⌘K command palette. ⌘/ shortcut overlay.

  29. 2026-08-06SHIPPED
    A.1: message-rendering pipeline + composer + empty-state moment

    Commit 1ee0fc8. react-markdown + remark-gfm + Shiki-based code blocks with a custom LADLE theme. Composer input, attachments, autofocus, submit-on-Enter, Esc-to-stop. Greeting-based empty state on first-turn.

  30. 2026-08-05SHIPPED
    M4.3: nav restructure + 12 bespoke pages

    Commit 77779ed. Two-column dropdown panels with featured cards. New pages: /teams, /models, /api, /roadmap, /community, /partners, /education, /nonprofits, /security, /manifesto, /changelog, /meals-map.

  31. 2026-08-05SHIPPED
    M4.2: /demo hub + core page expansions + ClosingCTA + ReceiptsTableWithFilter

    Commit 0047558. Expanded core marketing pages with the reveal + closing-CTA components. The receipts-table-with-filter is the mock rendering of what a real receipts feed will look like once we have receipts to feed it.

  32. 2026-08-05FIXED
    M4.1: keyword-match on word boundaries

    Commit 873390f. The homepage hero composer was routing 'postgres' to the 'post/write' scenario because the keyword matcher was substring-based. Switched to word-boundary matching.

  33. 2026-08-05SHIPPED
    M4.1: plan ladder + MealsPlanDemo + /pricing rebuild + hero composer

    Commit 197fa56. Three plans (Ladle · Max 5x · Max 20x) with the meal-math for each. MealsPlanDemo interactive calculator. /pricing rebuilt with the plan cards + comparison matrix. The homepage hero becomes an interactive composer that maps free-typed input to eight scripted scenarios.

  34. 2026-08-05SHIPPED
    M3.6: polish pass — easing + depth tokens + PWA + audit

    Commit ae9bc5f. Global --ladle-ease token. Depth tokens for cards / overlays / hairlines. Micro-interaction polish across the marketing surfaces. PWA manifest and beforeinstallprompt capture.

  35. 2026-08-05SHIPPED
    M3.5: content wave 3 + GEO/AEO infrastructure

    Commit 8882ee9. sitemap.xml, robots.txt, llms.txt, llms-full.txt, dynamic OG images. Schema.org markup on every core page. Later commits will layer more content.

  36. 2026-08-05SHIPPED
    M3.4: content wave 2 — 30 prompts + 24 help articles + 8 learn guides

    Commit 1d22d5b. First large content push. Every entry Zod-validated; taxonomy indexed by slug.

  37. 2026-08-05SHIPPED
    M3.3: content wave 1 — 11 use cases + 9 comparisons + 7 bespoke pages + 404

    Commit c14f846. First real content. Use cases per role; comparison pages against ChatGPT, Claude, Copilot, and others.

  38. 2026-08-05SHIPPED
    M3.2: 8 family templates + 1 seeded entry each

    Commit a998e77. Registry pattern for content families (docs, help, learn, prompts, use-cases, comparisons, workflows, glossary). Every family gets a schema-validated seed.

  39. 2026-08-05SHIPPED
    M3.1: content architecture + component library + nav+footer at scale

    Commit da369ab. Foundation for the marketing content system: content/ registries with Zod schemas, marketing-page shell, sitewide nav + footer. First flagship-home iteration.

  40. 2026-08-05SHIPPED
    Pass 2: search screen + all 8 marketing pages + interactive My Table

    Commit b0027b8. Second major visual pass. Search-answer surface, the eight core marketing routes, and the interactive plate toggle on /my-table.

  41. 2026-08-05SHIPPED
    Pass 1: full 1:1 build of the imported design

    Commit 920bcf7. First implementation of the entire visual system from the LADLE v3 import — sidebar, chat surface, composer, marketing hero, footer.

  42. 2026-08-05SHIPPED
    DESIGN.md as source of truth

    Commit 909a0bd. Extracted every value from the imported design mockup into DESIGN.md — colors, typography, spacing, motion, component patterns. The rule since: DESIGN.md wins over prose; do not deviate.

  43. 2026-08-05SHIPPED
    Repository scaffold — marketing + app shells + mock data layer

    Commit 61326ef. First commit. Next.js 15 App Router. Marketing + (app) route groups. Mock data layer that lets the whole UI be developed in mock mode before the Supabase swap.

Every change on the record. No exceptions.

Regressions get their own tag. That's the whole trust mechanism.

Start with LADLE — $20/moWatch it work
$20/MO · CANCEL ANYTIME · $0.80/MEAL · RECEIPTS MONTHLY
Read the ledger →
0meals fundedROLLING TOTAL · UPDATED HOURLY
SEE THE RECEIPTS →