v0.8.2
Contract-true OpenAPI, richer entity queries, and transaction-joined compute callbacks.
This release sharpens the API/OpenAPI contract and deepens the entity data layer. Highlights:
- Search result sorting — order results by any scalar data or meta field, canonical across every backend.
- Partial entity updates (PATCH) — RFC 7386 merge-patch; stop destroying fields you didn't send.
- Composite unique keys — declare multi-field uniqueness on an entity model, enforced on create/update.
- Faster PostgreSQL search — predicates push down into SQL instead of loading and filtering in memory.
- Transaction-joined compute callbacks — processor/criteria callbacks join the originating workflow transaction.
- Renderer annotations on processors & criteria — display metadata on every workflow element (schema 1.2).
- Contract-true OpenAPI — error codes, response envelopes, and body shapes reconciled with the server.
meta-data → metaData, changeType spelling, search limit enforcement, and more). Review the breaking-changes section before upgrading.
📖 Read the full release notes — and explore the docs — at docs.cyoda.net. The documentation portal has guides, configuration schemas, API references, and architecture deep-dives to help you get the most out of Cyoda. · Changelog: https://github.com/Cyoda/cyoda-go/blob/main/CHANGELOG.md
Ships against cyoda-go-spi v0.8.2. Helm chart: cyoda-0.8.2.
What's Changed
- chore(helm): bump chart appVersion to v0.8.1 by @github-actions[bot] in #338
- fix(ci): use client-id for Homebrew tap App token (app-id deprecated) by @pschleger in #339
- feat: entity partial-update (PATCH / RFC 7386 merge patch) by @pschleger in #344
- chore: self-injecting skill gates (test-coverage + independent design review) by @pschleger in #345
- ci: auto-close referenced issues on merge into a release branch by @pschleger in #346
- docs(versioning): adopt 0.x patch-for-features convention; decouple SPI version from binary by @pschleger in #348
- fix: canonicalize point-in-time read semantics (inclusive <=, no rounding) by @pschleger in #350
- feat(postgres): search predicate pushdown (spi.Searcher) by @pschleger in #351
- feat: composite unique keys (scalar fields) — engine-internal UNIQUE constraint by @pschleger in #355
- fix(sqlite): same-tx delete+reclaim of a composite unique-key value by @pschleger in #356
- feat(search): client-controllable result sorting by field paths (#347) by @pschleger in #366
- feat(287): compute-node callbacks join the originating transaction by @pschleger in #368
- feat(openapi): contract status markers + live-or-marked conformance gate (Spec 1, ADR 0003) by @pschleger in #370
- feat(openapi): entity-group contract reconciliation — meta, conditional delete, PIT, error-code matrix (E1–E9 minus E6) by @pschleger in #371
- fix(test): make multinode cluster launch resilient to the port-collision flake by @pschleger in #375
- feat(openapi): stats/audit/search reconciliation — unknown-model 404 unification, fictional-surface removal, limit-cap coherence by @pschleger in #373
- ci: gofmt the tree + add a gofmt gate by @pschleger in #374
- feat(openapi): entity-model & workflow reconciliation + #369 documentation catch-up by @pschleger in #376
- feat(openapi): auth/OIDC reconciliation — ProblemDetail envelope, 409 duplicate, config-conditional 501 (#369 group 3) by @pschleger in #378
- feat(openapi): message reconciliation — flat metaData, ProblemDetail binding-400, body-shape fixes (#369) by @pschleger in #380
- feat(openapi): dead-surface disposition — SQL-Schema drift fixes, CQL cleanup, marker-backing invariant (#369) by @pschleger in #383
- chore(security): bump goldmark v1.7.13 → v1.7.17 (govulncheck GO-2026-5320) by @pschleger in #388
- fix(messaging)!: rename edge-message request field meta-data → metaData; add help topic by @pschleger in #387
- chore(security): bump Go toolchain 1.26.4 → 1.26.5 (govulncheck GO-2026-5856) by @pschleger in #389
- feat(workflow): renderer annotations on processors & criteria by @pschleger in #385
- chore(ci): bump azure/setup-helm v5.0.0 → v5.0.1 by @pschleger in #390
- release: v0.8.2 milestone bundle by @pschleger in #391
Full Changelog: v0.8.1...v0.8.2