Prepare TypeWhisper 1.7.0-rc1 and fix MCP timeout ordering - #1298
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (2)
Included review availability: 2 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour. 📝 WalkthroughWalkthroughThe PR enables manual Swift CodeQL analysis, adds TypeWhisper 1.7.0 RC1 release notes, and updates MCP timeout handling so asynchronous cleanup completes before a timeout error is returned. ChangesRelease and reliability updates
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Caller
participant MCPClientSession
participant Operation
Caller->>MCPClientSession: Start withTimeout
MCPClientSession->>Operation: Run operation and timeout task
MCPClientSession->>Operation: Cancel operation after timeout
Operation-->>MCPClientSession: Complete asynchronous cleanup
MCPClientSession-->>Caller: Throw .timedOut
Merge Risk: ⚪ Minimal · up to The change ensures timeout cleanup completes before returning an error and prepares the RC1 release workflow and notes. Validation passed, with no concrete merge-blocking risk remaining. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
A rabbit checked the timeout gate Comment |
Publish TypeWhisper 1.7.0-rc1 after successful user everyday testing of Daily 20260910, including an additional AirPods Max retest, and the explicitly requested Vercel AI Gateway integration from #1295.
Add curated RC release notes and allow manual Swift CodeQL analysis before publication. Also fix a genuine MCP timeout race exposed by the initial release attempt: cleanup could cancel the pending request before the timer published its timeout result, so callers sometimes received
CancellationError. The timer now returns a timeout outcome; the parent selects it before cancellation, awaits cleanup, then reports the timeout. A deterministic regression fails the cleanup-order assertion against the original implementation and passes with the fix.Closes #1296. RC1 is published as a GitHub prerelease in the Release Candidate update channel. Stable and Homebrew remain on 1.6.0.
Validation
84f8b117874972bf17d86326edc41c4a0fe97cfd, build 1220: signed release workflow passed 1,762 app tests, 788 SDK/plugin tests (3 expected opt-in live-provider skips), Release build, warning checks, iCloud bridge/profile checks, notarization, isolated app spawn, and canonical appcast verification. Duplicate standalone Build DMG runs were cancelled in favor of this complete release workflow, not counted as passes.82fffe163e149e5fa00e87647f1a3acdd83e29f4; Swift, Python, and Actions analyses reported zero results/errors/warnings. The subsequent change touches only the optional MCP plugin and its tests, which the app CodeQL scheme does not build. App/host-SDK sources, Xcode project, dependency manifests and locks are unchanged, so the analyzed app inputs are unchanged. Final-head SDK tests include the corrected MCP implementation.actionlint -shellcheck= .github/workflows/codeql.yml/opt/homebrew/bin/python3 -m unittest discover -s scripts -p 'test_*.py'— 47 tests pass.DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --package-path TypeWhisperPluginSDK --force-resolved-versions --filter MCPClientPluginTests— 38 tests pass.DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer swift test --package-path TypeWhisperPluginSDK --force-resolved-versions— 788 tests, 3 expected skips, no failures.bash scripts/check_release_signing.sh --require-notarization /private/tmp/typewhisper-rc1-mounted/TypeWhisper.appandbash scripts/check_release_binary_instrumentation.sh /private/tmp/typewhisper-rc1-mounted/TypeWhisper.app/Contents/MacOS/typewhisper-clipass against the downloaded artifact.Published release: https://github.com/TypeWhisper/typewhisper-mac/releases/tag/v1.7.0-rc1