This repository was archived by the owner on Oct 1, 2026. It is now read-only.
Repository navigation
Prism roles: single model lists, Retry and Escalation switches (#127); release 0.37.0 - #131
Merged
Merged
Conversation
…; release 0.37.0 Dispatcher, reviewer, Retry (correction) and Escalation (recovery) read one ordered `models` list from the Prism snapshot; the worker keeps its easy/medium/hard lanes. A snapshot without `models` (older fork) still routes through the role's entry for the job's lane for one release. `enabled: false` on Retry drops the two retry rungs, on Escalation the escalation rung; later rungs and the planner question move up, so with both off the first failed worker turn asks the planner. Failure counting is unchanged. GLOSSARY.md: Retry, Escalation and Recovery (controller recovery only); internal keys stay `correction`/`recovery`. Policy notes and RUNNER.md use the new names. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
lukemaj
force-pushed
the
issue-127-roles
branch
from
September 25, 2026 23:00
2b58fb2 to
ac61e18
Compare
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Closes #127: only the Worker keeps easy/medium/hard lanes; Dispatcher, Reviewer, Retry and Escalation each read one model list, and Retry and Escalation can be switched off in Prism.
Elon method record
modelslist per non-worker role andenabledoncorrection/recovery, with user-facing text saying Retry and Escalation.packages/contracts/src/prismSnapshot.ts) still repeats each single list in every lane, so old and new snapshots both carry what the runner needs.recovery_decision,recovery_exhausted) or controller state, which keeps the snapshot contract and stored jobs stable. No new ladder state: switched-off rungs just drop out of the rung order, so failure counting is unchanged. No CLI change: its only "recover" already means controller recovery.modelspreferred instage_preferenceswith the lane fallback,t3snapshot.ladder_enabled()from the last applied snapshot, and_apply_ladderindexing failures into the enabled rungs.Acceptance criteria
runner/t3snapshot.pyreadsroles.<role>.modelsfor dispatcher, reviewer, correction (Retry) and recovery (Escalation); the worker keeps three lanes. A snapshot withoutmodelsuses the role's entry for the job's lane. An emptymodelskeeps the policy order, as an empty lane list did before.enabled: falseon Retry drops the retry and fresh-retry rungs; on Escalation it drops the escalation rung. With both off, the first failure goes to the planner question, and the planner's one authorized attempt still ends the job asescalation_exhaustedif it fails. The exhaustion message lists only the rungs that are on.capacityshowsladder_enabled.correction/recovery. Policy stage notes and RUNNER.md use the new names. CLI help needed no change.tests/test_issue127.py: reads the models list, falls back to old lanes, keeps the policy order for an empty list, defaults the flags on, and covers Retry off, Escalation off and both off.Mid-job switches (review follow-up)
Each new failure takes the next enabled rung after the last rung this job used (
rung_at/ranin the ladder phase; jobs laddered before this infer both from the last rung). Escalation is never chosen again onceescalatedis set, and the exhaustion message lists the rungs that actually ran. Tests: Retry switched off after two failures still escalates; Retry switched back on after an escalation asks the planner instead of escalating twice; a rung is taken once per failure.Proof (head ac61e18)
python3 -m unittest discover -s tests: 302 tests OKpython3 -m compileall -q runner scripts tests: OKpython3 -m runner.policy validate: rc 0versionctl release-check: release candidate OK, v0.37.0Not merged; a person merges it.
🤖 Generated with Claude Code