Skip to content

fix(execution): prevent concurrent runners from submitting twice - #212

Merged
Pigbibi merged 1 commit into
mainfrom
codex/binance-r5-atomic-claim-20260905
Sep 5, 2026
Merged

fix(execution): prevent concurrent runners from submitting twice#212
Pigbibi merged 1 commit into
mainfrom
codex/binance-r5-atomic-claim-20260905

Conversation

@Pigbibi

@Pigbibi Pigbibi commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Bind live state access and a native Firestore create/owner-checked delete transaction to the same resolved backend; claim before state and market reads.
  • Retain ownership for uncertain or partial execution and failed persistence. Release only after existing action markers or confirmed Earn/fuel balance state is persisted; normal risk veto/no-order cycles remain repeatable.
  • Keep dry-run/disabled execution lock-free and reject unowned live mutation paths. No TTL, takeover, pin, dependency, workflow or runtime configuration changes.

Verification

  • Existing expected-failure concurrency regression: actual RED (2 submissions), then GREEN (1 winner, 1 state read, 1 submission); expectedFailure removed.
  • Hard-offline full suite with cleared environment and temporary HOME: 290 passed, 33 subtests passed.
  • Ruff, diff check, uv pip check (67 packages), uv lock --check --offline passed.
  • 5 production files and 7 existing test files only.

Runtime boundary

No broker/provider/cloud calls or deployments performed. Synthetic transactions do not establish Firestore permissions or real-account reconciliation. Stop old runners before adoption; no automatic owner deletion or takeover.

@Pigbibi
Pigbibi merged commit e1d14cb into main Sep 5, 2026
1 check passed
@Pigbibi
Pigbibi deleted the codex/binance-r5-atomic-claim-20260905 branch September 5, 2026 17:33
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