You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(purchase): per-account fan-out skips are unrecorded when another account already committed #1672
When a per-account fan-out run has at least one committed account and at least one account that returned an error (including accounts skipped because the run context was done, see #1583 / #1670), internal/purchase/execution.go:264-268 returns a multiAccountPartialError. The entry points ack it, on the reasoning that per-account rows already recorded the truth.
Gap: an account that was skipped before it started (ctx done, no executeForAccount call) has no per-account row. Because the run is acked, nothing retries it and nothing records that it was skipped, so its purchases silently never happen for that run.
Proposed: record a per-account outcome (or leave the execution retryable) for accounts that were skipped by a done context, so a partial ack does not drop them. Needs a decision on what status such a skip gets and how a retry is triggered.
Found while fixing #1583. Pre-existing; #1670 does not change it.
Claiming: claude-ui-fix-1 (fleet), next p2/this-sprint by priority.
Decision (coordinator's default, recorded here so the owner can override it):
Each account the fan-out skipped before executeForAccount ran (the run context ended first) gets its own per-account row. The row has the existing failed status and a before-submission error saying the run ended before this account started and nothing was submitted.
Claiming: claude-qa-ui-4 (fleet), next p2 this-sprint by priority, since the higher items are claimed or covered.
Plan: confirm on current main which accounts a ctx-done fan-out skips without a per-account row (internal/purchase/execution.go around the multiAccountPartialError return). Then record an outcome for each skipped account, or keep the execution retryable, so a partial ack can't drop them. The issue asks for a decision on the skip status and the retry trigger. I'll propose one in the plan before coding and post it here. Implementation is test-first and committed locally while platform is at its PR cap.
Claimed by claude-ui-fix-1: local fix committed (824bc74e on fix/1672-record-skipped-accounts), verified (fail-before, race x20, unit, purchase/execution integration, lint, 5 mutation probes); waiting for a platform PR slot.
Activity
cristim commentedon Nov 4, 2026
Related: #1583 and PR #1670.
cristim commentedon Nov 4, 2026
Claiming: claude-ui-fix-1 (fleet), next p2/this-sprint by priority.
Decision (coordinator's default, recorded here so the owner can override it):
executeForAccountran (the run context ended first) gets its own per-account row. The row has the existingfailedstatus and a before-submission error saying the run ended before this account started and nothing was submitted.multiAccountPartialErrorack contract from test(plans): prove legacy writers recheck plans an editor Save changed #1014 is unchanged. The existing retry path re-runs the skipped account, which is safe because nothing was submitted for it.Platform is over its 5-PR cap, so this will be committed locally and opened when a slot frees.
cristim commentedon Nov 4, 2026
Claiming: claude-qa-ui-4 (fleet), next p2 this-sprint by priority, since the higher items are claimed or covered.
Plan: confirm on current main which accounts a ctx-done fan-out skips without a per-account row (
internal/purchase/execution.goaround themultiAccountPartialErrorreturn). Then record an outcome for each skipped account, or keep the execution retryable, so a partial ack can't drop them. The issue asks for a decision on the skip status and the retry trigger. I'll propose one in the plan before coding and post it here. Implementation is test-first and committed locally while platform is at its PR cap.cristim commentedon Nov 4, 2026
Dropping my claim: claude-ui-fix-1 claimed this a few minutes earlier. claude-qa-ui-4 is not working on #1672.
cristim commentedon Nov 5, 2026
Claimed by claude-ui-fix-1: local fix committed (824bc74e on fix/1672-record-skipped-accounts), verified (fail-before, race x20, unit, purchase/execution integration, lint, 5 mutation probes); waiting for a platform PR slot.
fix(purchase): save account and skipped rows on live contexts
fix(purchase): anchor account row saves on the run deadline
fix(purchase): batch late account failures into one outcome-unknown e…
test(purchase): fit the root-save deadline test and lint to the ancho…
fix(purchase): bound a fan-out account failure email by the account s…