Pool-backed engine roles (#7 phase 2, DT side) - #18
Merged
Conversation
`{"pool": "<name>"}` in a role's engine config routes that role's tasks
through the task dispatcher's pilot pools: the backend targets the
broker-hosted dispatcher (rhapsody's pool mode), one dispatcher session
per DT session -- keyed by the DT sid, shared by every pool-backed role,
with the session-level `pools` configs declared on it (re-declaring is
idempotent, so role build order does not matter).
Pool-backed roles opt out of the R8 endpoint-loss fail-fast: their
`_endpoints` entry is `pool:<name>`, which no lost endpoint ever
matches. Losing a pilot's endpoint requeues its tasks inside the
dispatcher; the twin's failure surface for pools is a task that
ultimately fails. The requeue contract makes twin tasks re-executable,
so they must stay idempotent -- noted at the seam and in the
register_session docs.
A pool config against a rhapsody without pool support raises a clear
error at engine build; without a pool nothing changes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Npyz3Hbnwos12ESsdJ2YU
This was referenced Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The DT half of #7 phase 2. Companion PRs: radical-cybertools/radical.orbit#117 (dispatcher speaks the rhapsody execution dialect, batched persists/notifications) and radical-cybertools/rhapsody#88 (
OrbitExecutionBackendpool mode).Config: a role may name a dispatcher-managed pool instead of an endpoint, with the pool configs declared once at session level:
Semantics:
register_session)Tests: pool kwargs land on the backend (dispatcher plugin, shared sid, declared pools,
pool:<name>endpoint record), the old-rhapsody guard, and R8 sparing pool-backed roles. 171 unit + 29 integration pass.Merge order: after the two companion PRs land, the CI/install pins move to versions carrying them; until then the pool path is config-gated and inert.
🤖 Generated with Claude Code
https://claude.ai/code/session_016Npyz3Hbnwos12ESsdJ2YU