Skip to content

[prime-time] Saga idempotency end-to-end (durable applied-key reservation)#75

Merged
rickylabs merged 14 commits into
feat/framework-prime-timefrom
feat/prime-time/sagas-idempotency-e2e
Jun 20, 2026
Merged

[prime-time] Saga idempotency end-to-end (durable applied-key reservation)#75
rickylabs merged 14 commits into
feat/framework-prime-timefrom
feat/prime-time/sagas-idempotency-e2e

Conversation

@rickylabs

Copy link
Copy Markdown
Owner

Blocker slice sagas-idempotency-e2e

Framework prime-time blocker batch — sub-PR into the umbrella feat/framework-prime-time (#73).

  • PLAN-EVAL: PASS (OpenHands minimax-M3, separate session).
  • Approved plan: .llm/tmp/run/feat-framework-prime-time--supervisor/slices/sagas-idempotency-e2e/ (research.md, plan.md, plan-meta.json).
  • Implementation brief: .llm/tmp/run/feat-framework-prime-time--supervisor/slices/sagas-idempotency-e2e/implement-brief.md.
  • Implementation lane: WSL Codex daemon-attached agent (mobile-visible). Production/enterprise bar.
  • Merge: supervisor merges into the umbrella after IMPL-EVAL (OpenHands qwen3.7-max) PASS.

Draft until the implementation agent reports complete and gates are green.

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 1 complete: core applied-key store contract and memory default.

Commit: dc3d569 (feat(sagas): add applied-key store contract)

Gate evidence:

Gate Command Result
Core check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root packages/plugin-sagas-core --ext ts PASS
Targeted unstable check deno check --unstable-kv packages/plugin-sagas-core/mod.ts packages/plugin-sagas-core/src/ports/mod.ts packages/plugin-sagas-core/src/runtime/mod.ts packages/plugin-sagas-core/src/stores/mod.ts PASS
Core lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root packages/plugin-sagas-core --ext ts PASS
Core fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --ext ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 2 complete: core engine applied-key guard.

Commit: d6c1379 (feat(sagas): guard engine applied keys)

Scope:

  • SagaEngineOptions.appliedKeys now injects the applied-key store.
  • SagaEngineHandleResult.alreadyApplied returns a structured duplicate outcome.
  • Duplicate (instanceId, idempotencyKey) messages short-circuit before handler invocation and transition persistence.
  • Raw SagaEngine.publish(message, { idempotencyKey }) consumers are covered.

Gate evidence:

Gate Command Result
Engine tests deno test --unstable-kv packages/plugin-sagas-core/tests/runtime/saga-engine* PASS: 5 passed, 0 failed
Core check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root packages/plugin-sagas-core --ext ts PASS
Core lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root packages/plugin-sagas-core --ext ts PASS
Core fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --ext ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 3 complete: core README delivery guarantee.

Commit: 9ad4ef5 (docs(sagas): document idempotent delivery)

Scope:

  • Documents at-least-once saga delivery with idempotency keys.
  • Documents structured alreadyApplied: true duplicate outcome.
  • Clarifies memory stores are process-local and production roots must inject durable idempotency/applied-key stores.

Gate evidence:

Gate Command Result
Doc lint deno doc --lint packages/plugin-sagas-core/mod.ts PASS
Core check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root packages/plugin-sagas-core --ext ts PASS
Core fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --ext md,ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 4 complete: publish contract accepts idempotencyKey.

Commit: dcfb49d (feat(sagas): accept publish idempotency keys)

Scope:

  • Added optional idempotencyKey to PublishMessageInput.
  • Added matching PublishMessageInputZodSchema.idempotencyKey so oRPC no longer strips the key.

Gate evidence:

Gate Command Result
Contract check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root plugins/sagas/contracts --ext ts PASS
Contract lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root plugins/sagas/contracts --ext ts PASS
Contract fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root plugins/sagas/contracts --ext ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 5 complete: service publish path threads idempotencyKey.

Commit: b8570e8 (feat(sagas): thread service idempotency keys)

Scope:

  • Added idempotencyKey to service-local SagaRuntimeMessage, SagaRuntimePublishOptions, and SagaPublishMessageInput.
  • publishSagaMessage() now puts the key on the runtime message and passes it through publish options.

Gate evidence:

Gate Command Result
Service check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root plugins/sagas/services --ext ts PASS
Service lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root plugins/sagas/services --ext ts PASS
Service fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root plugins/sagas/services --ext ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 6 complete: plugin-layer KV idempotency stores.

Commit: 9f53a85 (feat(sagas): add kv idempotency stores)

Scope:

  • Added openSagaRuntimeKv() using NETSCRIPT_SAGA_KV_PATH.
  • Added KvSagaIdempotencyStore implementing existing SagaIdempotencyPort with atomic first-wins reservation and TTL.
  • Added KvSagaAppliedKeyStore implementing SagaAppliedKeyStore with atomic applied-key recording.
  • Exported the stores from plugins/sagas/src/runtime.

Gate evidence:

Gate Command Result
Runtime check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root plugins/sagas/src/runtime --ext ts PASS
Runtime lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root plugins/sagas/src/runtime --ext ts PASS
Runtime fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root plugins/sagas/src/runtime --ext ts PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 7 complete: durable idempotency wired into composition roots.

Commit: 8290297 (feat(sagas): wire durable idempotency roots)

Scope:

  • Sagas service startup opens saga KV and injects KvSagaIdempotencyStore plus KvSagaAppliedKeyStore.
  • Default native SagaRuntimeSupervisor creation lazily opens KV when stores are not injected, and closes the internally-opened KV handle on stop.
  • Plugin README documents at-least-once delivery with idempotency keys and NETSCRIPT_SAGA_KV_PATH.

Gate evidence:

Gate Command Result
Wiring check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root plugins/sagas/services --root plugins/sagas/src/runtime --ext ts PASS
Wiring lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root plugins/sagas/services --root plugins/sagas/src/runtime --ext ts PASS
Wiring fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root plugins/sagas/services --root plugins/sagas/src/runtime --file plugins/sagas/README.md --ext ts,md PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [SLICE: sagas-idempotency-e2e]

Slice 8 complete: unit, integration, and failure-path tests for durable idempotency.

Commit: 2cb7908 (test(sagas): cover durable idempotency flow)

Scope:

  • Added core runtime factory test proving engineOptions.appliedKeys reaches the engine.
  • Added plugin KV tests for transport reservation TTL, shared store behavior, and concurrent applied-key first-wins.
  • Added service tests for contract parse, publish helper threading, and duplicate/alreadyApplied acknowledgement.
  • Hardened KvSagaIdempotencyStore TTL behavior by deleting expired reservation records before the atomic first-wins check.

Gate evidence:

Gate Command Result
Core tests deno test --unstable-kv --allow-all packages/plugin-sagas-core PASS: 23 passed, 0 failed
Plugin tests deno test --unstable-kv --allow-all plugins/sagas PASS: 11 passed, 0 failed
Scoped fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts,md PASS

Copy link
Copy Markdown
Owner Author

[PHASE: IMPL] [VERDICT: READY_FOR_IMPL_EVAL]

Slice sagas-idempotency-e2e implementation complete — ready for IMPL-EVAL.

Commits

Commit Message
dc3d569 feat(sagas): add applied-key store contract
d6c1379 feat(sagas): guard engine applied keys
9ad4ef5 docs(sagas): document idempotent delivery
dcfb49d feat(sagas): accept publish idempotency keys
b8570e8 feat(sagas): thread service idempotency keys
9f53a85 feat(sagas): add kv idempotency stores
8290297 feat(sagas): wire durable idempotency roots
2cb7908 test(sagas): cover durable idempotency flow
8fdb186a chore(sagas): record idempotency gate evidence

Final Gate Evidence

Gate Command Result
Scoped check deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts PASS: 150 files, 0 diagnostics
Scoped lint deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts PASS: 150 files, 0 findings
Scoped fmt deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts,md PASS: 160 files, 0 findings
Root check deno task check PASS: 1,608 files, 0 diagnostics
Root lint deno task lint PASS: 1,093 files, 0 findings
Runtime tests deno test --unstable-kv --allow-all packages/plugin-sagas-core plugins/sagas PASS: 34 passed, 0 failed
Publish dry-run deno publish --dry-run --allow-dirty from packages/plugin-sagas-core PASS
JSR audit deno run --allow-read --allow-run --allow-env .llm/tools/fitness/audit-jsr-package.ts --root packages/plugin-sagas-core --text PASS_WITH_WARNINGS: no FAIL findings; existing warnings for src cardinality and slow-type banner
Consumer import deno eval --unstable-kv ... importing new core/plugin runtime idempotency exports PASS
Core doctrine scope deno run --allow-read .llm/tools/fitness/check-doctrine.ts --root packages/plugin-sagas-core --text PASS_WITH_WARNINGS: 0 FAIL

Baseline Caveats

  • deno task fmt:check is red on an unrelated untouched triggers file: plugins/triggers/src/runtime/trigger-runtime-processor_test.ts.
  • deno task arch:check is red from broad pre-existing repo debt. Scoped packages/plugin-sagas-core doctrine has 0 FAIL; scoped plugins/sagas doctrine still reports existing non-idempotency findings (SagasCliCommand, large contract/type files, service default export).
  • No scaffold output changed; e2e:cli was intentionally not run per approved plan.

Notes For IMPL-EVAL

Inspect first:

  • packages/plugin-sagas-core/src/runtime/saga-engine.ts for the alreadyApplied short-circuit before handler effects.
  • plugins/sagas/src/runtime/kv-saga-runtime-stores.ts for atomic KV reservations/applied keys and TTL handling.
  • plugins/sagas/services/src/routers/v1-handlers.ts plus plugins/sagas/contracts/v1/sagas.contract.ts for end-to-end idempotencyKey threading.

rickylabs added a commit that referenced this pull request Jun 20, 2026
…s; hold #75/#76 for post-#74 rebase

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
rickylabs added a commit that referenced this pull request Jun 20, 2026
Durable KvSagaStore over Deno.Kv + createDurableSagaRuntime default wiring; store-less warn seam.
IMPL-EVAL PASS (42 tests). Foundation slice — unblocks #75/#76 rebase + Track-3 Prisma store.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
@rickylabs

Copy link
Copy Markdown
Owner Author

Supervisor update — rebasing onto the merged umbrella

#74 sagas-durable-store has merged into feat/framework-prime-time (which now also carries #78/#79/#80). This slice is being rebased onto the updated umbrella so it builds on the locked durable-store contract (KvSagaStore, createDurableSagaRuntime, SagaStorePort) rather than a divergent one. A WSL Codex daemon-attached thread is performing the rebase, re-running the slice gate set, and force-pushing with lease. Once the rebase is clean and gates are green, IMPL-EVAL (OpenHands qwen3.7-max) will be dispatched.

@rickylabs
rickylabs force-pushed the feat/prime-time/sagas-idempotency-e2e branch from 8fdb186 to 4d0aae4 Compare June 20, 2026 03:40
@rickylabs

Copy link
Copy Markdown
Owner Author

@openhands-agent model=openrouter/qwen/qwen3.7-max output=pr-comment

Act as the IMPL-EVAL evaluator (separate session from the generator) for harness run feat-prime-time-sagas-idempotency-e2e--impl on this PR branch. Do NOT implement features; evaluate and verify.

Read first, in order:

  • .llm/harness/evaluator/protocol.md and .llm/harness/evaluator/verdict-definitions.md
  • .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/{plan.md,worklog.md,context-pack.md,drift.md,commits.md}
  • The selected archetype ARCHETYPE-5 (plugin) for @netscript/plugin-sagas plus its sibling core @netscript/plugin-sagas-core, and the SCOPE-service.md overlay
  • .llm/harness/gates/archetype-gate-matrix.md

This slice was just rebased onto the merged umbrella feat/framework-prime-time (durable-store #74 landed). Verify specifically:

  1. It consumes the locked durable-store contract (KvSagaStore, createDurableSagaRuntime, SagaStorePort) and does NOT reintroduce a divergent one or drop [prime-time] Durable saga store (KvSagaStore + createDurableSagaRuntime) #74/[prime-time] Service graceful shutdown #78/[prime-time] Worker applied-keys dedup #79/[prime-time] Queue dead-letter store contract (DeadLetterStorePort + provider stores) #80.
  2. Durable idempotency is real and production-grade: idempotency roots are persisted in the KV store, replays are deduplicated correctly across process restarts (no in-memory-only shortcut, no no-op), with an end-to-end test covering the durable idempotency flow.

Re-run the slice gate set yourself and record verdict evidence: scoped check/lint/fmt for the touched roots, deno test --unstable-kv --allow-all packages/plugin-sagas-core plugins/sagas (generator reported 46 passed), deno publish --dry-run, JSR audit, consumer import probe, and scoped doctrine checks. Note the generator recorded root doctrine as baseline-red (pre-existing) and an existing non-slice plugin finding as baseline drift — confirm these are genuinely pre-existing and not introduced by this slice.

Emit one verdict — PASS, FAIL_FIX, FAIL_RESCOPE, or FAIL_DEBT — write .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/evaluate.md, and summarize the verdict + evidence as your PR comment.

Lock hygiene: do NOT commit deno.lock re-resolution churn or unrelated files. If deno install mutates the lock, restore it before any commit. Keep commits to evaluator artifacts only.

@rickylabs

rickylabs commented Jun 20, 2026

Copy link
Copy Markdown
Owner Author

OpenHands Agent — Completed

Model: openrouter/qwen/qwen3.7-max
Provider: OPENROUTER
Job status: success
Summary source: agent-after-retry
Trace: .llm/tmp/run/openhands/pr-75/run-27859243308-1 (committed to the PR branch)
Artifact: openhands-agent-27859243308-1

IMPL-EVAL Evaluation Summary

Verdict: PASS
Run ID: feat-prime-time-sagas-idempotency-e2e--impl
PR: #75 - Saga idempotency end-to-end (durable applied-key reservation)
Rebase: Rebased onto feat/framework-prime-time (#74/#78/#79/#80 landed)


Summary

Completed independent IMPL-EVAL evaluation of the saga idempotency end-to-end implementation. Verified the implementation correctly consumes the locked durable-store contract from the merged umbrella branch and delivers production-grade durable idempotency with atomic KV operations, cross-process deduplication, and comprehensive end-to-end test coverage.

Key Findings:

  1. ✓ Durable-store contract consumption validated (no divergence from KvSagaStore, createDurableSagaRuntime, SagaStorePort)
  2. ✓ Production-grade durable idempotency confirmed (atomic KV operations, no in-memory shortcuts)
  3. ✓ Cross-process deduplication verified via integration tests
  4. ✓ All 46 tests pass (23 core + 23 sagas plugin)
  5. ✓ Static validation clean (type-check, lint, format, publish, JSR audit)
  6. ✓ Baseline doctrine failures pre-existing and documented

Changes

Files Created (Evaluator Artifacts)

1. .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/evaluate.md

  • Detailed IMPL-EVAL verdict document with evidence, code citations, and baseline drift analysis
  • Sections: Verdict, Evidence (locked contract consumption, durable idempotency verification, gate suite, baseline drift), Concept of Done Check

2. .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/summary.md

  • High-level summary of evaluation results, test coverage, and baseline findings

No Implementation Changes

  • Did not modify any source code, tests, or configuration files
  • Did not commit deno.lock changes
  • Evaluation was read-only verification per evaluator protocol

Validation

Gates Executed

Static Analysis:

  • ✓ Scoped type-check: deno run --allow-read --allow-run .llm/tools/run-deno-check.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts → PASS (157 files, 0 diagnostics)
  • ✓ Scoped lint: deno run --allow-read --allow-run .llm/tools/run-deno-lint.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts → PASS (157 files, 0 findings)
  • ✓ Scoped format: deno run --allow-read --allow-run .llm/tools/run-deno-fmt.ts --root packages/plugin-sagas-core --root plugins/sagas --ext ts → PASS (157 files, 0 findings)

Fitness Gates:

  • ✓ Tests: deno test --unstable-kv --allow-all packages/plugin-sagas-core plugins/sagas → PASS (46 passed, 0 failed)
  • ✓ Publish dry-run: deno publish --dry-run --allow-dirty (from packages/plugin-sagas-core) → PASS
  • ✓ JSR audit: deno run --allow-read --allow-run --allow-env ../../.llm/tools/fitness/audit-jsr-package.ts --root . --text → PASS_WITH_WARNINGS (slow-types warning only)
  • ✓ Consumer import probe: deno eval --unstable-kv → PASS (core/plugin runtime idempotency exports resolve)

Runtime Verification:

  • Reviewed SagaEngine.#handleEntry() (saga-engine.ts:169-176) - applied-key check before handler invocation
  • Reviewed KvSagaIdempotencyStore.reserve() (kv-saga-runtime-stores.ts:68-75) - atomic null-versionstamp check
  • Reviewed KvSagaAppliedKeyStore.recordApplied() (kv-saga-runtime-stores.ts:108-126) - atomic null-versionstamp check
  • Verified durable-saga-restart_test.ts - cross-process deduplication test
  • Verified kv-saga-runtime-stores_test.ts - atomic operation tests (3 tests)
  • Verified service composition root (plugins/sagas/services/src/main.ts:74-77) - KV store injection
  • Verified supervisor composition root (plugins/sagas/src/runtime/saga-supervisor.ts:136-143) - KV store injection

Baseline Drift Verification:

  • Verified root deno task arch:check baseline failures (58 FAIL) pre-existing, not in packages/plugin-sagas-core or sagas idempotency files
  • Verified plugin sagas CLI A4 violation pre-existing in plugins/sagas/cli/ (not touched by idempotency slice)
  • Verified core cardinality warning pre-existing (not introduced by SagaAppliedKeyStore addition)

Test Breakdown (46 Total)

Core tests (23 passed):

  • Engine applied-key tests (5 tests): duplicate rejection, per-instance isolation, result differentiation
  • KV store tests (3 tests): atomic operations, cross-process sharing
  • Runtime wiring tests: engine options forwarding, publish threading
  • Memory store tests: process-local deduplication

Sagas plugin tests (23 passed):

  • Durable runtime tests: cross-process state persistence, restart scenarios
  • Service integration tests: publish message threading, idempotency key propagation
  • Composition root tests: KV store injection at service boot
  • Runtime stores tests: atomic reservation, applied-key recording

Remaining Risks

Risk Level: LOW

None identified for this slice.

Reasoning:

  • All required gates pass with evidence
  • Durable idempotency implementation is production-grade (atomic KV operations, not in-memory)
  • Cross-process deduplication verified via integration tests
  • No divergence from locked durable-store contract
  • No new baseline doctrine violations introduced
  • Rebase conflicts resolved without introducing technical debt
  • Test coverage comprehensive (unit + integration + e2e scenarios)

Pre-existing baseline risks (documented in evaluate.md):

  • Root doctrine failures (58 FAIL) across unrelated packages/plugins
  • Plugin sagas CLI A4 violation (pre-existing)
  • These are tracked in .llm/debt/arch-debt.md and not attributed to this slice

Handoff

Task Status: COMPLETE

Deliverables:

  1. Evaluation verdict document: .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/evaluate.md
  2. Summary document: .llm/tmp/run/feat-prime-time-sagas-idempotency-e2e--impl/summary.md
  3. Verdict posted as PR comment (this summary)

Recommendation: Ready for merge. Implementation correctly delivers durable saga idempotency with atomic KV operations, comprehensive test coverage, and clean integration with the locked durable-store contract.

Next Steps: None required from evaluator. Generator work is complete and validated.

Run: https://github.com/rickylabs/netscript/actions/runs/27859243308

rickylabs added a commit that referenced this pull request Jun 20, 2026
Author the Prisma durable SagaStorePort backend-parity slice plan grounded on
the merged #74 seam: formal research (post-#74 contract/seam/schema/db-client
reads), plan.md (ARCHETYPE-2+5, dedicated durable tables, backward-compatible
backend-select + dispose() seam refactor, env/appsettings/CLI selection,
e2e-cli-gate), and plan-meta.json. Also record main-red root cause (stale
nativeRetrial assertion), #75/#76 rebase+IMPL-EVAL dispatch, and e2e gate green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
@rickylabs
rickylabs merged commit 9b3bde4 into feat/framework-prime-time Jun 20, 2026
1 check passed
@rickylabs

Copy link
Copy Markdown
Owner Author

Supervisor — IMPL-EVAL PASS, merged into umbrella

IMPL-EVAL (OpenHands qwen3.7-max, run 27859243308) returned PASS for sagas-idempotency-e2e: durable applied-key reservation on the merged #74 SagaStorePort seam, atomic KV operations, cross-process dedup, 46 tests green (23 core + 23 plugin), static gates clean, no deno.lock churn.

Merged --no-ff into feat/framework-prime-time at 9b3bde45 (rebased on 5c4a4587; #74/#78/#79/#80 already landed). Clean auto-merge, zero conflicts. This PR's slice work is now in the umbrella.

rickylabs added a commit that referenced this pull request Jun 20, 2026
…ed+re-eval, Track-3 PLAN-EVAL PASS

- #75 merged into umbrella at 9b3bde4 (IMPL-EVAL PASS, 46 tests, clean lock)
- #76 telemetry re-rebased onto live umbrella (tip 8084084, idempotency+spans integrated); IMPL-EVAL re-dispatched
- #77 auth re-rebased onto live umbrella (tip 2e90fa5, +#78 graceful-shutdown); IMPL-EVAL re-dispatched (prior PASS was stale base)
- Track-3 sagas-prisma-store PLAN-EVAL PASS (run 27859602970); generator HELD until blocker batch closes
- recorded full codex thread->worktree map + steer-launch landmine

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
rickylabs added a commit that referenced this pull request Jun 20, 2026
…143991]

End-to-end OpenTelemetry saga.handle spans with W3C trace-context propagation;
rebased onto live umbrella, integrates #75 applied-key idempotency guard inside
the span lifecycle (guard runs before span). 54 tests green, check 0 findings.
@rickylabs
rickylabs deleted the feat/prime-time/sagas-idempotency-e2e branch June 22, 2026 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants