fix(sagas): register KV adapter in generated runtime glue - #1193
Conversation
|
[PHASE: RESEARCH] Re-baselined the amended issue against Findings
Next
|
|
[PHASE: PLAN] Plan and Design are locked in Locked decisions
Gates
Next
|
|
[PHASE: PLAN-EVAL] [VERDICT: APPROVED] Composed per No local formal PLAN-EVAL was spawned or awaited. Research currency, locked decisions, open-decision sweep, five commit slices, risk register, full gate set, deferred scope, and JSR surface baseline are recorded in |
|
Looks like you're out of credits for this review. Head to your account settings to top up and keep reviews running. https://app.augmentcode.com/account/subscription |
|
[PHASE: IMPL] [SLICE: S1-RED] Commit Scope
RED evidenceThe emitted file itself contains only the runner import, while generated Aspire wiring selects Gate state
|
IMPL — S2 generated-glue fixImplemented the package-owned registration seam in Evidence:
Commit: 175a90a. AppHost health/lifecycle/OTEL/restart evidence remains in progress; this is not yet a readiness claim. |
|
[PHASE: IMPL] Generated saga glue now registers the Redis adapter at the regeneration source, exposes a Evidence
Merge-readiness blockerThe exact This is recorded as blocking drift in |
9c5f55f to
c9e9a49
Compare
Summary
Fix generated saga background glue at its regeneration authority so default Redis/Garnet scaffolds
register the existing KV adapter before opening the durable saga store. The generated saga resource
also exposes a supervisor-backed health endpoint, and the KV-backed API can start without optional
Prisma saga projections while the Prisma backend remains strict.
Scope
Slices
cb0418f2bb88c44b90175a90a510a20858afscaffold.runtimerecorded: 51 pass / 1 fail, single red proven baseline (fix(scaffold): users service Prisma binds a stale Postgres endpoint — DB health check fails on a clean scaffold.runtime run #1202, pristine-main reproduction); cloud CI is the verdict source per owner ruling D13Owner verification protocol
Full evidence is quoted in
.llm/runs/fix-sagas-kv-glue-registration--w2-f/worklog.md; decisive artifacts follow.Fresh user scaffold, default cache. The normal local CLI created a Postgres/default-Redis
project and installed the saga plugin. The unfixed emitted file contained only:
The fixed fresh scaffold emitted registration before startup:
Genuine populated health.
aspire describe sagasreported:Terminal and compensation paths. Four real API publishes returned 200 for start, step,
complete, and rollback. Redis held distinct durable envelopes:
OTEL traces, spans, logs, and correlation. The required
aspire otel traces,spans, andlogscommands showed:The three terminal steps stayed on one instance; compensation stayed on a separate instance.
Logs independently showed Redis selection, adapter initialization, connection, and API startup.
RED first. The generated-artifact assertion failed
0 passed | 1 failedbecause the emittedruntime lacked
import '@netscript/kv/redis';. The actual unfixed generated runtime then exitedthrough
getKv -> openSagaRuntimeKv -> startSagaRunnerwith:Restart durability.
sagas-apichanged PID275673 -> 278465and the background runnerchanged
275672 -> 280444; the populated health report remained healthy and Redis returned theexact same version-3 completed and version-1 compensating envelopes after both restarts.
Artifacts, not exits. Evidence is emitted source, populated health reports and HTTP bodies,
Redis envelopes, and OTEL payloads. Final
aspire psis empty; ownership-aware leak-check reportsno owned survivor and leaves two foreign wave-4 containers untouched.
CACHE_PROVIDER=denokvwas also selected in a fixed generated project while the registration modulewas loaded; a real Deno-KV write/read returned
{"value":"denokv"}.Validation
milestone-run.mdand owner/orchestrator ruling D6.deno task quality:gate— pass; zero quality findings and zero doctrine failures.deno.lock— no churn; no new lint ignores.Merge-readiness blocker
The required exact command was run from an empty AppHost preflight:
The final clean artifact passed all saga readiness gates and failed later in unrelated users DB
health:
Live inspection proved the nominal preserve-AppHost gate changed the dependent database endpoint:
The orchestrator accepted this 51/1 result as environmental DB/endpoint churn rather than a #1184
defect. The PR nevertheless remains draft with
status:ci-fail: the expensive-gate slot is held forthe dedicated #1190 delivery slice. After #1190 merges, this branch will rebase onto
mainand runone joint verification—one-pass
scaffold.runtimeplus the full seven-point lifecycle on bothdefault Redis/Garnet and explicit Deno KV. No IMPL-EVAL pass or ready-merge claim is made before
that joint run is green.
Harness
.llm/runs/fix-sagas-kv-glue-registration--w2-f/composed per milestone-run.md (orchestrator waiver)worklog.md+drift.mdDrift / Debt
becomes possible cli: netscript db leaves an ephemeral db-operation AppHost running that masks the resident one (aspire describe reports the wrong host) #1196-family evidence, not a retry.
Definition of Done
sagas/runtime.tsregisters the Redis adapter at the regeneration source.KvConnectionError.CACHE_PROVIDER=denokvremains working.quality:gate, package-surface checks, lock hygiene, and leak checks pass.scaffold.runtimerecorded (51/1, red = baseline fix(scaffold): users service Prisma binds a stale Postgres endpoint — DB health check fails on a clean scaffold.runtime run #1202, cloud source-of-truth per D13); composed review + orchestrator pre-merge gate complete; close gate green on ticked issue evidence.