version:8.10.0-alpha3-rc1
Enhancements
Misc
- Add OpenSearch metrics to Zeebe dashboard (#51833)
- Implement CREATE AgentHistoryRecord processor for conversation/history (#51795)
- Container: Exporter changes for agent conversation/history data (#51521)
- Exporter changes for agent instance metrics data (#51512)
- Replication lag monitoring for MSSQL (#51486)
Bug Fixes
Misc
- Flaky: per-PT multi-tenant authorization ITs time out on awaitAdminReady in CI (#56006)
- Non-PT / SaaS deployments: 500 on webapp access — SessionStoreAdapter routes session via throwing PhysicalTenantContext.current() (#55849)
- Soft-pausing followed by hard pause exporting breaks the persisted exporting state (#55838)
- Agentic Control Plane — KPI tile label uses incorrect terminology "Completed agent runs" instead of "Total Executions" (#55837)
- OpenSearch exporter does not apply number of shards/replicas configuration property (#55658)
- Archiver rescheduling task crashes with RejectedExecutionException when executor is already terminated (#55650)
- Waiting status remains on cancelled element after moving token (#55643)
- Details panel shows "Waiting" for multiple active elements (#55640)
- Disabled exporter re-added via leader state distribution pins log compaction (disk fills up) (#55585)
- KeyGenerator overwritten by rejection records during replay (causes key jump / overflow) (#55571)
- fix(optimize): HTTPS connector not activating TLS on embedded Tomcat in Optimize (#55403)
- load-test: broken port-forward prevent successful smoke test verification (#55363)
- [Bug] wait-states/search:
retriesfield returns configured value instead of current remaining count on incident (#55274) - Variable filter cannot find process when variable value is very long (around 8191+ characters) (#55176)
- Element is not shown as active while waiting for multi-instance beforeAll execution listeners (#55120)
- Decision result column for rdbms exporter too small (#55114)
- New Document Unified Config should handle storeId in lowerCase like legacy does (#54999)
- Flaky test: AuditLogResourceOperationsIT#shouldTrackDecisionInstanceHistoryDeletion (#54984)
- JobActivationPropertiesImpl.fetchVariables() does not deduplicate, causing corrupt MsgPack when streaming with duplicate fetchVariables names (#54929)
- DbVariableState.getVariablesAsDocument writes corrupt MsgPack map header when fetchVariables contains duplicate names (#54917)
- Improvements in debug-cli update state commands (#54885)
- c8run: bundled JRE signed without JIT entitlements on macOS, crashing on Apple Silicon (#54877)
- c8run: JavaVersion.class compiled for Java 25 on stable re-releases, breaking users on Java 21–24 (#54876)
- Deployed jpg files are corrupted when downloaded (#54837)
- getMessageKeys() removed from public MessageBatchRecordValue breaks custom exporters (#54823)
- Optimize
DefinitionServicethrows NPE on missingprocessDefinitionVersion(#54800) - feat(debug-cli): offline command to reset exporter lastIncidentUpdatePosition (SUPPORT-32468) (#54768)
- [Operate] Instance History panel flickers and loops when scrolling to the end of a partial last page (#54763)
- Version compatibility CI broken for 8.8.25: brokers default to nodeId=0, failing Raft storage lock (#54663)
- WaitStateTransformer logs ERROR for execution/task listener jobs on PROCESS, SUB_PROCESS, USER_TASK (#54652)
- Filtering process instances by a variable with $eq: "null" returns 500 (#54636)
- [CPT] Variable-based semantic similarity assertions retries inside Awaitility loop (#54576)
- Optimize fail to deserialize
tags(#54425) - Edit/Delete action button is misplaced on tenant details page (#54365)
InflightActivateJobsRequestobjects accumulate in gateway heap when workers disconnect during broker instability (#54159)- PATCH
/v2/agent-instances/{agentInstanceKey}returns 400 INVALID_ARGUMENT instead of accepting a no-operation request when onlyelementInstanceKeyis provided (#54091) - Bug: Variable filter UX issues with scrolling and border offset in Operate (#54085)
- Filtering process instances by numeric variable with $eq returns 0 results (#54078)
- POST
/v2/agent-instancesreturns 503 UNAVAILABLE instead of 400 INVALID_ARGUMENT whenelementInstanceKeyis zero or negative (#54049) - Fix dead code in ProcessDefinitionLatestVersionAggregationTransformer that leads to wrong aggregation size (#53998)
- perf: avoid byte[] allocation when reading snapshot chunks for replication (#53803)
- bug: @ClusterVariables annotation fails on application restart due to non-idempotent variable creation (#53570)
- Slow Job CI Optimize E2E smoke tests (#53485)
- Flaky test: RingBufferTest.findAndRemoveWorksAcrossThreads times out (#53291)
- User task listeners added in target process are not invoked after migrating an active user task (#53122)
- Audit log doesn't track history delete operations (#52469)
- Operate 8.9: "Process Name" filter only loads first 100 process definitions (#51622)
- Tasklist V2 candidateGroup filter does not resolve Group IDs to Group Names after 8.8 migration (#51608)
- NullPointerException in StartEventSubscriptions.resubscribeToStartEvents during process deletion (#51425)
- fix: c8run startup reports success even when Connectors fail to start (#51385)
- Get process instance statistics API returns 500 when sorting by processDefinitionId (#50945)
- Broker does not shutdown after ClassCircularityError during S3 backup (#50913)
- Modal dialog for adding groups to role is flickering (#50090)
- Performance: Avoid unnecessary exception wrapping in BrokerRequestManager (#46132)
- Operate – Incorrect process instances count when selecting flow node without active token (#45156)
- Expected to handle gRPC request, but an unexpected error occurred (#44897)
- Job reactivation does not add authorizations to request (#42076)
- Ad-hoc sub-process inner instance popover shows wrong flow node instance data (#39141)
- I am allowed to change the resource type in create authorization modal (#34889)
- 8.7 - After Golang update, Unix executable file flag as unverified application. (#25177)
Maintenance
- fix: remove key field from TenantFilter and MappingRuleFilter builders (#51089)
- fix: remove key field from UserFilter and GroupFilter builders (#51088)
Task
- Fix getTopology() calls that silently use the default tenant in per-tenant contexts (#56015)
- feat: add Operate CollapsablePanel, FiltersPanel, Frame (#55981)
- Scope conversation history to selected element instance (#55912)
- Extend ASSERT_VARIABLE satisfiesJudge JSON instruction with document attachment (#55813)
- Scope RDBMS async-replication backpressure per physical tenant (#55780)
- PT gRPC: inject handler registry into embedded broker gateway; remove legacy ctor + PhysicalTenantInterceptor (#55755)
- PT gRPC: merged PT-aware interceptor + Gateway registry ctor; wire standalone gateway (#55754)
- PT gRPC: build the per-PT AuthenticationHandler registry as a shared bean (fail-fast) (#55753)
- PT gRPC: consume CSL per-PT OidcClaimsProvider factory for bearer-token claim augmentation (#55752)
- PT gRPC: expose per-PT AuthenticationConfiguration from the authentication module (#55751)
- Migrate Operate Processes page to unified webapp (#55735)
- Add metric overviews to usage section and conversation messages (#55713)
- Add "available tools" section to agent details (#55711)
- [s-tile-tool-calls-kpi] Implement Total tool calls KPI tile for the agentic control dashboard (#55695)
- Engine: Propagate Business ID to jobs (#55685)
- Engine: Propagate Business ID to user tasks (#55684)
- Engine: Propagate Business ID to decision instances (#55683)
- Migrate Operate Batch Operations page to unified webapp (#55642)
- Fail cluster startup when a physical tenant's security configuration cannot be built (#55606)
- Skip required initialization-override validation when authorization is disabled on a physical tenant (#55598)
- Fix broken SM nightly command for Optimize (#55509)
- Exclude agentic control reports from the Optimize dashboard "Add a Report" picker (#55508)
- Enable agent instance on EL/OS exporter (#55507)
- Engine integration tests — executable specification for Message Business ID correlation (#55502)
- migrate Operate bpmn-js viewer to unified webapp (#55456)
- Ensure PT scoped configurations and beans are injected to PartitionManager and Engine (#55444)
- Multi-physical-tenant authorization integration tests + harness (#55443)
- Per-PT CamundaSecurityLibraryProperties (per-PT authorization enablement) (#55442)
- Make AdminUserPresenceAdapter physical-tenant aware (per-PT roleServices) (#55441)
- Route identity & membership resolution to the in-context PT (DefaultMembershipService, BasicCamundaUserService) (#55440)
- Route control-plane permission checks (AuthorizationRepositoryAdapter) to the in-context PT (#55439)
- Route data-plane authorization to the per-PT ResourceAccessController (no default) (#55438)
- Fail-fast PhysicalTenantContext.current() outside request scope (#55437)
- Optimize: move repeated DB/query strings into constants (#55433)
- Fix failing PosixSegmentAllocatorTest on OS X (#55391)
- Add bpmnProcessId to AGENT_HISTORY protocol and engine processor (#55374)
- PT webapp: per-PT admin-user presence for the BASIC setup redirect (#55316)
- PT webapp: per-PT durable web-session storage via PhysicalTenantScoped (#55315)
- PT webapp: make the served SPA physical-tenant-prefix-aware (base href + client-config) (#55314)
- PT webapp: serve webapp routes + static assets under the physical-tenant prefix (#55313)
- [s-tile-failure-rate-by-version] Seed failure rate by version report (#55294)
- AgentHistory search — CamundaClient support (#55272)
- AgentHistory search — Elasticsearch/OpenSearch secondary storage reader (#55268)
- AgentHistory search endpoint — controller, DTOs, transformers, and service delegation (#55267)
- Engine-side ES/OS exporter: index templates for AgentHistory record types (#55263)
- RDBMS Exporter: AgentHistory write path (#55262)
- Physical-tenant routing of the authorization layer (memberships + authorization decision reads) (#55252)
- migrate Operate Dashboard page to unified webapp (#55248)
- [s-tile-duration-stability] Seed duration stability report for agentic dashboard (#55211)
- Enforce restricted secondary storage data types via tests (#55188)
- Cross-tenant storage location collision validator (#55171)
- Bind per-tenant
DocumentServicesto tenant-scoped store backend (#55170) - Scale/Patch cluster API must be zone aware (#55163)
- Add Operate setup to unified webapp (#55103)
- JobWaitStateDetails#listenerEventType should be null for non-listener job-based wait states (#55097)
- [Nice to have] Add variable search: filter variables by name (#55082)
- Fix incident rate KPI: implement scoped percentage execution plan for agentic process instances (#55045)
- Fix Java client OpenAPI generator to correctly emit discriminator-based class hierarchies (#54935)
- Export start message subscription once for deployment partition (#54927)
- Retry logic for message-starts rejected on Business ID uniqueness or subscription distribution (#54924)
- Introduce top-level DocumentReferenceValue and use for agent history/document references (#54912)
- OC: extend CSL SecurityProperties so security config joins the unified config tree (#54908)
- Physical Tenants Identity — Slice 2: gRPC PT support (#54896)
- [s-tile-duration-kpis] Seed P50 and P95 duration reports for agentic control dashboard (#54848)
- ExporterDirector can run for non-default partition groups (#54830)
- Server transport can subscribe to given partition group (#54828)
- Extend nightly tests to cover stable branches (#54790)
- [s-tile-token-kpis] Implement avg and median tokens per execution number tiles (#54766)
- Enforce forbidden-override and required configuration validation (#54731)
- Control IdP per physical tenant by assigned property (#54730)
- Physical Tenants Identity — Slice 1: API chain per PT provided by CSL (#54728)
- MVF: Enable Multi-Variable Filter v2 feature (#54716)
- feat: physical tenant followups for rest & mcp gateway (#54651)
- [nice-to-have] Prevent serializing unchanged metadata (#54643)
- [s-tile-execution-kpis-frontend] 2/2 Seed 3 execution KPI reports in AgentDashboardService (#54627)
- [Nice to have] Add variable filter button: show only variables containing documents (#54610)
- Track request source in audit logs for MCP calls (#54581)
- Support requestSource in record metadata (#54580)
- [FE] Remove feature flag for agent instances (#54568)
- [FE] AI Agent Visibility: Add markdown preview to agent/user messages in Operate frontend (#54555)
- [s-shell-service] 2/2 Add processScope filter to dashboard availableFilters (#54528)
- [s-shell-service] 1/2 AgentDashboardService skeleton + idempotent seeding (#54527)
- Corrupted Document Preview Error Handling (#54478)
- Add Camunda Client wait state search command (#54444)
- Adapt unified webapp monorepo architecture to support reorg pod structure (#54300)
- Display all documents in truncated documented lists (#54296)
- Add Spectral rule for security annotation (#54268)
- [s-shell-filter-api] 1/2 Process Definition Scope filter (#54264)
- feat: make
GatewayRestConfigurationavailable per tenant (#54227) - Wait states tracking can be configured (#54225)
- Use pattern
$zone_$nodeIdxinstead of/for brokerId (#54195) - Create RDBMS lookup table and exporter for process definition key (#54166)
- [s-shell-frontend] 2/2 Process ComboBox + L0/L1 scope wiring (#54128)
- migrate Admin UI to tanstack query (#54117)
- uncouple defaultRoleIDs in identity frontend (#54115)
- Zone must be configured to only use alphanumeric characters or
-(#54106) - test: add missing test coverage for AgentInstance CREATE and UPDATE commands in CamundaClient (#54094)
- [s-engine-plans] 4/4 Add ProcessViewAgent metric interpreters (ES+OS) with tests (#54075)
- [s-engine-plans] 3/4 Add ProcessGroupByProcessDefinitionKey/Version interpreters (ES+OS) with tests (#54074)
- [s-engine-plans] 2/4 Add 17 agent execution plans and register in GenericProcessExecutionPlanInterpreter (#54073)
- MVF: iinitial-interaction pattern for the variable filter (#54033)
- MVF: Fields <=> JSON switch (#54031)
- MVF: smart value transformations (#54029)
- Implement RDBMS exporter handlers for waitings states (#53997)
- Implement Camunda exporter handlers for waiting states (#53996)
- Implement common exporter handling code for waiting states (#53994)
- PartitionReassignTransformer is using RoundRobinDistributor to assign new partitions/brokers (#53982)
- Migrate layout and fetching for orchestration cluster webapp frontend (#53942)
- Migrate tasks custom filters for orchestration cluster webapp frontend (#53940)
- Migrate tasks builtin filters for orchestration cluster webapp frontend (#53939)
- Setup Tasklist tasks fetching for orchestration cluster webapp frontend (#53937)
- Setup layout + header for orchestration cluster webapp frontend (#53934)
- [M2-9] Single-job priority update — Java client (#53857)
- [M2-8] Single-job priority update — gRPC: UpdateJobPriority RPC (#53856)
- [M2-7] Single-job priority update — REST/API (#53855)
- [M2-6] Single-job priority update — engine (#53839)
- [M2-5] Operate UI: "Job Priority" row in Details tab + Zod schema update (#53838)
- [M2-4] Java client: ActivatedJob.getPriority() accessor (#53836)
- Expand filter and sort surface for AgentInstance search endpoint (#53823)
- Setup notifications for orchestration cluster webapp frontend (#53821)
- Expose Business ID across gRPC, REST, and clients (#53726)
- Use OpenAPI schema types for
DocumentReference(#53725) - Publish one BrokerInfo per broker per partition group (#53503)
- [FE] AI Agent Visibility: Move agent status into accordion (#53481)
- Advanced Business ID Filters in Operate (#53402)
- Pull-based correlation-key lock release for cross-partition message-starts with Business ID (#53400)
- Add documentatio for C7/C8 id/key terminology convention in C8 Optimize (#53375)
- [refactoring] New frontend files to be moved to TS/TSX (#53304)
- [s-shell-frontend] 1/2 Route fix + date filter dropdown (#53300)
- Add
rootProcessInstanceKeyto AGENT_INSTANCE record and populate in processor (#53236) - Establish AGENTS.md as a real file (#53129)
- [FE] AI Agent Visibility: Collapsible status with tool calls and last message (#52969)
- Document List Detail Modal in Variables Tab (#52915)
- Add expression validation for versionTag (#52911)
- Evaluate versionTag expressions for called decisions (#52910)
- Support Expressions in the Executable Model and Transformer (#52909)
- Support version tag as expression in the BPMN model builder API (#52908)
- Implement CamundaClient support for agent-instance Get/Search endpoints (#52821)
- Implement agent-instance Get/Search endpoints (RDBMS secondary storage) (#52820)
- Migrate backup to string node identifier (#52809)
- Define engine record and intents for agent messages (#52806)
- feat(mcp): resolve
physicalTenantIdfrom mcp gateway (#52573) - Document Preview Analytics Events (#52208)
- Document Preview Visual Regression Tests (#52207)
- Expired Document Handling (#52206)
- JSON Preview for documents in Variable Tab (#52205)
- PDF Preview for documents in Variable Tab (#52204)
- Image Preview for documents in Variable Tab (#52203)
- Document Download (#52202)
- Define Query API spec for agent instance history endpoints (#52123)
- Enhance conditional subscription records with wait state data (#51992)
- Export timer subscriptions to secondary storage (#51977)
- [FE] AI Agent Visibility: BPMN Agent Status Overlay (#51935)
- [FE] AI Agent Visibility: Conversation History (#51928)
- MVF: investigate
contains× truncated-value silent-miss edge case (#51812) - Track multiple element instances per agent instance (#51513)
- Setup AI skills and agent for orchestration cluster webapp frontend (#51326)
- Start event message subscriptions search - phase 4 (#51043)
- Round evaluation scores to two decimal places before threshold comparison (#50583)
- Enrich judge assertion context with binary content from Camunda documents (#50557)
- Add input variable aware job and user task completion (#50556)
- Define CPT JSON Instruction for conditional behavior API (#50555)
- Add advanced filtering to Tasklist by process instance or process definition in the V2 API (#50122)
- Inspect an intermediate conditional catch event (#49693)
- Inspect an intermediate/end message throw event (#49430)
- Inspect message-based wait states (Receive Task, Intermediate Message Catch Event) (#48570)
- Inspect a User Task (#48556)
- Inspect a Service Task (#48548)
- Define CPT JSON Instruction for Semantic Similarity Assertion (#46465)
- Add command distribution metrics to measure distribution delay/latency (#40360)
Documentation
- ADR: Business ID Call Activity Propagation BPMN Extension (#56154)
- Document design decisions for 'Business ID as Message Correlation Constraint' in ADRs (#54915)
Merged Pull Requests
- Fix missing CODEOWNERS entries for CI and frontend skills (#55819)
- feat: run acceptance tests under a physical tenant (#55350 Goal 4) (#55768)
- propagate business ID from process instance to user tasks (#55686)
- feat: support SSE-C for S3 backup store (#55196)
- Implement AgentHistory.CREATE processor (#55169)
- feat: add Operate setup to unified webapp (#55105)
- deps: Update dependency org.openapitools:openapi-generator-maven-plugin to v7.22.0 (main) (#53367)
- feat: add reusable camunda-delete-load-test workflow (#52681)