Skip to content

Changelog ​

0.15.2 (2026-10-05) ​

Bug Fixes ​

  • name the repository in package.json so npm accepts the provenance (6c472c4)
  • name the repository in package.json so npm accepts the provenance (8c4f7bc)

0.15.1 (2026-10-05) ​

Dependencies ​

  • deps: update pnpm to v12.9.1 (2cd8fa8)

0.15.0 (2026-10-05) ​

Features ​

  • publish the agent as a package with a CLI and declared exports (spec 033) (5666764)
  • publish the agent as a package with a CLI and declared exports (spec 033) (bf0f704)
  • withhold the sale until the contact is a prospect (spec 034) (7e48e7d)
  • withhold the sale until the contact is a prospect (spec 034) (1bd15f0)

Bug Fixes ​

  • load the tenant's .env in the agent CLI, and align the guide with spec 033 (9eccff5)
  • make the installed package boot, redact and publish as spec 033 says (90fb886)
  • stop the reply after the opening flow greeting and asking again (spec 032) (bd0098d)
  • stop the reply after the opening flow greeting and asking again (spec 032) (705ad16)

Specs and Docs ​

  • guide the move from a deployment fork to a tenant project (9e72917)
  • judge spec 033's fork move by copied content, not shared file names (a5d110f)
  • let the fork keep its own housekeeping files in spec 033's move criteria (5844aed)
  • point spec 034 at the prompt's rule 8 and at what the evals can see (79fe8f4)
  • record PR 166 in spec 033 (2163243)
  • record PR 167 in spec 034 (dd6e6d9)
  • rewrap spec 034's eval item (ce6b064)
  • scope the release-only permission check to packages: write (spec 033) (c37dadb)
  • settle the opening's timing and the advert signal in spec 034 (6b1e76e)
  • specify intent before the sale (spec 034) (0f2bb69)
  • specify tenant projects that depend on the agent, not fork it (spec 033) (e375f54)
  • split spec 033 into the package, the scaffolder (035) and plugins (036) (e910e11)
  • split spec 033 into the package, the scaffolder (035) and plugins (036) (39258be)

0.14.0 (2026-10-04) ​

Features ​

  • open with the server's flow and check readiness before the link (spec 032) (f7b947e)
  • open with the server's flow and check readiness before the link (spec 032) (bec2650)

Bug Fixes ​

  • count a payment link at link_sent before it waits for the opening (spec 032) (138dc9d)
  • record contactAsked only when it opened the payment gate (spec 032) (456c2a4)
  • say flowDropped when a stage-tied flow is over the cap (spec 032) (219eedf)
  • send the opening before any flow, and record it without tools (spec 032) (96aa775)

Specs and Docs ​

  • record PR 157 in spec 032 (43d429c)
  • specify relationship before the sale (spec 032) (227049c)

0.13.1 (2026-10-04) ​

Specs and Docs ​

  • describe the separate docs job in CLAUDE.md and spec 011 (dbde7a3)
  • give spec 031's analyst its own cap and name the eval baseline (9e8dcf7)
  • spec 031 and ADR-0020, learning from paid outcomes (fda1994)
  • spec 031 and ADR-0020, learning from paid outcomes (5e3cd3d)

0.13.0 (2026-10-03) ​

Features ​

  • fire a conversion event when the funnel stage advances (spec 027) (4450489)
  • fire a conversion event when the funnel stage advances (spec 027) (ad43756)
  • hold a reply until the flow it follows has played (spec 030) (a9f5f39)
  • hold a reply until the flow it follows has played (spec 030) (ae99cf0)
  • sell several catalog courses through one funnel (spec 028) (125824d)
  • sell several catalog courses through one funnel (spec 028) (96e13e9)
  • send a flow when the model calls it, so the reply follows it (spec 029) (e27f210)
  • send a flow when the model calls it, so the reply follows it (spec 029) (2acac50)
  • send a turn's closing question after the flow it sends (spec 029) (f7956ef)

