v0.12.0
What's Changed
- rfcs: draft RFC-023 SQLite dev-only backend (Temporal-pattern, cairn testing consumer) by @avifenesh in #361
- rfcs: RFC-023 Round-3 surgical fixes (B-R3 findings) by @avifenesh in #362
- rfcs: promote RFC-023 to accepted (post Round-3 narrow fix, unanimous approval across 3 reviewers) by @avifenesh in #363
- rfcs: RFC-023 Revision 4 — 6 Round-3 structural fixes by @avifenesh in #364
- rfcs: RFC-023 Revision 5 — §4.4 item 10 worker.rs surgery scope by @avifenesh in #366
- feat(backend-sqlite): Phase 1a — non-SQL surface + worker.rs backend-agnostic refactor by @avifenesh in #367
- feat(backend-sqlite): Phase 1b — 14 SQLite-dialect migrations + parity-drift lint by @avifenesh in #368
- feat(backend-sqlite): Phase 2a.1 — query-module scaffolding + retry_serializable + busy classifier by @avifenesh in #370
- rfcs: RFC-023 Revision 6 — BackendTag::Sqlite + wire byte 0x03 + match-site audit by @avifenesh in #373
- feat(ff-core+backend-sqlite): Phase 2a.1.5 — BackendTag::Sqlite variant + wire byte 0x03 + codec by @avifenesh in #374
- feat(backend-sqlite): Phase 2a.2 — claim/complete/fail hot-path impls + attempt/exec_core queries by @avifenesh in #375
- feat(backend-sqlite): Phase 2a.3 — lease lifecycle + progress + append_frame by @avifenesh in #376
- feat(backend-sqlite): Phase 2b.1 — producer exec/flow + pubsub foundation (Group A + D.1) by @avifenesh in #377
- feat(backend-sqlite+core): Phase 2b.2.1 — suspend/signal/waitpoint producer + HMAC crypto extraction by @avifenesh in #378
- feat(backend-sqlite): Phase 2b.2.2 — stream readers + outbox-cursor-reader helper (completes Phase 2) by @avifenesh in #379
- feat(backend-sqlite): Phase 3.1 — subscribe_completion/lease_history/signal_delivery via OutboxCursorReader by @avifenesh in #381
- feat(backend-sqlite): Phase 3.2 — Wave 9 operator control (4 methods) + producer tag backfill by @avifenesh in #382
- feat(backend-sqlite): Phase 3.3 — Wave 9 read model + cancel-flow split + list_pending_waitpoints (6 methods) by @avifenesh in #383
- feat(backend-sqlite): Phase 3.4 — Wave 9 budget/quota admin (5 methods) + report_usage_impl breach-counter extension by @avifenesh in #384
- feat(backend-sqlite): Phase 3.5 — scanner supervisor (N=1) + budget_reset reconciler (completes Phase 3) by @avifenesh in #385
- rfcs: draft RFC-024 reclaim wiring for pull-mode deadlock (#371) by @avifenesh in #388
- rfcs: RFC-024 Revision 2 — address Round 1 findings (owner decisions locked) by @avifenesh in #390
- fix(ferriskey+loader): FUNCTION LOAD cluster slot refresh between retries (closes #369) by @avifenesh in #386
- rfcs: promote RFC-024 to accepted (Round 2 unanimous) by @avifenesh in #391
- fix(backend-sqlite): claim writes public_state + is_memory detects mode=memory URIs (closes #372) by @avifenesh in #392
- fix(pg-backend+docs): Wave 9 follow-ups — lifecycle_phase adapter doc (#354) + attempt.outcome on cancel (#355) + ff_exec_core.started_at_ms (#356) by @avifenesh in #393
- bench(apalis): refresh per @geofmureithi tuning recommendations (#51) by @avifenesh in #396
- feat(ff-core): RFC-024 PR-A — ReclaimGrant→ResumeGrant + ReclaimToken→ResumeToken + HandleKind::Reclaimed by @avifenesh in #394
- docs(v0.12): Phase 4b — CONSUMER_MIGRATION_0.12 + DEPLOYMENT + dev-harness + MIGRATIONS + parity matrix + README + RELEASING by @avifenesh in #399
- feat(backend-sqlite): v0.12 Phase 4c — atomic Supports flag flips (SQLite Wave 10 live) by @avifenesh in #397
- feat(ff-core+workspace): RFC-024 PR-B+C — trait method renames + new ReclaimGrant type + drop aliases by @avifenesh in #400
- feat(examples+scripts): v0.12 Phase 4a — ff-dev headline example + smoke-sqlite.sh by @avifenesh in #398
- feat(pg-backend): RFC-024 PR-D — issue_reclaim_grant + reclaim_execution + migration 0017 by @avifenesh in #403
- feat(backend-valkey+script): RFC-024 PR-F — issue_reclaim_grant + reclaim_execution + Lua ARGV[9] by @avifenesh in #402
- feat(backend-sqlite): RFC-024 PR-E — issue_reclaim_grant + reclaim_execution + migration 0017 by @avifenesh in #401
- fix(backend-sqlite): enable libsqlite3-sys bundled feature per RFC-023 §7.1 by @avifenesh in #405
- chore: doc nits sweep + reclaim cap-exceeded cross-backend verification by @avifenesh in #406
- fix(pg-backend): reclaim cap-exceeded outbox + lease_epoch monotonicity (cross-backend parity) by @avifenesh in #404
- feat(ff-sdk+ff-server+docs): RFC-024 PR-G — SDK admin surface + worker dispatch + CONSUMER_MIGRATION_0.12 by @avifenesh in #407
- fix: propagate streaming feature gates in backend crates (unblock release-automation lint) by @avifenesh in #410
- fix: add constructors for 8 public #[non_exhaustive] structs (unblock release-automation lint) by @avifenesh in #409
- feat(core): add EngineBackend::read_execution_context trait method (v0.12 agnostic-SDK prep) by @avifenesh in #411
- chore: add release automation guardrails (publish-list, non_exhaustive, lua-version, feature-propagation) by @avifenesh in #408
- fix: scope ff-core feature edges to core-only across scheduler/engine/sdk/backends (unblock agnostic-SDK compile anchor) by @avifenesh in #412
- refactor(sdk): drop dead client field on ClaimedTask; ungate task.rs module (agnostic-SDK PR-2) by @avifenesh in #413
- refactor(engine): trait-object backend param for start_with_completions (agnostic-SDK PR-7a) by @avifenesh in #414
- refactor(sdk): extract Valkey connect preamble; ungate admin/snapshot modules (agnostic-SDK PR-6) by @avifenesh in #415
- refactor(sdk+core): ungate deliver_signal; route claim_from_resume_grant through trait (agnostic-SDK PR-3) by @avifenesh in #416
- refactor(sdk+core): add EngineBackend::claim_execution; route claim_from_grant through trait (agnostic-SDK PR-4) by @avifenesh in #417
- refactor(sdk+core): trait-route claim_next scanner primitives (agnostic-SDK PR-5) by @avifenesh in #418
- refactor(sdk+core): ungate ClaimedTask + claim paths (agnostic-SDK PR-5.5) by @avifenesh in #419
- docs: add v0.12 trait-method parity rows + consumer-migration §limitations (pre-tag) by @avifenesh in #421
- docs(core): align read_current_attempt_index rustdoc with cross-backend behavior by @avifenesh in #420
- ci(release): add pre-publish smoke-sqlite leg by @avifenesh in #422
- feat(examples): add incident-remediation scenario (SC-10) demonstrating RFC-024 reclaim by @avifenesh in #425
- fix(ferriskey): FanOut with AllSucceeded must refresh + retry on READONLY (unblock v0.12 cluster smoke) by @avifenesh in #426
- ci: reclaim disk on ubuntu-latest runners to prevent integration-test link OOM by @avifenesh in #424
- fix(ferriskey): close remaining FUNCTION LOAD cluster READONLY path (v0.12 tag-blocker residual) by @avifenesh in #427
- chore(ff-test): install tracing subscriber for integration tests (unblock arm-cluster READONLY diagnosis) by @avifenesh in #430
- fix(ferriskey): use NotThrottable on error-driven slot-refresh paths by @avifenesh in #429
- chore(release): v0.12.0 by @avifenesh in #423
Full Changelog: v0.11.0...v0.12.0