Repository navigation
feat: rotate wallpapers independently per display (#27075) - #27092
Conversation
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 4f5bcd1 to compare; do not merge until green; see lane-rules Default changesThis pull request changes 3 defaults at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
|
Bead |
|
Owned by an agent session · session |
|
Review (codex gpt-6-astra high, next-review): BLOCK at b9a12cf
|
…otation # Conflicts: # plans/cmux-next/arch-ratchet.json # web/data/next-docs/settings-reference.generated.json
Base now needs an author, owner, independent receipt and expiry on each exception, and counts the App lines the window wiring adds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ff80106bb8de828ca168
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
The generator's output at the merged head. It also brings base's browser.omnibar.height and fontSize rows (#28993), whose exports base has not regenerated yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ff80106bb8de828ca168
|
Review (codex, router-review): SHIP at 1d1b97c Follow-ups: 1. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 1d1b97c Visual verdict: no images; Leo tries the build
Follow-ups:
|
…otation # Conflicts: # web/data/next-docs/settings-reference.generated.json
…the base merge Base's own stale autoArchive default stays as base has it; base autofix regenerates it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ff80106bb8de828ca168
|
For awareness: this PR has a SHIP review at its head, but GitHub reports it as conflicting with |
…otation # Conflicts: # plans/cmux-next/arch-ratchet.json # web/data/next-docs/settings-reference.generated.json
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ff80106bb8de828ca168
|
Review (codex gpt-6.1-sol xhigh, next-review): SHIP at 5fb0364 SHIP at 5fb0364
Native tests could not run because Swift/Xcode are unavailable. Follow-ups:
|
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (next-review patch-id; carried): SHIP at 22aac0c The independent SHIP at 5fb0364 carries to this head: the PR's own change ( |
…otation # Conflicts: # web/data/next-docs/settings-reference.generated.json
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-ff80106bb8de828ca168
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex, router-review): SHIP at 178a449 Reviewer: codex gpt-6.1-sol xhigh, fast tier. Follow-ups: 3. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 178a449
Follow-ups:
|
|
Swift-logic note (REWRITE R-SWIFT-MIRRORS): this PR added Why this matters: the tip's Nothing to change in this merged PR. REWRITE R-SWIFT-MIRRORS tracks the move (design: https://cmux-orchestrator-1.tail137216.ts.net/resize-videos/rewrites/R-SWIFT-MIRRORS/DESIGN.md, section 11). |
|
Swift logic follow-up (tip watcher swift-logic row, STATUS 13027 "SWIFT LOGIC CULPRITS"; lead order). This PR raised
plans/cmux-next/layer-ownership.md says Rust owns every state, list and rule and Swift is the platform shell. Please move the new logic of this PR in a follow-up: to Rust (the crate that owns the area; the owner lists in STATUS 12147-12165 name the target per area), or at least out of the app into its package. If a declaration above is platform code (AppKit, Core Animation, OS calls, strings, tokens, DEBUG tooling), reply here and the table gets a PLATFORM row with your reason instead. The swift-logic row is a report, not a gate: nothing blocks on this comment. |
Fixes #27075
Leo asked: “can you have it sync up with the desktop wallpapers? And, you know, like if you have different displays, that might have different kinds of situations that you can run into.” He also asked for wallpapers that “swap” “on whatever cadence.”
This adds opt-in per-display background and cadence overrides while preserving the global defaults from #22577. A stable NSScreenNumber binds a window to its display; screen changes rebind immediately, workspace and pane pins keep precedence, and
stop()cancels the cadence timer and removes the observer. The display map acceptsdaily,folder:<absolute path>, fixed selections, and explicitnone.Coverage first reproduces independent display folder/hourly cadence, moves between screens, global fallback, workspace opt-outs, and observer cleanup in
DisplayBackdropBindingTests. The binding is wired into each WindowController and follows settings snapshots.Fleet focused check:
cmux-ci run --class light --script scripts/ci/package-test-lane.sh --ref d40d897f009d4bc480982b17f02fe2b68de0cb59 --key wallpaper-rotation-d40d897f --arg=suite --arg=Packages/macOS/CmuxNext --arg=CmuxNextSettingsTests.DisplayBackdropBindingTests --env CMUX_CI_XCODE_APP=/Applications/Xcode_26.6.app --timeout 3000(step pending).Reference inspected:
cmux-design-references/apps/t3-code/live/settings-appearance-themes.pngand its NOTES; this behavior adds no motion or visual redesign. The supported capture-host two-display primitive is ready for the fleet capture owner; no synthetic/private image is included.Exact-head fleet capture at
45379eb17c4483ffbf94641a0b5a23c157c388f3: six two-display states passed (global painting, UUID-keyed folder override, 0→1→0 restoration, explicit none, and global daily/hourly cadence inheritance). Buildbf802bf611ed2adff6a4d83f, artifactsha256:a1252018c78d07071961bb0b6a81f0edb2ef62f1e7bc0be4c8d57c1ffb09c9f7.Agent session: agent session