Bound silent chat RPCs and validate Mac send recovery - #1692
Merged
Merged
Conversation
Open-Squilla
enabled auto-merge
September 16, 2026 22:34
This was referenced Sep 16, 2026
Closed
Open-Squilla
force-pushed
the
fix/mac-chat-recovery
branch
from
September 16, 2026 23:43
cd7e4c3 to
a2874c6
Compare
github-merge-queue
Bot
removed this pull request from the merge queue due to a conflict with the base branch
Sep 17, 2026
Add actionable browser credential recovery and regressions for native Mac idle return, same-session follow-up turns and guest authorization boundaries. Preserve server execution budgets and legacy synchronous maintenance waits. Adapt CLI response cleanup and unsubscribe ordering from PR #1515. Co-authored-by: ptterjgf <57247786+ptterjgf@users.noreply.github.com>
Open-Squilla
force-pushed
the
fix/mac-chat-recovery
branch
from
September 17, 2026 08:48
a2874c6 to
e6ce3d0
Compare
Open-Squilla
enabled auto-merge
September 17, 2026 08:49
|
Merge queue CI: success — run 35204359704, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
This was referenced Sep 17, 2026
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.
Scope
Scope boundary: Recover from response-silent CLI chat RPCs without replaying ambiguous sends, make rejected browser credentials actionable, and add Mac/background and same-session send acceptance coverage.
CLI chat admission, abort and subscription requests now have a response deadline and clean up pending futures on timeout, cancellation or close. Unsubscribe releases its ordering lock before awaiting the reply. Synchronous compaction and Cron runs use their server execution budgets plus a response margin; five explicitly listed maintenance operations without an aggregate server deadline retain their existing waits and support an explicit deadline override. The retired memory.repair.run method uses the ordinary bounded deadline.
The browser shows an actionable Token required state for explicit authentication rejection, focuses the existing credential field, preserves typing while retries are paused, and connects on Enter. Legal guest access and ordinary permission/policy denials keep their distinct behavior. Managed desktop credential controls remain managed.
Non-goals: Automatically retrying ambiguous sends, changing server authorization, adding stream-idle deadlines, implementing offline auto-send, or accepting the original Windows #1601 scenario.
Branch
Base branch: main
Target exception: N/A
Issue
Linked issue: Fixes #1157, fixes #1048, fixes #958, fixes #1507. Refs #1217, #1292, #1601 and #1515.
Release Note
Release note: CLI chat now reports unanswered Gateway requests instead of indefinitely blocking later turns. Browser authentication rejection provides stable, focused token entry. Mac idle-return and consecutive-send recovery have permanent regression coverage.
Tests
Ruff: Updated CLI source, its regression file, and workflow tests passed after integration with current main. The wider source/tests check also passed before the rebase.
Pytest after synchronizing current main and its locked dependencies: CLI keepalive plus workflow preflight, 201 passed; additional CLI and WebSocket/auth/guest-policy files, 80 passed; provider stream lifecycle and WebSocket request concurrency, 42 passed. After removing the retired memory repair timeout exception, all four CLI Gateway files passed again (70 tests); its new deadline case failed before the correction.
Build: WebUI
npm run buildpassed, including type checking, architecture/i18n checks, bundle verification and Gateway asset staging. Targeted Python mypy passed.Regression tests: added
Notes:
--connection-faults --flow-control --idle-send --background-ms=65000: 65,000 ms hidden, 1,665 ms from activation to send readiness, one accepted send, one local provider request, rendered reply, retained renderer/composer, and clean shutdown without force. The preceding full CI also passed this scenario on its first attempt (65,034 ms hidden, 2,754 ms recovery). Fresh required CI must validate the updated main and Electron dependency before merge.The default test path remains offline, deterministic, credential-free, and safe for forks. Browser/native checks use synthetic data and isolated profiles; the provider is a local keyless fixture. Shared client logic is platform-neutral; native acceptance here was macOS only.
Maintainer Live Check
Maintainer live check: yes
Surface: browser, gateway
Maintainer-only note: Real local Electron, Gateway and browser checks were run on macOS with synthetic fixtures. No external provider credentials or release verification were needed.
Safety
No secrets, real prompts/transcripts, private runtime data, local paths, test artifacts or diagnostic logs are committed. Permission checks remain enforced. A lost acceptance receipt never causes an automatic resend. Slow maintenance operations are not silently forced into the ordinary 30-second request budget.
Third-Party Origin
Third-party origin: adapted/ported
Details if non-none: The CLI pending-future/deadline and unsubscribe-ordering work adapts ptterjgf's PR #1515, commit
f764d686ef9b61ffdeebbaee4c4a1d11b52cb6f3, from this Apache-2.0-licensed repository. Attribution is retained with a Co-authored-by trailer. Additional operation-budget compatibility and regressions were added during review; no external dependency or vendored package is introduced.Documentation Changes