fix: P131 current-model request bodies, sidecar stall + P130 follow-ups; recommend GPT-6 Astra / Claude Opus 5.5 / Fable 5.1 - #3
Merged
Conversation
…ps; recommend GPT-6 Astra / Claude Opus 5.5 / Fable 5.1 Model support (every current Claude model and GPT-6 Astra were unusable): - Anthropic: stop sending temperature to Fable 5/5.1, Opus 4.7+, Sonnet 5+ (400 on every request); map reasoning level to adaptive thinking + output_config.effort instead of budget_tokens; never send thinking.disabled to always-thinking models; retry once without sampling/thinking/effort on a 400 naming them; surface stop_reason "refusal" instead of an empty reply. - OpenAI: treat gpt-6* as a reasoning model (max_completion_tokens, no temperature); omit reasoning_effort with tools on GPT-6 chat/completions and map 'minimal' to 'low'; recognise "... are not supported" as a reasoning-param error; Test connection and the vision path use max_completion_tokens for reasoning models. Sidecar: - The P129 stdin watchdog peeked stdin from a helper thread; after ~2 s idle, back-to-back requests stalled into timeouts. It now watches the parent PID. - Requests go out one at a time (budgets start when sent); heartbeats can extend a call to at most 3x its budget; onStillRunning fires on heartbeats; Stop cancels the wait (CANCELLED); failed results are cached under op_id so the TIMEOUT follow-up never re-runs a half-built generator; op_ids are namespaced per run. - Python < 3.11: catch concurrent.futures.TimeoutError in the heartbeat loop. - Durations reach the tool row and exports; the amber busy dot is wired up. - looksLikeQuestion judges the reply's ending (plans proceed, parameter requests stop). Settings / config: - Protocol switch and quick-fill apply a matching model and provider defaults. - Number fields clamp on blur; env fallback keeps saved preferences and is never persisted; no config save before the stored config has loaded. - Non-streaming requests no longer hit the 20 s connect timeout (and are not re-sent). - Truncation counts the system prompt + tool schemas; the max-rounds summary passes tools (Anthropic 400s on tool blocks without tools); theme/locale IPC channels moved into ipc-channels.ts; ruff E702 in test_reliability.py. Docs: presets, README / README.zh-CN, USER-GUIDE, ARCHITECTURE and .env.example recommend gpt-6-astra (OpenAI) and claude-opus-5-5 / claude-fable-5-1 (Anthropic). Tests: tests/llm-request.test.mjs (request bodies per model, truncation, llmFetch), tests/sidecar-client.test.mjs (Node client vs the real sidecar server; 5/5 fail on 0.2.129), Python tests for failure caching, futures timeout, PID watchdog. 191 JS + 58 Python tests pass; typecheck, lint, ruff, compileall, renderer build OK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015nT6r6mw2MoBrJhEfWJbQD
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.
What Changed
v0.2.130 (P131) fixes three problems: current Claude models and GPT-6 Astra were unusable, the sidecar stalled after idle gaps, and several P130 features never took effect. It also updates the recommended models.
Model support
temperaturewas sent on every request, a 400 on Fable 5/5.1, Opus 4.7+ and Sonnet 5+ (every Claude preset except Sonnet 4.6). It is no longer sent to those models.thinking: {type:'adaptive'}+output_config.effort. The removedbudget_tokensform is no longer sent.thinking.disabled.stop_reason: "refusal"now shows a notice instead of an empty reply.gpt-6*is now treated as a reasoning model:max_completion_tokens, notemperature./chat/completions,reasoning_effortis omitted whenever tools are present.max_completion_tokensto reasoning models.Sidecar
CANCELLED).concurrent.futures.TimeoutError.looksLikeQuestion: it now judges the end of the reply.Settings / config
ipc-channels.ts.test_reliability.py.Docs
.env.examplenow recommendgpt-6-astrafor OpenAI andclaude-opus-5-5/claude-fable-5-1for Anthropic.Related Issue
N/A. The issues came from review of v0.2.129 and from the user's request to update the recommended models.
Type of Change
Testing
npm testpasses: 191 tests, including the newtests/llm-request.test.mjsandtests/sidecar-client.test.mjs.npm run lintpasses.npm run typecheck,ruff check sidecar/,pytest sidecar/tests(58 passed),compileall, the renderer build andscripts/precommit-check.sh 0.2.130also pass.tests/sidecar-client.test.mjsruns the Node client against the real sidecar server with fake tools. It fails 5/5 on 0.2.129 and passes 5/5 here.fetchcaptured the request bodies for Fable 5.1, Opus 5.5 and GPT-6 Astra.Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_015nT6r6mw2MoBrJhEfWJbQD
Generated by Claude Code