Skip to content

fix: cover two-candidate dispute slashing - #83

Open
huangminghuang wants to merge 10 commits into
masterfrom
fix/wire-362-two-candidate-slashing-flow-platform
Open

fix: cover two-candidate dispute slashing#83
huangminghuang wants to merge 10 commits into
masterfrom
fix/wire-362-two-candidate-slashing-flow-platform

Conversation

@huangminghuang

@huangminghuang huangminghuang commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds flow-batch-operator-terminal-tie, which materializes a three-operator schedule, administratively terminates one operator through typed opreg::terminate orchestration, and proves the two remaining live operators can open and resolve a two-candidate terminal tie with one non-canonical slash.
  • Preserves flow-batch-operator-slashing as the original three-operator, three-candidate regression that produces two slashes.
  • Moves the shared dispute scenario, constants, steps, canonical-envelope codec, inbound-tip reader, single-flight cache, and unit coverage into cluster-tool; neither flow package depends on the other.
  • Finishes the shared-helper rename as BatchOperatorDisputeScenario, BatchOperatorDisputeConstants, and BatchOperatorDisputeSteps, with the steps barrel exported through the parent flow barrel.
  • Keeps the configured operators_per_epoch value at three and verifies it explicitly while the terminal dispute opens from the two-operator live eligible set.
  • Constrains scenario operator options to the provisioned dispute roster and rejects unsupported labels, duplicate delivery operators, and duplicate slashing targets during planning.
  • Keeps SOLANA consensus and ETHEREUM candidate deliveries in separate parallel phases, uses generated SDK row types without casts or public third-party aliases, and scopes OPEN-dispute selection to the contested outpost and epoch.
  • Removes the obsolete slashing-flow Jest project/configuration after relocating its tests to cluster-tool, and corrects the documented Jest project count.

Validation

  • Exact current wire-tools-ts head: b42ee96bd352becde9dbba0ac76e66f953df6753.
  • Current-head workspace build passed.
  • Current-head focused scenario Jest passed: 1 suite / 10 tests.
  • Current-head targeted ESLint and TypeScript Prettier checks passed.
  • git diff --check passed.
  • Current-head CI is green: Build and test #33433627755.
  • Exact-head remote e2e is green: E2E Flow Tests #33434294378 built with wire-tools-ts at b42ee96bd352becde9dbba0ac76e66f953df6753, wire-sysio at 234abff294a5ddeca2832bc0617bef7d007b90fa, and ran only flow-batch-operator-terminal-tie. The run concluded with “All E2E flows passed.”
  • The full PR diff and commit list were re-read after the final review follow-up; the correctness, architecture, and compliance findings are addressed with no remaining actionable issue.
  • The installed Wire validation profile still lacks mappings for the new terminal-tie entry-point paths, so it cannot publish reusable exact-content evidence for those paths.

Reviewer notes

  • The optional incomplete two-way scenario from the review is intentionally not included; this PR covers the terminal tie, while the companion Boost flow covers the other case.
  • Review follow-ups and master syncs were added as normal commits; no history was rewritten.

Change-Id: I4e754b569c729378751a182f29eb1093387c9f80
…tform

Change-Id: I8a1498a59d3f6d41b164ee7bc89ff8ab16def7c9
@huangminghuang
huangminghuang marked this pull request as ready for review August 22, 2026 14:57
…ndidate-slashing-flow-platform

Change-Id: I86ef108e0842924d5f3bae6133c39caf04acc846
Change-Id: Ia1741dcf76e25ca3a7ec6351fa3128fd8755a710
@huangminghuang
huangminghuang requested a review from heifner August 28, 2026 14:42
Change-Id: I4d999441a80dc1bfbe8d42eb34a07fa831150495
Change-Id: Ia3d11b250a3c69fcbfdf91ad177a409d9cbc0b6a
…ndidate-slashing-flow-platform

# Conflicts:
#	packages/cluster-tool/package.json
#	packages/flow-batch-operator-slashing/package.json
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