Bug Fixes ​

  • a payment link sent mid-turn takes the turn's stage writes with it (spec 029) (bfa90c7)
  • a repeat send_flow waits for the first request's outcome (spec 029) (0840e34)
  • count a payment link in flight at link_sent for same-step writes (spec 029) (d2f608f)
  • record a flow sent before a deferred call fails (spec 029) (e8e2a37)
  • say why send_flow has nothing to offer a placed contact (spec 028) (90204a0)
  • store only a bound request's course, and ignore a retired one (spec 028) (b589c52)
  • wait for an in-flight flow request before recording an aborted turn (spec 029) (f808514)

Specs and Docs ​

  • bring README, CLAUDE.md, config guide and specs in line with spec 029 (4a1e006)
  • note in spec 030 that a contact writing during a held reply can be answered first (ef50875)
  • record PR 150 in spec 027 (5d2fa49)
  • record PR 151 in spec 028 (92d3fe5)
  • record PR 152 in spec 029 (211b54d)
  • record PR 153 in spec 030 (f2910c3)
  • specify funnel conversion events and multi-course funnels (specs 027, 028) (56a5d12)

0.12.1 (2026-10-03) ​

Dependencies ​

  • deps: lock file maintenance (041d33b)
  • deps: lock file maintenance (0c72bd4)

0.12.0 (2026-10-03) ​

Features ​

  • add contact read and note-writing tools (specs/024) (b69b74d)
  • follow up once on a quiet lead inside the 24-hour window (spec 025) (d753440)
  • follow up once on a quiet lead inside the 24-hour window (spec 025) (fbb30e9)
  • let the agent read its contact and write bounded notes (spec 024) (8b1980f)

Specs and Docs ​

  • describe contact reads and notes in the README (spec 024) (b39729e)
  • explain how follow-ups work, how to configure and audit them (spec 025) (1a0004a)
  • explain how the sales funnel of spec 023 works (ca1b0a0)
  • explain how the sales funnel of spec 023 works (0ff63b7)
  • record PR 143 in spec 025 (565b9d4)
  • record PR 144 in spec 024 (ab824d6)

0.11.0 (2026-10-02) ​

Features ​

  • replace verbatim repetition with the tenant's closer (spec 013) (616ebc9)
  • replace verbatim repetition with the tenant's closer (spec 013) (a547ca5)
  • send ManyChat API calls through manychat-sdk (spec 022) (b4b2f79)
  • send ManyChat API calls through manychat-sdk (spec 022) (f70272e)
  • take a lead from first reply to the payment link (spec 023) (69c8d27)
  • take a lead from first reply to the payment link (spec 023) (0553b79)

