feat(actors): wire batch processing dispatch into ActorExecutor — route batch-mode actors to ClaudeBatchProvider #4930

Open
opened 2026-04-08 23:00:16 +00:00 by HAL9000 · 1 comment
Owner

Metadata

  • Commit Message: feat(actors): wire batch processing dispatch into ActorExecutor — route batch-mode actors to ClaudeBatchProvider
  • Branch: feature/m9-claude-batch-dispatch
  • Milestone: v3.8.0
  • Parent Epic: #1251

Background and Context

With ActorConfiguration.batch_processing (#4928) and ClaudeBatchProvider (#4929) in place, the ActorExecutor needs to be updated to route actors configured with batch_processing=True to the ClaudeBatchProvider instead of the standard synchronous provider. This is the integration point that makes batch processing functional end-to-end.

Expected Behavior

  • ActorExecutor.execute() checks actor_config.batch_processing before dispatching
  • If batch_processing=True and the provider is Claude, routes to ClaudeBatchProvider
  • If batch_processing=True but provider is not Claude, raises BatchNotSupportedError with a clear message
  • The batch execution result is returned in the same format as synchronous results
  • Plan execution logs indicate when batch mode is being used

Acceptance Criteria

  • ActorExecutor checks batch_processing flag and routes accordingly
  • Non-Claude providers with batch_processing=True raise BatchNotSupportedError
  • Batch execution results are returned in standard ActorResponse format
  • Execution logs include a "Using batch mode" indicator
  • Type annotations are complete and Pyright passes

Dependencies

  • Must be done after: #4928 (BatchProcessingMode in ActorConfiguration)
  • Must be done after: #4929 (ClaudeBatchProvider implementation)

Subtasks

  • Update ActorExecutor.execute() to check batch_processing flag
  • Add routing logic to ClaudeBatchProvider when batch mode is enabled
  • Add BatchNotSupportedError for non-Claude providers
  • Add execution log entry for batch mode dispatch
  • Tests (Behave): Add scenarios for batch dispatch routing
  • Tests (Behave): Add scenarios for BatchNotSupportedError on non-Claude providers
  • Tests (Robot): Add integration test for end-to-end batch dispatch
  • Verify coverage >=97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Supervisor: Epic Planning | Agent: epic-planner

## Metadata - **Commit Message**: `feat(actors): wire batch processing dispatch into ActorExecutor — route batch-mode actors to ClaudeBatchProvider` - **Branch**: `feature/m9-claude-batch-dispatch` - **Milestone**: v3.8.0 - **Parent Epic**: #1251 ## Background and Context With `ActorConfiguration.batch_processing` (#4928) and `ClaudeBatchProvider` (#4929) in place, the `ActorExecutor` needs to be updated to route actors configured with `batch_processing=True` to the `ClaudeBatchProvider` instead of the standard synchronous provider. This is the integration point that makes batch processing functional end-to-end. ## Expected Behavior - `ActorExecutor.execute()` checks `actor_config.batch_processing` before dispatching - If `batch_processing=True` and the provider is Claude, routes to `ClaudeBatchProvider` - If `batch_processing=True` but provider is not Claude, raises `BatchNotSupportedError` with a clear message - The batch execution result is returned in the same format as synchronous results - Plan execution logs indicate when batch mode is being used ## Acceptance Criteria - [ ] `ActorExecutor` checks `batch_processing` flag and routes accordingly - [ ] Non-Claude providers with `batch_processing=True` raise `BatchNotSupportedError` - [ ] Batch execution results are returned in standard `ActorResponse` format - [ ] Execution logs include a "Using batch mode" indicator - [ ] Type annotations are complete and Pyright passes ## Dependencies - [ ] Must be done after: #4928 (BatchProcessingMode in ActorConfiguration) - [ ] Must be done after: #4929 (ClaudeBatchProvider implementation) ## Subtasks - [ ] Update `ActorExecutor.execute()` to check `batch_processing` flag - [ ] Add routing logic to `ClaudeBatchProvider` when batch mode is enabled - [ ] Add `BatchNotSupportedError` for non-Claude providers - [ ] Add execution log entry for batch mode dispatch - [ ] Tests (Behave): Add scenarios for batch dispatch routing - [ ] Tests (Behave): Add scenarios for `BatchNotSupportedError` on non-Claude providers - [ ] Tests (Robot): Add integration test for end-to-end batch dispatch - [ ] Verify coverage >=97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Supervisor: Epic Planning | Agent: epic-planner
HAL9000 added this to the v3.8.0 milestone 2026-04-08 23:00:46 +00:00
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium — Wires batch dispatch into ActorExecutor, depends on #4928 and #4929
  • Milestone: v3.8.0 (already assigned correctly)
  • Story Points: 3 — M — Routing logic in ActorExecutor to dispatch to ClaudeBatchProvider is a medium task
  • MoSCoW: Should Have — Completes the batch processing feature chain; important for cost efficiency at scale
  • Parent Epic: #1251 (as noted in issue metadata)

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium — Wires batch dispatch into ActorExecutor, depends on #4928 and #4929 - **Milestone**: v3.8.0 (already assigned correctly) - **Story Points**: 3 — M — Routing logic in ActorExecutor to dispatch to ClaudeBatchProvider is a medium task - **MoSCoW**: Should Have — Completes the batch processing feature chain; important for cost efficiency at scale - **Parent Epic**: #1251 (as noted in issue metadata) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#4930
No description provided.