chore(deps): update KeyboardShortcuts and Linux toolchains - #3622
Conversation
Refresh both SwiftPM lockfiles, vendor QuickJS 0.16.2 unchanged, and update Linux release/static SDK builds to Swift 6.3.3 and desktop CI to Node 26. Keep Swift 6.2 and macOS 14 as the declared package floors.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed September 13, 2026, 1:43 PM ET / 17:43 UTC (Revision 4). ClawSweeper reviewWhat this changesUpdates KeyboardShortcuts and Linux build toolchains while preserving translated shortcut-recording prompts and adding recorder reattachment coverage. Merge readiness✅ Ready for maintainer review This remains a useful dependency update beyond current main and v0.60.1. The recorder adjustment addresses the upstream lifecycle change, and no blocking correctness or security defect was found. Priority: P3 Review scores
Verification
How this fits togetherCodexBar’s settings wrap a native shortcut recorder and translate its prompts into the selected app language. Separate CI and release workflows use the pinned toolchains to build Linux desktop and CLI artifacts. flowchart LR
A[Selected app language] --> B[Recorder coordinator]
C[Native recorder lifecycle] --> B
B --> D[Localized shortcut prompt]
E[Pinned build toolchains] --> F[Linux CI and release builds]
F --> G[Desktop and CLI artifacts]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep the dependency upgrade paired with the localized-placeholder repair while retaining existing deployment floors and artifact verification. Do we have a high-confidence way to reproduce the issue? Not applicable to the dependency refresh as a whole. The supplied native fixture demonstrates the upgrade-specific prompt regression and its repair; this review did not execute a current-main reproduction. Is this the best way to solve the issue? Yes. Observing subsequent placeholder writes directly addresses the dependency’s deferred cleanup without adding another competing task or changing stored shortcut preferences. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against caad1ca38c23. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles) |
Hold QuickJS 0.16 releases because their unmodified quickjs.c exceeds the enforced 2 MiB tracked-file limit. Keep the size check and vendor regeneration contract intact.
Observe recorder placeholder changes instead of racing KeyboardShortcuts deferred end-editing task. Preserve localized prompts and release the previous observation on reattachment; cover both lifecycle writes and detached recorders.
Updates KeyboardShortcuts and the Linux toolchains while preserving the Swift 6.2/macOS 14 package floors.
KeyboardShortcuts 3.1.0 defers recorder cleanup, which could overwrite CodexBar's translated placeholder with “Record Shortcut” after editing ends. Observe placeholder writes and restore the selected app-language prompt, replacing the competing deferred task. Reattachment releases the prior recorder observation. The existing lifecycle test reproduces the regression; it and the new detached-recorder test now pass.
The Swift static SDK checksum matches swift.org's published manifest, and its musl layout matches the existing build scripts. Xcode stays at 26.3 on macOS 15 release runners because that is their newest available Xcode; macOS CI already uses 26.6.
QuickJS stays at 0.15.1: all newer stable releases violate the enforced 2 MiB tracked-file limit (
quickjs.c: 0.16.0 = 2,143,761 bytes; 0.16.1 = 2,143,873; 0.16.2 = 2,144,977). The attempted update was removed without changing the size check. Other stable dependencies, Sucrase, lint/typecheck tools, SQLite and Actions are current. No open Dependabot PRs overlap.Recorder proof
Signed synthetic AppKit fixtures use the before/after coordinator source with KeyboardShortcuts 3.1.0 and a fixed Chinese translation. Both run the dependency's actual deferred end-editing callback and assert the resulting placeholder. These captures contain no account or desktop data.
Validation
Validated head:
9d873edbffb4c6515b083646b78fb48bec24d620.swift package updateand Xcode widget dependency resolution; both lockfiles agree exactly.swift build --force-resolved-versions -j 4builds all products successfully.make checkpasses, including SwiftFormat and SwiftLint with zero violations in 2,276 files.make testpasses all 1,132 selections across 104 groups: zero failed groups, retries, or timeouts.--version,--help, config inspection and JSON usage pass with explicit disabled-provider fixture config and Keychain access suppressed. A foreground loopback server successfully serves/health,/usage, and dashboard HTML at/, then exits cleanly.Exact-head GitHub proof:
The original dependency attempt exposed the recorder localization regression in CI and locally; this PR fixes it without removing or weakening tests. An earlier local PTY cleanup timeout passed on an unchanged 57-test focused rerun and in the complete clean run above. Local checks used system Bash after Homebrew Bash stalled in heredoc setup. No releases, tags, version bumps, or manual deployments were made.