Skip to content

feat: make per-role reasoning effort configurable via settings - #101

Merged
0xroylee merged 2 commits into
devos-ing:mainfrom
zhangweijian97:agile/issue-1
Sep 11, 2026
Merged

feat: make per-role reasoning effort configurable via settings#101
0xroylee merged 2 commits into
devos-ing:mainfrom
zhangweijian97:agile/issue-1

Conversation

@zhangweijian97

Copy link
Copy Markdown
Contributor

What Changed

  • Add an optional efforts object to ~/.config/roc/settings.json that overrides the per-role reasoning defaults (Scout high, Implement medium, Review high), e.g. {"efforts": {"implement": "xhigh"}}.
  • The advisor applies the configured effort per role; unset roles keep the built-in defaults, so behavior without the key is unchanged.
  • A configured effort the routed catalog models do not support falls back to the role default with one diagnostic per role instead of failing the run; when only a stronger fallback model supports the effort, routing advances along the normal profile chain (e.g. Implement moves Terra → Sol for xhigh).
  • onboard preserves an existing efforts setting when rewriting settings.
  • README and README.details document the setting next to the existing models mapping.

Why

The advisor currently hardcodes effort (implement ? "medium" : "high"). Operators whose provider supports richer reasoning levels cannot raise effort for hard implementation tickets or lower it for cheap scouting, even when they know their model and workload better than the defaults. This keeps the defaults as opinions but adds the escape hatch.

Design notes

  • Value space is medium / high / xhigh: minimal/low have no use in Roc's three-role pipeline, and on Anthropic-compatible channels Pi clamps max down to high, so xhigh is the highest level that reaches an OpenAI-style provider natively.
  • Verified end-to-end on a GLM (zai) setup: unsupported xhigh falls back cleanly with the diagnostic; medium/high behave as before.

How to Test

  • bun run typecheck and bun run lint pass.
  • bun run test: 335 tests pass including 3 new ones covering configured override + unset roles unchanged, xhigh chain advancement, and unsupported-effort fallback with diagnostics.
  • Note: 3 heavy integration tests (parallel-pi, two task-branch base-refresh cases) time out at the 5s limit on this (slow, loaded) machine also on unmodified main — they are environment timeouts, not regressions; CI's faster runners should confirm.

@0xroylee
0xroylee merged commit 420c754 into devos-ing:main Sep 11, 2026
1 check passed
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.

2 participants