cmux-next: clear five base reds in cmux-next checks (ErrorJournal, browser popups)

Merged
TE
19d ago
+10-1

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.

CheckCause on baseChange
Main-thread concurrencyErrorJournalService.start() harvest loop and sleep; ErrorJournal.scheduleFlush() sleepReviewed 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 rootshome.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 lintenum BrowserPopupWindowGeometry namespace typelint:allow with the reason (pure geometry over value inputs)
Type scaleBrowserPopupPanel.swift is below its baselineIts baseline row is dropped (the ratchet goes down)
web check:text-focusPopupLocationBarView selectable field draws a focus ringfield.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: ok
  • scripts/cmux-next/check-state-roots.sh: ok
  • scripts/lint-ios-package-conventions.sh: no unjustified violations
  • gen-type-scale.py --check and check-swift-type-scale.py: ok
  • check-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


View with [code]smith Autofix with [code]smith
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-allow and wakeup-allow comments 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 keep row for ~/.acpmux/daemon.log, which the app only reads and never writes.
  • Package conventions: lint:allow on BrowserPopupWindowGeometry (pure geometry over value inputs).
  • Type scale: drops BrowserPopupPanel.swift from the baseline since it no longer uses raw font sizes.
  • Text focus: sets focusRingType = .none on the popup location bar field.

Motion tokens in SidebarCardTransition.swift stay with #21951.