Skip to content

Commit 6d04414

Browse files
committed
docs(_plans): record Phase C1-C5 status (C3 deferred pending product call)
1 parent 0183e43 commit 6d04414

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

_plans/2026-05-19-mollifier-api-parity.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@
2020
| **Phase B5 — mutateWithFallback helper** |**Done** | `dea1c7c0d` | Discriminated outcome (pg/snapshot/not_found/timed_out); never throws Response so it's route-agnostic and unit-tested in isolation |
2121
| **Phase B6a — buffer idempotency primitives** |**Done** | `0c7c07dd0` | accept SETNXes lookup; ack DELs it; new lookupIdempotency + resetIdempotency methods. accept return shape now discriminated `AcceptResult` |
2222
| **Phase B6b — trigger/reset integration** |**Done** | `51b471c12` | IdempotencyKeyConcern checks both stores; ResetIdempotencyKeyService clears both; mollifyTrigger handles `duplicate_idempotency` race-loser case. resumeParentOnCompletion deliberately skipped (waitpoint needs PG row) |
23-
| **Phase B complete** ||| Phase C (mutation endpoints — cancel, tags, metadata PUT, reschedule, replay) is next |
23+
| **Phase B complete** ||||
24+
| **Phase C1 — cancel** |**Done** | `d4f734213` | `engine.createCancelledRun` + drainer bifurcation + route via mutateWithFallback. Q4 design |
25+
| **Phase C2 — tags** |**Done** | `3534f1330` | Closes the live 500 the parity script flagged. MAX_TAGS skipped on buffer side (matches today's pre-buffer trigger semantics) |
26+
| **Phase C3 — metadata PUT** | ⏸️ Deferred || The operations API (`operations` / `parentOperations` / `rootOperations` in `FlushedRunMetadata`) needs a product decision for buffered runs — operations are deltas against a materialised TaskRun, so they don't translate cleanly to snapshot patches. The simple replace (`body.metadata` only) case could land via `set_metadata`, but isolating that branch from the operations path requires a route restructure. Pending |
27+
| **Phase C4 — reschedule** |**Done** | `0183e4367` | `set_delay` patch; PG-side `RescheduleTaskRunService` still enforces non-DELAYED rejection via wait-and-bounce |
28+
| **Phase C5 — replay** |**Done** | `0183e4367` | Read-fallback after PG miss; SyntheticRun-as-TaskRun cast (B4 work) feeds existing `ReplayTaskRunService`. Also tightens PG lookup to env-scoped findFirst |
2429
| Phase C — mutation endpoints | ⏳ Pending || cancel first (drives B), then tags/metadata-put/reschedule/replay |
2530
| Phase D — dashboard internals | ⏳ Pending || reuse C paths |
2631
| Phase E — listing endpoints | ⏳ Pending || Q1 design |

0 commit comments

Comments
 (0)