Commit Graph
8 Commits
Author SHA1 Message Date
0264408andCursor bdc4dd4473 feat: add ACTION steps that run after the approval transaction commits
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 17:26:02 +08:00
0264408andCursor 87b449e45c feat: let initiators withdraw running process instances
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 16:39:17 +08:00
0264408andCursor 946c9d3c52 feat: replace process definition graphs when no instance is running
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-11 16:15:17 +08:00
0264408andCursor a6410b3dc4 feat: load process definitions from classpath JSON
Map the existing graph model from files so hosts can register flows without Java literals. Existing ids still insert-only on restart.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 19:48:25 +08:00
0264408andCursor 58ec867eab feat: add explicit conditional routing for approval steps
Require ProcessDefinition transitions so the engine can branch or end by conditionKey, persist them in JDBC, and pin repository text files to LF.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 18:56:59 +08:00
0264408 581823290a feat: support multi-approver steps with ANY/ALL policy
- ApprovalStep now has candidates + ApprovalPolicy (ANY/ALL) instead of a single assignee; ApprovalStep.single(...) kept as a convenience factory for the single-approver case
- AssigneeResolver resolves per-candidate; TaskStatus gains SKIPPED for auto-skipped sibling tasks
- DefaultOrdoEngine creates one task per candidate and advances per-step according to policy (ANY: first approval wins and skips the rest, only rejects once everyone rejects; ALL: fail-fast on first rejection, only advances once everyone approves)
- Added ApprovalTaskRepository.findByInstanceIdAndStepId and JDBC/in-memory implementations
- Added V2 migration: ordo_approval_step.policy column + ordo_step_candidate table
- Updated ApprovalStepMapper/ApprovalTaskMapper/JdbcProcessDefinitionRepository for the new schema, handling null action for SKIPPED tasks
- Migrated all call sites (tests, ordo-example, rhizome demo) to ApprovalStep.single(...) and the 3-arg AssigneeResolver
- Added ANY/ALL policy test coverage; fixed JdbcTestSupport to apply the V2 migration and strip SQL comments before splitting on ';'
2026-09-10 18:20:33 +08:00
0264408 c524c74289 fix: cross-Boot-version autoconfiguration and CI-friendly version resolution
- OrdoJdbcAutoConfiguration: use string-based @AutoConfigureAfter(name = ...)
  to reference both Spring Boot 3.x and 4.x DataSource/Flyway autoconfiguration
  classes, since Boot 4 relocated these to dedicated modules.
- flatten-maven-plugin: switch flattenMode from resolveCiFriendliesOnly to
  defaults so inter-module dependency versions are fully resolved (not just
  the project's own <version>) when installed, fixing dependency resolution
  for external consumers.
- Align sibling-module dependency versions to use \ consistently.
- Ignore generated .flattened-pom.xml files.
2026-09-10 10:26:59 +08:00
0264408 c782e6cdc3 feat: add spring boot autoconfiguration and starter modules with JDBC support 2026-09-09 11:08:17 +08:00