Replace register/replace with publish so new graphs can ship without rewriting old ones, and keep in-flight work on the version it started with.
Co-authored-by: Cursor <cursoragent@cursor.com>
Lower the compiler baseline to 17, rename listDefinitions to queryDefinitions, and align README/usage/roadmap with planned vs out-of-scope work.
Co-authored-by: Cursor <cursoragent@cursor.com>
Give hosts an append-only timeline, post-commit OrdoEventListener hooks, and durable ACTION results without blocking the approval flow.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added query method to InMemoryApprovalTaskRepository for filtering and pagination of approval tasks.
- Enhanced InMemoryProcessInstanceRepository with query method for filtering and pagination of process instances.
- Introduced Page and PageRequest classes for handling paginated results.
- Updated JdbcApprovalTaskRepository and JdbcProcessInstanceRepository to support querying with pagination.
- Added tests for querying, filtering, and pagination in InMemory and JDBC repositories.
- Implemented dynamic WHERE clause building for SQL queries in PageSupport.
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>
Lightweight linear approval engine (v0.1):
- ordo-api: domain model, OrdoEngine port, repository SPI with
conditional updates (insertIfAbsent, completeIfPending) and a
TransactionExecutor port for atomic multi-step writes
- ordo-core: DefaultOrdoEngine running register/start/approve/reject
inside a transaction boundary; in-memory engine and repositories
- ordo-storage-jdbc: thread-bound JDBC transactions, normalized V1
schema migration, Jackson-based ProcessContext JSON codec
- tests: unit tests plus H2 integration tests; PostgreSQL integration
tests run against a local instance via ordo.test.pg.* properties and
skip when unreachable
Co-Authored-By: Claude Code <noreply@anthropic.com>