Repository navigation
Releases
v1.30.0
[1.30.0] - 2026-11-11
Added
- inbox: dismiss feedback rows in bulk and show who holds each Needs-you row (#1752)
- directives: show directives as a quiet list with a detail sheet (#1748)
- a2a: answer A2A v1.0 JSON-RPC for published agents (#1732)
Fixed
- chat: show a link the model was never given as plain text (#1760)
- retrieval: judge a sense's relevance by its match to the question, not its fused rank (#1747)
- retrieval: resolve relative dates in the local zone in Test Chat, approval resumes and document enrichment (#1753)
- chat: translate the citation labels and show the source count beside them (#1746)
- chat: never offer to write the visitor's message, or write it after an earlier offer (#1741)
- infra: refuse unencrypted database connections on live-eu (#1737)
- routines: show a variable's type read-only where its field row owns it (#1736)
- chat: lay out three or more items as a crisp list, and name a few on a call (#1733)
Internal
- replace the last copied example and a production eval id in tests (#1738)
- typecheck every package's tests and fix the errors that had built up (#1734)
Database migrations
This release adds 1 migration. They run at service startup, so deploy one stack at a time; overlapping deploys contend on the same DDL lock and stall until one gives up.
253_a2a_tasks.sql
Full changelog: v1.29.1...v1.30.0
v1.29.1
[1.29.1] - 2026-11-09
Fixed
- routines: tell a step reply which sources it has, so it never states the visitor's dates as the course's (#1725)
- security: keep the store failure as the cause of the abuse-control 503 (#1701)
- retrieval: fence vector index work on its claim so a lost lease does not stop maintenance (#1713)
- routines: keep a slot answer the step selector cannot read, and say so when it re-asks (#1729)
- auth: end the server session on sign out (#1727)
Internal
- deps: bump sanitize-html from 2.18.0 to 2.18.1 (#1658)
Full changelog: v1.29.0...v1.29.1
v1.29.0
[1.29.0] - 2026-11-09
Added
- infra: schedule Cloud SQL maintenance for Sunday night (#1724)
Fixed
- routines: take a change after a routine ends only for a value it holds and never sent (#1728)
- operator-mcp: let routine edits switch a field's "Editable after completion" on or off (#1726)
- observability: answer a request the database cannot serve with a 503 and report it as an outage (#1722)
- crawler: take the page's own title instead of concatenating every <title> (#1719)
- privacy: send error sinks the redacted shape, never raw error text (#1721)
- frontend: keep unsaved Profile draft when an agent is renamed (#1723)
- connectors: keep operator-set source config when a connector re-syncs (#1720)
Full changelog: v1.28.0...v1.29.0
v1.28.0
[1.28.0] - 2026-11-08
Added
- notifications: record each notice's outcome per address and alert when one is skipped (#1708)
- skills: make MCP connections belong to the workspace (#1697)
- wordpress: keep a resync going from the settings page when WP-Cron cannot fire (#1691)
Fixed
- notifications: send a notice no configured address can receive to the workspace's administrators (#1712)
- db: never return a connection to the pool inside a transaction (#1706)
- agents: save greeting wording with the agent draft and let it publish on its own (#1695)
- wordpress: accept companion pushes from every site the workspace has connected (#1693)
- security: prune batch rate-limit counters on the batch's own clock (#1692)
Internal
- use invented examples in tests, fixtures, prompts and docs (#1709)
Database migrations
This release adds 2 migrations. They run at service startup, so deploy one stack at a time; overlapping deploys contend on the same DDL lock and stall until one gives up.
251_mcp_connections_workspace_owned.sql252_notification_deliveries.sql
Full changelog: v1.27.0...v1.28.0
v1.27.0
[1.27.0] - 2026-11-03
Added
- infra: let a stack raise the public voice call start limits (#1687)
- retrieval: resolve relative dates in the visitor's or the workspace's time zone (#1684)
- billing: flag accounts whose average conversation costs more than the plan can carry (#1682)
- voice: start a Radioso-managed ElevenLabs call in the session's language (#1676)
Fixed
- voice: say an agent needs publishing before it can take calls or chats (#1690)
- security: weigh the previous rate-limit window by its real overlap (#1688)
- routines: close the routine engine review follow-ups on approval-wait replies, page-read records, replaced slots, and step prompts (#1683)
- wordpress: date only posts by their publish day, not evergreen pages (#1681)
- background-jobs: split dead-letter error reports by job kind and class (#1680)
- chat: write a directive-bound skill's reply from its result instead of showing it verbatim (#1679)
- retrieval: keep passages dated in another period out of a range answer's reserved slots (#1671)
- email-channel: settle sends after a provider 5xx by their own Message-ID (#1675)
- routines: give a routine step the page in metadata mode and on the grounded path (#1674)
- routines: stop the next-step selector answering the visitor on the opening turn (#1673)
Database migrations
This release adds 1 migration. They run at service startup, so deploy one stack at a time; overlapping deploys contend on the same DDL lock and stall until one gives up.
250_workspace_time_zone.sql
Full changelog: v1.26.1...v1.27.0
v1.26.1
[1.26.1] - 2026-10-28
Fixed
- routines: keep the visitor's words when they accept a read-back, and other review follow-ups (#1672)
Full changelog: v1.26.0...v1.26.1
v1.26.0
[1.26.0] - 2026-10-28
Added
- voice: connect ElevenLabs from the Voice card and open calls with the agent's greeting (#1655)
Fixed
- crawler: send crawl slice continuations to the crawler worker (#1668)
- routines: fill a slot only from what the reply gives it, and from an accepted offer (#1667)
- routines: ask a re-asked step's question without announcing the gap (#1663)
- routines: let a routine step read the page the visitor is on (#1661)
- chat: report failed turns to error tracking with a provider failure kind (#1654)
- llm: run only models the platform endpoint serves (#1651)
Database migrations
This release adds 1 migration. They run at service startup, so deploy one stack at a time; overlapping deploys contend on the same DDL lock and stall until one gives up.
249_agent_voice_runtime_connections.sql
Full changelog: v1.25.0...v1.26.0
v1.25.0
[1.25.0] - 2026-10-27
Added
- embed: modernize the chat widget header, composer, and launcher (#1649)
Fixed
- chat: answer from the default skill when a directive-bound skill fails, and show why in the trace (#1657)
- api: register undocumented routes in the OpenAPI contract (#1653)
Documentation
- refresh the package layout and architecture code map (#1652)
Internal
- ratchet module cycles, dependency direction, file size, and OpenAPI route coverage (#1650)
Full changelog: v1.24.1...v1.25.0
v1.24.1
[1.24.1] - 2026-10-26
Fixed
- deps: migrate to Zod 4 to close GHSA-mrhx-c7xc-m3w5 (#1645)
- deps: patch critical and high dependency advisories (#1644)
Full changelog: v1.24.0...v1.24.1
v1.24.0
[1.24.0] - 2026-10-26
Added
- mcp: show the resolved date range in retrieval_probe and accept a period in document_search (#1640)
- routines: sensitive slots, masked wherever the value leaves the conversation (#1629)
- privacy: durable backlog for voice recordings a deletion leaves at the vendor (#1628)
- security: rotate the credential encryption key without re-entering credentials (#1630)
Fixed
- chat: reply in the visitor's language, not their browser's (#1641)
- privacy: keep phone numbers and error messages out of app log lines (#1631)
Performance
- retrieval: keep the lexical some-terms pass inside its budget on mid-sized workspaces (#1639)
- documents: reuse a document's enrichment reply while its content is unchanged (#1627)
Documentation
- legal: list PostHog error tracking as a subprocessor in the DPA (#1643)
- legal: name Resend as the US email subprocessor and fix the transfers paragraph (#1635)
Internal
- retrieval: stop the date-range telemetry test failing on 2026-10-26 (#1636)
Database migrations
This release adds 4 migrations. They run at service startup, so deploy one stack at a time; overlapping deploys contend on the same DDL lock and stall until one gives up.
245_voice_recording_erasures.sql246_unwritten_encryption_key_id_columns.sql247_document_enrichment_reply.sql248_routine_slot_sensitivity.sql
Full changelog: v1.23.0...v1.24.0