Features
- feat(fivetran): add connector setup, schema config, group, and destination operations (#8988)
- feat(fivetran): add Fivetran integration with saved credential, selectors, and webhook triggers (#8983)
- feat(empty-states): add tests and changelog empty-state graphics (#8976)
- feat(models): add Gemini 4 Argon (#8970)
Improvements
- improvement(fivetran): use shared filterUndefined and readonly constant lists (#8992)
- improvement(search): require half the query's terms in Jira partial matches (#8987)
- improvement(search): bounded Jira fallback, organization search through integrations page connections (#8985)
- improvement(search): read up to 10 documents per MCP read_document call (#8981)
- perf(tables): keep the batch unique check on per-value GIN probes (#8978)
- improvement(chat): coalesce replayed transcript reloads and narrow text-only message reads (#8977)
- perf(billing): sum reporting-window usage from a shared prefix plus a short tail (#8974)
- improvement(knowledge): finish Confluence passes past unreadable attachments, rank unauthenticated keyword search in one statement (#8975)
- improvement(logs): group dashboard stats by workflow id and join names once per group (#8973)
- improvement(db): disable fastupdate on the table-rows GIN and cover level in the logs activity index (#8971)
Bug Fixes
- fix(slack): serialize Search bot removal with member setup, refuse a custom row on the shared app ID (#8993)
- fix(chat): replace a second stuck transcript reload, and close the cleanup pool in its test (#8990)
- fix(search): fold -ie plurals in the Jira partial-match term key (#8991)
- fix(slack): serialize member Slack setup with bot installs and explain blocked setup (#8986)
- fix(db): wave 1 performance follow-ups from re-audit (#8984)
- fix(knowledge): bill Gemini spend for image reads that fail the pass (#8967)
- fix(slack): connect Slack member accounts without the Sim Search bot (#8979)
- fix(files): lock the workspace row before inserting a workspace file (#8972)
Other Changes
- ci(e2e): skip the duplicate type pass and source maps in the mobile build (#8982)
- ci(desktop): run the live suite's lease-lapse test on its own runner (#8980)