SIGN IN SIGN UP

fix(code): update rubric grader model without restart (#5885)

Closes #4366

Rubric grading now resolves its model dynamically per request from
thread state rather than remaining pinned to the startup graph
configuration.

### How it works for users

- **Follows `/model` by default**: Switching the agent model with
`/model <model>` now immediately updates rubric grading to use that same
model for subsequent turns.
- **Dedicated grader override**: Setting a specific grader with `/rubric
model <model>` (or `/goal model <model>`) applies to the thread
immediately without restarting the local server or dropping context, and
works seamlessly with external graph sessions.
- **Clearing overrides**: `/rubric model clear` (or `/goal model clear`)
returns grading to following the active main model.
- **Inspection**: `/rubric show` and `/goal show` display the active
model name directly instead of reporting a static startup label.

Under the hood, selections are persisted via thread state
(`_rubric_model_spec`), request-local context isolates concurrent runs,
and resolution errors fail cleanly rather than falling back to stale
cached graders.

---------

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
M
Mason Daugherty committed
428e760668d8fdfbb920966e2969c76040e30745
Parent: d8686f7
Committed by GitHub <noreply@github.com> on 8/28/2026, 1:31:24 AM