Skip to content

Apply dispenser remaining and count updates independently - #30

Merged
droplister merged 1 commit into
masterfrom
fix/dispenser-partial-updates
Oct 4, 2026
Merged

droplister merged 1 commit into
masterfrom
fix/dispenser-partial-updates

Conversation

@droplister

Copy link
Copy Markdown
Member

Delayed dispenser-close events provide give_remaining: 0 without dispense_count. The current handler updates inventory only when both fields are present, leaving stale remaining quantities. Apply each provided field independently, preserve omitted values, and clear the closing timestamp when an update reopens a dispenser.

Four real-SQLite sync regressions cover delayed close, status-only updates, quantity-only updates, zero counts, unchanged retries and exact restoration after a reorg. Local validation: 117 compiled API tests, migration checks, three Worker tests, TypeScript and promise lint.

The recovery runbook records the current-set audit and a separate historical repair scope. This PR does not automatically change historical production rows. The observed historical omissions are not attributed to reorgs without evidence.

@droplister
droplister merged commit 72d00e3 into master Oct 4, 2026
2 checks passed
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