fix: improve chat controls, tool recovery, and router presets - #1779
Merged
Merged
Conversation
…composer-mode-layout
…-argument-recovery-0921
Open-Squilla
enabled auto-merge
September 20, 2026 22:49
|
Merge queue CI: success — run 35547682677, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
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.
Chat controls now group execution modes and fit narrow composer layouts. Background commands remain visible with session-scoped logs and stop controls after a turn finishes, and complete but invalid tool-call batches can be corrected without executing valid siblings or double-counting usage.
Scope
Scope boundary:
deepseek-flash; OpenRouter C1 usesdeepseek/deepseek-v4-flash-0731. Keep Electron's displayed default, onboarding probe, and saved model aligned with C1.Non-goals: changing operator-owned model ladders or adding credentials/live test evidence to the repository.
Branch
Base branch: main
Target exception: N/A
Issue
Linked issue: None
If None, reason: maintainer-requested integration of reviewed local changes and follow-up fixes.
Release Note
Release note: Improves chat controls, background-process visibility, invalid tool-argument recovery, and recommended model routing; fixes stale OpenRouter recommended presets after upgrades.
Tests
Ruff:
ruff check src testspassed;git diff --checkpassed.Pytest: focused offline suites passed for tool rejection/recovery, ensemble usage, session processes, router presets/upgrades, request payloads, capacity, onboarding, and Desktop configuration bridging. The Windows symlink persistence test fails at fixture setup with WinError 1314 on the unchanged base as well; the relevant persistence suite otherwise passed.
Build: Electron TypeScript build and desktop router configuration/normalization scripts passed. Six targeted WebUI files passed (298 tests). Plan presentation and task progress browser tests passed across desktop and narrow viewports; composer Stop retains its 44px hit target and pending cancellation state.
Contract verification: all 910 roles and 235 production roles passed; the 22 Node tooling tests passed. Follow-up Python suites passed 186 tests with 31 platform/integration skips.
Regression tests: added for managed preset upgrades, custom/legacy preservation, sparse saves, reactivation, foreign-provider protection, and TokenRhythm C1 request identity with no default thinking field, alongside the process/recovery coverage.
Follow-up validation: 293 router, usage, capacity, doctor, and stream golden tests passed (2 skips). After merging the latest main dependency updates, 181 startup, stream golden, and doctor checks passed; full Ruff passed. Full Electron onboarding E2E passed locally with isolated profiles and synthetic credentials.
Process lifecycle validation: the complete process-tree, session-process RPC, and shell-isolation test files passed on Windows (135 passed, 25 platform skips) and WSL/Linux (151 passed, 9 platform skips). Deterministic regressions ensure Stop signals surviving descendants before waiting and accepts an empty descendant capture only with independent group confirmation. The process RPC test waits for the public completion state within its original timeout budget.
Notes: local tests cover source behavior; fresh PR CI validates the combined branch with the latest main dependency updates. Live provider calls were not rerun for the final follow-up.
Maintainer Live Check
Maintainer live check: no
Surface: N/A
Safety
No secrets, local-only artifacts, private prompts/transcripts, channel identifiers, or AI session artifacts are included.
Third-Party Origin
Third-party origin: none
Documentation Changes