Skip to content

Commit 7c36a81

Browse files
feat(check): retire the thinking-disabled workaround — effort buys extended thinking
The cersei pin predated the provider's ability to round-trip Anthropic thinking blocks: its SSE parser dropped `signature_delta`, so the thinking block echoed back on the second turn carried an empty signature and the API rejected it. Effort was therefore applied as a sampling temperature, with a comment promising to revisit once fixed upstream. wack/cersei (now the authoritative source; we are not tracking pacifio upstream) carries the fixes: 94f18b2 accumulates the signature from `signature_delta` and 5bd06db preserves `redacted_thinking` across turns. Bump the pin (d485d50 -> 4dfac7f — which also brings the bounded, gitignore-aware GlobTool that closes the unbounded-walk timeout vector) and map effort onto its natural vehicle: - medium/high enable extended thinking (4096/8192-token budgets, cersei's own EffortLevel scale, safely under the 16k default max_tokens); - low — the default — keeps thinking off for speed and cost, steering with temperature exactly as before (0.0, +0.5 per retry attempt). Exactly one control is applied per run: the API rejects a temperature when thinking is enabled (thinking samples at 1.0, which also gives thinking retries the trajectory diversity that attempt_temperature provides on thinking-free runs). Not yet verified against the live API (no credentials in the build environment): a `multi check --effort medium` run on a real project should confirm turn-2 thinking blocks are accepted before this merges. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VxKv1hhPZ4GocfmwHUk1G8
1 parent beb8168 commit 7c36a81

5 files changed

Lines changed: 133 additions & 80 deletions

File tree

BUGS.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,21 @@
22

33
These are bugs (or missing features) I've observed while working with `multi checks`.
44

5-
- [ ] Output is now hanging. I suspect this is recent (within the last few commits) and it started
6-
happening after implement the changes to the `Presenter` actor to fix writing text off-screen without wrapping.
7-
85
- [ ] Remove the `Claude -p` executor.
96

10-
- [ ] Running 16 agents seems to nearly freeze the computer. Use an OTel profile to determine if this is true.
7+
- [ ] No use of Cersei workflows to chain multiple prompts together.
118

12-
- [ ] Temperature not configured.
9+
- [ ] Logs no longer report the id of the check that failed (or the number of attempted retries)
1310

14-
- [ ] No limit on max turns.
11+
- [ ] Assemble_instructions is hard-coded: src/checks/executor/mod.rs:98 (definition), called from src/checks/executor/cersei.rs:110
1512

16-
- [ ] Logs no longer report the id of the check that failed (or the number of attempted retries)
13+
- [ ] No system prompt provided.
1714

18-
- [ ] No use of Cersei workflows to chain multiple prompts together.
15+
- [ ] Not sure if prompt caching is enabled at all.
16+
17+
- [ ] Running 16 agents seems to nearly freeze the computer. Use an OTel profile to determine if this is true.
18+
19+
- [ ] No limit on max turns.
1920

2021
- [ ] No support for Fireworks AI.
2122

@@ -25,14 +26,6 @@ happening after implement the changes to the `Presenter` actor to fix writing te
2526

2627
- [ ] No loading of RULES.md files from the .claude directory.
2728

28-
- [ ] Assemble_instructions is hard-coded: src/checks/executor/mod.rs:98 (definition), called from src/checks/executor/cersei.rs:110
29-
30-
- [ ] No system prompt provided.
31-
32-
- [ ] Not sure if prompt caching is enabled at all.
33-
34-
- [ ] No trace capture. We need a way to record all session traces so that we can analyze why they failed.
35-
3629
- CERSEI: `append_system_prompt()` function is dead unless routed through the separate build_system_prompt() composer.
3730

3831
- [ ] `Ctrl-C` (shutdown signals) needs to be handled gracefully and cross-platform.
@@ -50,6 +43,13 @@ guaranteeing the terminal is restored on the way out.
5043

5144
## Fixes
5245

46+
- [x] No trace capture. We need a way to record all session traces so that we can analyze why they failed.
47+
48+
- [x] Output is now hanging. I suspect this is recent (within the last few commits) and it started
49+
happening after implement the changes to the `Presenter` actor to fix writing text off-screen without wrapping.
50+
51+
- [x] Temperature not configured.
52+
5353
- [x] No loading of CLAUDE.md files
5454

5555
- [x] Concurrency still not respected.

Cargo.lock

Lines changed: 32 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

guides/checks.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,10 @@ base_url = "https://..."
187187
An unset flag contributes nothing — it never overrides a value from the
188188
environment or file. The `model` is validated against a hardcoded allowlist of
189189
known IDs for the selected provider; an unknown ID is a clear error. `effort`
190-
currently maps to the in-process agent's sampling temperature (`low` → most
191-
deterministic, `high` → most exploratory); mapping it to an extended-thinking
192-
budget is pending an upstream provider fix.
190+
maps to the in-process agent's extended-thinking budget: `medium` and `high`
191+
enable extended thinking (4096- and 8192-token budgets respectively), while
192+
`low` — the default — keeps thinking off for speed and cost, running the agent
193+
deterministically instead.
193194

194195
The **`executor`** selects the execution engine. The default `cersei` runs each
195196
check as an in-process agent (native multi-provider model swapping, no external

0 commit comments

Comments
 (0)