Skip to content

refactor(committor): replace execution modes with a transaction plan - #1846

Open
snawaz wants to merge 2 commits into
refactor/committor-unify-intent-executionfrom
refactor/committor-transaction-plan
Open

snawaz wants to merge 2 commits into
refactor/committor-unify-intent-executionfrom
refactor/committor-transaction-plan

Conversation

@snawaz

@snawaz snawaz commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What changed

Replace SingleStage/TwoStage plans with a current transaction and an optional follow-up. Results and errors share execution progress and signature reporting.

Closes #1840.

Impact

Retries use transaction progress: confirmed work and unresolved submissions cannot restart. Action-only execution keeps stricter retry rules. Empty follow-ups no longer duplicate signatures or CU metrics.

The stored outbox encoding, transaction selection, and resource limits stay unchanged. Recovery-patcher cleanup follows in #1841.

@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 85ce3cb and 8655c8b.

Files selected for processing: 20
  • committor/src/intent_engine/intent_execution_engine.rs
  • committor/src/intent_executor/error.rs
  • committor/src/intent_executor/executor.rs
  • committor/src/intent_executor/executor/tests.rs
  • committor/src/intent_executor/intent_execution_client.rs
  • committor/src/intent_executor/mod.rs
  • committor/src/intent_executor/progress.rs
  • committor/src/intent_executor/strategy_executor/error.rs
  • committor/src/intent_executor/strategy_executor/patcher.rs
  • committor/src/intent_executor/strategy_executor/transaction.rs
  • committor/src/intent_executor/strategy_executor/transaction/tests.rs
  • committor/src/intent_executor/strategy_executor/utils.rs
  • committor/src/intent_executor/test_utils.rs
  • committor/src/intent_executor/utils.rs
  • committor/src/outbox/mod.rs
  • committor/src/outbox/progress.rs
  • committor/src/outbox/utils.rs
  • committor/src/tasks/intent_size_validator.rs
  • committor/src/tasks/task_builder.rs
  • committor/src/tasks/task_strategist.rs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@snawaz
snawaz marked this pull request as ready for review October 26, 2026 16:49
@snawaz
snawaz force-pushed the refactor/committor-transaction-plan branch 3 times, most recently from e88d0f7 to c64fe6b Compare October 26, 2026 20:18
Represent settlement as a current transaction and an optional follow-up
instead of SingleStage and TwoStage plan variants. Keep the existing task
order, transaction selection, resource limits, and confirmed-commit resume
behavior. Rename follow-up task builders that no longer perform finalization.

Replace stage-specific output and preparation/execution errors with common
records. Track prepared, submitted, rejected, and confirmed transactions,
including the signature of an earlier confirmed commit. Use that progress
to prevent fresh retries of confirmed work or unresolved submissions, while
retaining stricter retry rules for action-only execution failures.

Share signature collection between reporting and CU metrics. Preserve known
signatures when preparation or reporting fails, and deduplicate the commit
signature when an empty follow-up reuses its result.

Convert the existing stored outbox stages at a small boundary so accepted
intents remain recoverable without changing their encoding or transition
checks. Leave recovery patchers and legacy DLP recovery for their follow-ups.

Adapt existing planning, execution, and error tests. Extend the lifecycle
matrix to cover signature reporting and a confirmed commit with an empty
follow-up, without adding a separate test harness.

Validation: make fmt; cargo check -p magicblock-committor-service --tests;
the intent_execution_preserves_recovery_and_completion test (18 cases);
git diff --check.

Closes #1840.
Capture the completion report passed to the outbox instead of reconstructing a separate report in the lifecycle test. Check the actual reported signatures and retain direct progress assertions for failures that intentionally leave the outbox open.

Remove the basic combined-plan test already covered by the delivery-format matrix. Fold the single-use CPI-limit predicate into the split-recovery predicate without changing which errors permit a split.

Validation: cargo fmt; cargo check -p magicblock-committor-service --tests; cargo test -p magicblock-committor-service intent_execution_preserves_recovery_and_completion -- --nocapture; git diff --check.
@snawaz
snawaz force-pushed the refactor/committor-transaction-plan branch from c64fe6b to 8655c8b Compare October 28, 2026 10:17
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.

Replace committor execution modes with a transaction plan

1 participant