Breaking changes
- feat(integrations)!: Name real vendor parameters on recently shipped providers (#3289)
Security
- feat(integrations): Sandbox registry sync phases (#3208)
- docs: Clarify credential storage and keyring rotation (#3224)
- fix(agents): Force-remove sandbox-owned job trees (#3229)
- feat(logging): Test audit webhooks (#3235)
- fix(engine): Enforce filtered NSTUN egress (#3214)
- fix(engine): Raise bounded NSTUN socket budget (#3244)
- fix(engine): Raise NSTUN socket budget to 1024 (#3249)
- fix(audit): Preserve client attribution across proxy hops (#3362)
- fix(engine): Harden nsjail bind mount handoffs (#3088)
Case management
- fix(cases): Raise linked-row cap to 5,000 and batch (#3226)
- feat(cases): Invoke agents from comment mentions (#3227)
- feat(cases): Show agent activity in comment threads (#3231)
- feat(cases): Expose custom field display names (#3241)
- feat(cases): Persist custom field display names (#3242)
- chore(cases): Docs and polish for agent comment mentions (#3247)
- fix(agents): Simplify comment invocation session chat (#3232)
- feat(ui): Linear-style properties rail, editor and picker redesign (#3238)
- fix: Refresh workflows after case-trigger imports (#3254)
- feat(cases): Use display names for custom fields (#3255)
- fix(api): Return adjacent reverse pages (#3258)
- feat(ui): Make version history shell host-configurable (#3279)
- feat(cases): Add title and description versioning (#3272)
- feat(cases): Add case version history and restore APIs (#3282)
- feat(cases): Run workflows from comments with a slash command (#3305)
- feat(cases): Add version history restore flow (#3301)
- feat(cases): Link table rows from the case page (#3307)
- fix(cases): Cap linked rows per table and paginate the case grids (#3309)
- feat(cases): Add agent session interaction model (#3315)
- feat(agents): Propagate agent session provenance (#3319)
- feat(cases): Record agent case mutations (#3329)
- feat(agents): Replace preset button with @ mentions (#3333)
- feat(cases): Backfill agent mutation interactions (#3335)
- feat(agents): Filter agent runs by case (#3340)
- feat(agents): Link cases to filtered agent runs (#3342)
- fix(cases): Preserve invocation failure on cancellation (#3385)
- feat(cases): Add rich text comments (#3407)
- feat(cases): Add case field resolver (#3405)
Tables
- fix(tables): Preserve NULL for TEXT columns in to_sql_clause (#3365)
- feat(tables): Add TableFieldResolver for the shared query model (#3392)
- feat(tables): Add internal row aggregation endpoint (#3404)
Agents
- fix(agents): Scope uv cache to executor jobs (#3210)
- fix(integrations): Correlate MCP integration refs on workspace pull (#3240)
- fix(ui): Correct MCP and Skills navigation UI (#3251)
- feat(ui): Inline version diff for agent presets (#3253)
- fix(agents): Disable tool search for Bedrock models (#3257)
- feat(agents): otel config and deployment plumbing (#2638)
- feat(agents): otel wiring (#2650)
- feat(agents): Configurable timeouts (#3050)
- fix(agents): Grant required session execution scopes (#3308)
- feat(mcp): Add staged skill directory uploads (#3239)
- fix(api): Restore fail-open Temporal attribute registration (#3337)
- chore(agents): Drop unused OTel platform override (#3277)
- fix(integrations): Preserve nested workflow catalog IDs (#3302)
- feat(agents): otel ui (#2649)
- feat(agents): Add Claude Opus 5 to platform catalog (#3354)
- feat(agents): Classify durable runtime failures (#3368)
- feat(api): Add shared filter predicate compiler (#3376)
- fix(agents): Attribute durable agent initialization failures (#3384)
- fix(agents+mcp): Correct prompt and Workspace Chat guidance (#3326)
- feat(api): Add group-by aggregation compiler (#3380)
- refactor(agents): Drop pydantic ai (#3367)
- feat(logging): Trace webhook workflows through agents (#3275)
- feat(agents): Resolve dependencies through resource heads (#3345)
Tracecat MCP
- fix(engine): Persist action environment on create and edit (#3278)
- feat(integrations): Retire broken MCP catalog stdio recipes (#3312)
- fix(ui): Polish MCP catalog badges, logos, and empty state (#3318)
- feat(mcp): Add create_column tool for tables (#3396)
- fix(mcp): Keep MCP instructions under the prompt budget (#3399)
- feat(mcp): Trim server instructions and add workflow authoring guide (#3400)
- fix(mcp): Support regional Datadog OAuth endpoints (#3352)
Integrations
- fix(integrations): Send tavily search depth as search_depth (#3020)
- feat(integrations): Add GitHub search and gist actions (#3285)
- feat(integrations): Add Rippling HRIS integration (#3286)
- feat(integrations): Add Jamf Pro and Iru MDM integrations (#3287)
- feat(integrations): Add OSINT and threat intelligence provider templates (#3288)
- fix(integrations): Repair bracketed pagination inputs and numeric ID filters (#3291)
- feat(integrations): Support Shared Drives across the Drive integration (#3295)
- feat(integrations): Revamp Google integrations with multi-source auth (#3310)
- feat(integrations): Add a user OAuth grant to google_admin (#3314)
- fix(ui): Add delete action for custom OAuth providers (#3320)
- feat(integrations): Add the Google SecOps remote MCP catalog row (#3323)
- feat(integrations): Add Google Chronicle actions (#3322)
- feat(integrations): Add Microsoft Graph security and Outlook actions (#3332)
- feat(integrations): Add Databricks and Snowflake integrations (#3331)
- fix(integrations): Form-encode Snowflake OAuth basic credentials (#3334)
- feat(integrations): Add plaintext alternative body for HTML emails (#3339)
- feat(integrations): Add Recorded Future registry templates (#3348)
- feat(integrations): Add Google Cloud Logging audit search (#3350)
- feat(integrations): Add 1Password SDK and Events API (#3349)
- feat(integrations): Add remote Glean MCP server (#3397)
- feat(integrations): Add Splunk remote MCP server (#3398)
Engine
- fix(engine): Cache jsonpath parser to fix import-lock deadlock (#3217)
- perf(engine): Share platform registry manifest cache (#3170)
- fix(engine): Recover stale loop device nodes (#3261)
- fix(engine): Enforce registry cache capacity invariants (#3262)
- fix(engine): Retry transient registry cache contention (#3264)
- fix: Retry actions after heartbeat timeouts (#3266)
- fix(agents): Harden expression resolution at durable sinks (#3234)
- feat(engine): Define versioned error envelope (#3267)
- feat(engine): Thread error envelopes through workflows (#3268)
- feat(engine): Classify activity-origin failures (#3270)
- fix(engine): Preserve runtime error attribution (#3351)
- fix(engine): Classify remaining runtime failures (#3353)
- feat(logging): Capture classified platform failures (#3358)
- feat(logging): Trace API workflows through Temporal (#3274)
- fix(engine): Preserve workflow failure through handler errors (#3373)
- test(engine): Wait for supervisor monitor exit (#3377)
- test(engine): Remove obsolete import race stress test (#3378)
- fix(infra): Pass PUBLIC_APP_URL to workflow worker (#3391)
- feat(engine): Classify sandbox resource-limit failures (#3406)
- fix(engine): Withhold secret-dependent errors (#3416)
API
- feat(api): Add universal cursor pagination (#3256)
- docs: Split EE RBAC pages, make user management UI-driven (#3300)
- feat(api): Add aggregation query execution safeguards (#3381)
User interface
- fix(ui): Centralize React Query error handling (#3271)
- fix(rbac): Expose integration permissions (#3294)
- feat(ui): Move custom registry management into org settings (#3304)
Infrastructure
- fix(engine): Bound registry artifact cache with leased LRU eviction (#3139)
- fix(engine): Raise NSTUN UDP capacity to 2048 (#3252)
- fix(api): Leave org enrollment to provisioning and invitations (#3297)
- docs: Expression reference, cheatsheets, and navigation reorg (#3296)
- feat(logging): Add platform tracing runtime (#3273)
- feat(logging): Add structured cloud logs (#3357)
- docs(self-hosting): Temporal retention and S3 archival (#3363)
- ci: Enforce commit conventions and rebuild release-note sections (#3361)
- ci: Keep each pull request in one release-notes section (#3369)
- ci: Reject workflows as a scope, it names two different things (#3370)
- ci: Stop the dedupe step untagging the draft release (#3371)
- ci: Stop enterprise deciding the release-notes section (#3372)
- ci: Reject GitHub's revert titles in favour of revert(scope) (#3375)
- fix(infra): Remove Glacier transitions from Fargate buckets (#3415)
Observability
- refactor(logging): Emit compact structured records (#3359)
- feat(logging): Capture unexpected API failures in Sentry (#3388)
- fix(logging): Capture ActionGateway failures in Sentry (#3417)
Documentation
- docs: Add voice conventions and CLAUDE.md symlink (#3225)
- docs: Manage platform pages, agent timeouts, and org enrollment (#3298)
- docs: Clarify Enterprise license requirement (#3311)
- docs: Clarify secret environment use cases (#3317)
- docs: Split core actions nav and rewrite git sync guide (#3360)
- docs: Add air-gapped deployment reference (#3387)
Performance
- perf: Avoid reloading registry templates (#3321)
Dependencies
- fix(engine): Preserve gateway during shutdown (#3260)
Fixes
- fix(api): Supervise in-process lifespan background tasks (#3330)
Full changelog: 1.0.0-beta.51...1.0.0-beta.52