Skip to content

Defer busy native background updates before fencing writes - #1348

Merged
selfcontained merged 2 commits into
mainfrom
agt_b38285dd474b/defer-busy-background-updates-before
Oct 29, 2026
Merged

selfcontained merged 2 commits into
mainfrom
agt_b38285dd474b/defer-busy-background-updates-before

Conversation

@selfcontained

@selfcontained selfcontained commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

Background and deferred native update attempts currently request the write-maintenance fence before discovering known busy work, briefly rejecting sends on each attempt. Add a conservative signed busy preflight before recovery preparation so those attempts withdraw and retry without fencing. A verified idle read only reaches the unchanged authoritative fence, drain, fresh activity/host rechecks and protected recovery path.

Explicit manual and remote installs retain their existing authoritative install path; later deferred retries use the conservative background policy. Missing, failed, malformed or unverifiable activity defers automatic attempts. Revalidate the full journal, intent, running state, recovery lock and attempt generation after the read. Coalesce completion/withdrawal retry scheduling and reject stale timers while retaining five-minute/twelve-retry bounds.

Validation on final head fed3033d:

  • Sparkle 2.10.0-enabled native build/tests with isolated PostgreSQL 17: 141 passed, zero skips.
  • pnpm run check: passed.
  • Isolated pnpm run test:e2e: 261 passed, 13 skipped.
  • Recovery route suite: 35 passed. Busy status keeps concurrent writes admitted; fence-first baseline rejects them; work starting after idle status is still drained/refused by the authoritative fence.
  • Browser composer send returned 200 while verified signed status remained busy/normal before and after; screenshot and status evidence are attached in Dispatch.
  • Release/update owner, documentation and exact-delta ownership-routing reviews: no findings. The release owner independently verified pinned Sparkle callback attribution and ran all 21 focused native tests.

No production server or web source changed. No installed update, VM, production mutation/restart or rollout was used. Busy/stop/quiesce dependencies in the Fastify regression harness are controlled fixtures; native and browser proof do not constitute an installed update test. CI results are tracked on the current head separately.

Task: tsk_c201a24752cd. Independent of unmerged accounting repair #1344. Merge requires explicit user approval; no rollout authorized.

@selfcontained
selfcontained marked this pull request as ready for review October 29, 2026 09:13
@selfcontained
selfcontained merged commit f4dcfe3 into main Oct 29, 2026
1 of 2 checks passed
@selfcontained
selfcontained deleted the agt_b38285dd474b/defer-busy-background-updates-before branch October 29, 2026 15:08
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.

1 participant