cmux-next: clear five base reds in cmux-next checks (ErrorJournal, browser popups)
feat-cmux-next has five red checks in "cmux-next checks", added by the ErrorJournal commit (1597dc9c14d) and the browser popup commits (fa8b3fcdda8). Because of them, every PR into feat-cmux-next fails that lane, gh-merge-green refuses every PR (it never waives the concurrency lint), and the web lane's check:text-focus failure skips "Test webviews". This PR only changes comments and baselines. Nothing behaves differently.
| Check | Cause on base | Change |
|---|---|---|
| Main-thread concurrency | ErrorJournalService.start() harvest loop and sleep; ErrorJournal.scheduleFlush() sleep | Reviewed concurrency-allow and wakeup-allow comments. The loop runs in a Task.detached(priority: .utility) and the flush delay runs in the ErrorJournal actor's task, so neither runs on main. Both are cancellable cadence or one-shot deadlines. |
| No literal state roots | home.appendingPathComponent(".acpmux/daemon.log") | A keep row in state-roots-baseline.tsv. The app only reads the shared Release/NIGHTLY daemon log and never writes it. |
| Package conventions lint | enum BrowserPopupWindowGeometry namespace type | lint:allow with the reason (pure geometry over value inputs) |
| Type scale | BrowserPopupPanel.swift is below its baseline | Its baseline row is dropped (the ratchet goes down) |
web check:text-focus | PopupLocationBarView selectable field draws a focus ring | field.focusRingType = .none, folded in from #21963 |
Not included: Motion tokens in SidebarCardTransition.swift, which stays with #21951 for its owner.
Testing
Run on huge-blue at base f143ac4801f with this change. Every check below failed on base before the change:
scripts/cmux-next/check-concurrency.sh Packages/macOS/CmuxNext: okscripts/cmux-next/check-state-roots.sh: okscripts/lint-ios-package-conventions.sh: no unjustified violationsgen-type-scale.py --checkandcheck-swift-type-scale.py: okcheck-text-focus-rings.py: no focus ring on a text field
@lawrencecchen FYI, these are your ErrorJournal and popup files. If you'd rather move the harvest to a DemandTimer, or resolve the app's acpmux home through AcpmuxEnvironment, those can replace the allow comments later.
🤖 Generated with Claude Code
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Clears the five red checks in the "cmux-next checks" lane so PRs into feat-cmux-next stop failing it, getting refused by gh-merge-green, and skipping the web lane's "Test webviews". Only comments and baselines change; nothing behaves differently.
- Concurrency lint: adds
concurrency-allowandwakeup-allowcomments on the ErrorJournal harvest loop and flush delay, which run in a detached utility task and the actor's task, never on main. - State roots: adds a
keeprow for~/.acpmux/daemon.log, which the app only reads and never writes. - Package conventions:
lint:allowonBrowserPopupWindowGeometry(pure geometry over value inputs). - Type scale: drops
BrowserPopupPanel.swiftfrom the baseline since it no longer uses raw font sizes. - Text focus: sets
focusRingType = .noneon the popup location bar field.
Motion tokens in SidebarCardTransition.swift stay with #21951.