Bug Fixes ​

  • handle ManyChatResponseError in token-write logging (PR #133 review) (899c5af)
  • re-export ManyChatResponseError and handle it in describeWriteError (37802cd)
  • read the mock's payment options from the catalog heading only (0663c60)

Specs and Docs ​

  • bring config/README.md and spec 003 up to date (7113618)
  • bring config/README.md and spec 003 up to date (4855030)
  • count spec 013 in spec 026's parity target (4436abc)
  • decide and specify the Python port (ADR-0018, spec 026) (c59e3a5)
  • decide and specify the Python port (ADR-0018, spec 026) (3fbeb10)
  • declare nudge.humanActiveTag in spec 025 (e192ef7)
  • fix remaining domain-specific references in specs and doc comments (9c6a9d5)
  • include ManyChatResponseError endpoint in spec 022's error-text rule (505613f)
  • narrow 001's price_negotiation trigger and declare onEscalation (ee05ea7)
  • record ADRs 0015-0017 for the sales funnel (cbbec2d)
  • record PR 131 in spec 013 (8294862)
  • record PR 132 in spec 023 (b708107)
  • remove domain-specific references from specs (31f04f8)
  • remove domain-specific references from specs (adf1fe3)
  • specify 023 — Sales Funnel (47dd1e6)
  • specify 024 — Contact Read and Free-Text Notes (d5d3121)
  • specify 025 — In-Window Nudge (d2b353f)
  • specify the sales funnel, contact reads, notes and nudges (8ee5104)

0.10.0 (2026-10-01) ​

Features ​

  • publish config/README.md on the docs site, by name (7d3d5ac)
  • publish the docs as a site on GitHub Pages (spec 014) (e963156)
  • publish the docs as a site on GitHub Pages (spec 014) (78d82bc)

Bug Fixes ​

  • list each README as a sidebar entry, not behind its group heading (5085310)
  • render Mermaid diagrams on the docs site, as GitHub does (524bd16)

Specs and Docs ​

  • date spec 014 by the day it can merge (75fab11)
  • diagram how agent tools work (707e9ff)
  • diagram how agent tools work (cbc6305)
  • link the docs site from the README with a deploy badge (spec 021) (31643bc)
  • link the docs site from the README with a deploy badge (spec 021) (840f236)
  • record PR 110 in spec 012 (6f623c9)
  • record the pull request that implements spec 014 (f5a8f14)

Dependencies ​

  • deps: lock file maintenance (ca30d12)
  • deps: lock file maintenance (9bf5706)
  • deps: update dependency typescript-eslint to v8.71.0 (e3d1b7d)
  • deps: update dependency typescript-eslint to v8.71.0 - abandoned (66054f4)
  • deps: update patch dependencies (d9d9215)
  • deps: update patch dependencies (9a1c31f)
  • deps: update pnpm to v12.8.1 (6bd804b)
  • deps: update pnpm to v12.8.1 (66bc17f)

0.9.0 (2026-10-01) ​

Features ​

  • implement agent tools (spec 012) (8018337)

Specs and Docs ​

  • explain how agent tools work (spec 012) (8df85ce)

0.8.1 (2026-09-28) ​

Specs and Docs ​

  • specify moving ManyChat calls onto manychat-sdk (spec 022) (c5cc136)

Dependencies ​

  • deps: update dependency @types/node to v24.19.0 (cb0187b)
  • deps: update dependency @types/node to v24.19.0 (bc76a52)
  • deps: update patch dependencies (ca6f447)
  • deps: update patch dependencies (cb25a1a)

0.8.0 (2026-09-27) ​

Features ​

  • take issues, questions and conduct reports through forms (spec 021) (2c76e7b)
  • take issues, questions and conduct reports through forms (spec 021) (81fac30)

Specs and Docs ​

  • mark spec 020 implemented (220e9ea)
  • mark spec 020 implemented (f8ab943)
  • record PR 105 in spec 021 (aed5794)
  • specify the contributor surface (e7809ec)
  • specify the contributor surface (ca479b2)
  • stop naming the deployment repository in spec 010 (aa0f6cf)
  • stop naming the deployment repository in spec 010 (481e328)

0.7.0 (2026-09-27) ​

Features ​

  • read inbound voice notes, images and videos (spec 020) (700d2cc)
  • read inbound voice notes, images and videos (spec 020) (ea74381)

Bug Fixes ​

  • compare the media host as a parsed hostname, not a substring (8a44692)

Specs and Docs ​

  • specify inbound media (voice notes, images, video) (b706b3b)

0.6.0 (2026-09-27) ​

Features ​

  • bind a contact's history to a token ManyChat holds (spec 019) (8bd1597)
  • bind a contact's history to a token ManyChat holds (spec 019) (a7799f2)
  • bound history to 30 days and reset the turn cap after 24 hours (spec 018) (f5cdd44)
  • bound history to 30 days and reset the turn cap after 24 hours (spec 018) (b06f349)
  • enforce inbound request trust (spec 017) (5056995)
  • enforce inbound request trust (spec 017) (e29f676)

Bug Fixes ​

  • encode upsert timestamps through the column (8a33177)
  • encode upsert timestamps through the column, not sql.param alone (9bf867f)
  • strip reply fields the model writes into message text (8fc5421)
  • strip reply fields the model writes into message text (8edd948)
  • wrap Date values in sql.param() for conversation upsert (88f0109)
  • wrap Date values in sql.param() for conversation upsert (4738582)

Specs and Docs ​

  • explain contact tokens in the README (edcc2cb)
  • let a case carry several review criteria, one verdict each (7fa80e5)
  • record PR 89 in spec 017 (a9be334)
  • record PR 91 in spec 018 (25963b3)
  • record PR 95 in spec 019 (4392ee3)
  • specify a flag-gated browser test service on the mock model (b79ac2d)
  • specify inbound request trust (spec 017, ADRs 0012-0014) (b9c5518)
  • specify inbound request trust (spec 017, ADRs 0012-0014) (d2b30b8)
  • specify model-graded evals behind a calibration gate (c7bd2ab)
  • specify model-graded evals behind a calibration gate (38478ab)
  • specify the documentation site (ce6b613)
  • translate leftover Spanish strings to English (bef7660)
  • translate leftover Spanish strings to English (23d2bb9)

Dependencies ​

0.5.3 (2026-09-24) ​

Specs and Docs ​

  • add spec 013 — no verbatim repetition (e864936)
  • add spec 013 — no verbatim repetition (e0f5ea2)
  • record agent actions per turn and feed them back to the model (4876c94)
  • specify agent tools for ManyChat flows, tags and fields (9385f22)
  • specify agent tools for ManyChat flows, tags and fields (8e4d604)

Dependencies ​

  • deps: update minor dependencies (b4efac6)
  • deps: update minor dependencies (ac224f5)
  • deps: update patch dependencies (#77) (381c0a1)
  • deps: update pnpm to v12.6.0 (025cb26)
  • deps: update pnpm to v12.6.0 (0d46f00)

0.5.2 (2026-09-18) ​

Dependencies ​

  • deps: update dependency @types/node to v24 (d269787)
  • deps: update dependency @types/node to v24 (cd69d3d)
  • deps: update patch dependencies (e748b59)
  • deps: update patch dependencies (50207ba)

0.5.1 (2026-09-18) ​

Bug Fixes ​

  • never ask the closing question twice (f9c10b7)
  • never ask the closing question twice (2c6f897)

0.5.0 (2026-09-18) ​

Features ​

  • make the closing question a field rather than a hope (65072d8)
  • make the closing question a field rather than a hope (cf7ee19)

Bug Fixes ​

  • count content lines, and give the suite its own latency budget (31d4382)
  • count content lines, and give the suite its own latency budget (ae21d99)
  • ground prices documented in catalog prose (281613c)
  • ground prices documented in catalog prose (8a93597)
  • last Spanish string in an integration test fixture (c22e82d)
  • omit temperature for models that reject it (1f934c8)
  • omit temperature for models that reject it (279d6fb)
  • remove Spanish and real deployment data from test fixtures (9fd5797)
  • stop discarding every message after the first on WhatsApp (5e39c07)
  • stop discarding every message after the first on WhatsApp (bdc797e)

Specs and Docs ​

  • document EVAL_MAX_LATENCY_MS in .env.example (2f7cec0)

0.4.1 (2026-09-17) ​

Refactors ​

  • migrate from deprecated generateObject to generateText (3988740)
  • migrate from deprecated generateObject to generateText (7319a6f)

0.4.0 (2026-09-17) ​

Features ​

  • cap reasoning effort, and make a dead model call visible (c9cb90a)
  • cap reasoning effort, and make a dead model call visible (257f039)

Bug Fixes ​

  • add serial seq column to turns for deterministic ordering (7ecf70f)
  • deterministic turn ordering with serial seq column (537ec70)
  • prevent false escalation on short conversational replies (85af807)
  • prevent false escalation on short conversational replies (7c4992e)
  • reload the persona and catalog on SIGHUP (7293d59)
  • reload the persona and catalog on SIGHUP (c43222e)

0.3.6 (2026-09-16) ​

Bug Fixes ​

  • docker: copy pnpm-workspace.yaml into build stage (89441f6)
  • docker: copy pnpm-workspace.yaml into build stage (11d39f5)

0.3.5 (2026-09-16) ​

Bug Fixes ​

  • release: map chore(deps) to a visible Dependencies changelog section (0d259eb)
  • release: map chore(deps) to visible Dependencies section (571935c)
  • renovate: remove semanticCommitType override (9a29ce4)
  • renovate: remove semanticCommitType override so :semanticCommits preset controls PR prefixes (566cd84)

Dependencies ​

  • deps: update dependency ai to v7.0.105 (c0388d2)
  • deps: update dependency ai to v7.0.105 (4a8843b)
  • deps: update pnpm to v12.4.2 (c9ea9b4)
  • deps: update pnpm to v12.4.2 (c508eef)

0.3.4 (2026-09-16) ​

Bug Fixes ​

  • restore pnpm-workspace.yaml with minimumReleaseAge disabled (6c96d58)

Specs and Docs ​

  • add deps prefix to spec 010 changelog table (d0b7b67)

0.3.3 (2026-09-16) ​

Bug Fixes ​

  • regenerate lockfile for pnpm 12 and add workspace config (67fc8d8)

0.3.2 (2026-09-16) ​

Bug Fixes ​

  • downgrade to TypeScript 6.0 — typescript-eslint does not support TS 7 (c26a70d)

0.3.1 (2026-09-16) ​

Bug Fixes ​

  • gate release-please to the public repo only (fa58933)
  • gate release-please to the public repo only (b545948)

0.3.0 (2026-09-16) ​

Features ​

  • batch dependency updates and auto-merge only patches (7bfb068)
  • batch dependency updates and auto-merge only patches (d628930)

Specs and Docs ​

  • record the PR that landed specs/011 (cc0c14a)

0.2.0 (2026-09-16) ​

Features ​

  • add Ollama as a local model provider (1274bac)
  • add Ollama as a local model provider (specs/007) (aa1da2f)
  • cut releases from a reviewable Release PR (de2a4c6)
  • cut releases from a reviewable Release PR (d8c4364)
  • implement the agent gateway MVP (63be48a)
  • implement the agent gateway MVP (aba2203)
  • let a tenant carry its own eval suite (e2b50da)
  • let a tenant carry its own eval suite (704e530)
  • make a spec state whether its behaviour exists yet (89f653a)
  • make a spec state whether its behaviour exists yet (423e318)
  • replace sendContent with flow-based delivery (specs/002) (0603016)
  • scripted opening on a configured sentinel (specs/001) (9bc8ff5)
  • scripted opening trigger and flow-based delivery (a4cd0c5)

Bug Fixes ​

  • green eval:mock on main after #17 (00a50c2)
  • keep MODEL_ABORT_MS armed on the deferred path, record the model (2089bcc)
  • mount config into container and update Postgres 18 volume path (7718a3b)

Refactors ​

  • English throughout, and no customer copy in source (e3094ee)
  • English throughout, and no customer copy in source (8662c05)
  • implement ports as classes rather than factory functions (1738550)
  • implement ports as classes rather than factory functions (36245bd)

Specs and Docs ​

  • add CLAUDE.md with codebase documentation (3b94ae4)
  • add CLAUDE.md with codebase documentation (34d24b2)
  • add Docker setup and API walkthrough to README (8cc50c2)
  • add the pull request template specified in 006 (b329490)
  • close spec 007's unkept promise and verify its claims (a988eb2)
  • close spec 007's unkept promise and verify its claims (0381946)
  • link to PGlite in quick-start blurb (ef25a41)
  • record classes as the standard for port implementations (746c874)
  • record the PR that landed specs/009 (53bdae0)
  • remove tenant identity from the published repo (e24b335)
  • require English in the repository, and no copy in source (395bcda)
  • specify running a real model locally via Ollama (2aeb100)
  • specify running a real model locally via Ollama (7fc04ca)
  • specify tenant eval suites (faff5af)
  • specify the agent before building it (095e7a4)
  • specify the release workflow and dependency updates (d63cdca)
  • specify the release workflow and dependency updates (3253c49)
  • specify the testing strategy (8b39203)
  • specify what a pull request must say (beeb226)