Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

#3035 Datastore rework Phase 2: remaining serve direct pushes commit through root units (no behaviour change)

Opened by stack72 · 10/5/2026· Shipped 10/5/2026

Follow-up to swamp-club#3034, which moved the 14 pushChangedToRemote call sites, executeWorkflowWithLocks and the serve hand marks into root units of work. These serve pushes still call syncService.pushChanged directly and are pinned in PINNED_SERVE_RAW_PUSHES (integration/serve_root_unit_rules_test.ts):

  • Success-only handler pushes, which push after the reply and only when the request succeeded, so they need a flush that skips on failure and cancel: model.create, model.delete, model.edit (model_handlers.ts); vault.create, vault.edit (vault_handlers.ts); vault.migrate (admin_handlers.ts); workflow.create, workflow.edit, workflow.delete (workflow_handlers.ts).
  • Run-path pushes under the shared gate: handleModelMethodRun (two sites, model_handlers.ts), the workflow.resume handler (workflow_handlers.ts) and resume_launcher.ts.

Goal: each runs in a runInRootUnitOfWork root whose flush is today's push, with marks, push count, push timing relative to the reply and gate, and failure behaviour unchanged. The characterization rows for these handlers switch on rootUnit.serve with syncOrder pinned from pre-change code, and PINNED_SERVE_RAW_PUSHES shrinks accordingly.

Out of scope: per-step model lock pushes (acquireModelLocks flush), pollers, GC services, startup hydration, the extension lockfile.

Related: tracking swamp-club#2865; built on swamp-club#3032 and swamp-club#3034.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 16 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/5/2026, 9:53:15 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/5/2026, 6:56:30 PM

Sign in to post a ripple.