Repository navigation
Fix custom right-sidebar groups context - #20354
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
|
|
Dogfood tours of
|
|
Passes: CI passes on CI passes on Written by |
|
Merge receipt for |
…cx-q1lnl) 15 main commits since the last sync (ec21dd9). Full rename detection (merge.renameLimit=30000). Priority: main's signing commits. Signing (one version per script): - scripts/ci/signing-keychain.sh, scripts/import-apple-developer-id-intermediates.sh, scripts/ci/finalize-release.py, scripts/ci/publish-release-assets.py, tests/test_github_release_publication.py: identical on both sides after feat's ports (5f8d2ce, b0c33eb, fad7929, a2380e7); the .p12 + `-f pkcs12` import and the SHA-1 fingerprint check stay. - tests/test_signing_keychain_real_import.sh: main's version (manaflow-ai#21151: the G2 intermediate from the .p12 must be met in the keychain; openssl error text). signing-keychain-macos.yml: identical. - scripts/ci/notarize-nightly-dmg.sh, resume-nightly-notarization.sh, scripts/ci/smoke-dmg.sh: main's CMUX_DEFER_LAUNCH_SMOKES (manaflow-ai#21024) on feat's script. - .github/workflows/nightly.yml (manaflow-ai#21024, manaflow-ai#21049, manaflow-ai#21140): the signing job is split three ways: secret-free prepare-nightly-variant (helper, cmux-tui client, regressions, thinning, sidecar handshake; takes feat's build-nightly-app output), build-sign-notarize-nightly (runs no bundle code; smokes deferred), secret-free verify-signed-nightly (signed app, CLI, sidecar, SSH daemon contract, feat's 15 s crash-checking launch smoke, smoke-dmg.sh on the final DMG). Recovery keeps feat's find/recover jobs; recover defers smokes to a new secret-free verify-recovered-nightly-next. publish-nightly needs both verify jobs and publishes only tested digests. Literal Blacksmith labels on secret-holding jobs (incl. sign-release-notes). Promote guard (manaflow-ai#21049) merged without conflict. Feat's .publish-tooling recheck (manaflow-ai#21144 port), publish-by-id (manaflow-ai#21140, feat already had it), nightly-next notary pause/hold, signed-unnotarized zip, 20m wait, publish-nightly-identity-legacy and legacy-identity-target are kept. Not ported: main's CMUX_NOTARY_SUBMIT_ONLY async notarization (feat keeps its in-job wait + recovery); publish-nightly-identity-legacy defers its launch smokes and has no secret-free smoke of the re-signed NIGHTLY DMG yet (it re-signs the build verify-signed-nightly smoked). - .github/workflows/release.yml: feat's job (90 min, universal app only) with main's literal blacksmith-12vcpu-macos-26 signing label (manaflow-ai#21024); feat's single-appcast resume and MDM asset list (manaflow-ai#21140 resume). - tests/test_nightly_universal_build.sh: feat's in-job wait contract and pin-cmux-tui.sh resolver, main's prepare-nightly-variant job name. tests/test_nightly_next_recovery.py, test_nightly_cmux_tui_resolve.py, test_nightly_next_computer_use_helper.py, test_nightly_signed_unnotarized_artifact.py: updated for the new jobs. Other conflict choices: - 128 modify/delete in the legacy app, CLI, iOS/macOS legacy packages, cmuxTests, legacy resources and legacy docs: kept deleted. - cmux.xcodeproj/project.pbxproj: feat-cmux-next's side. - .github/test-determinism-allowlist.txt: feat's side (main's entries name deleted tests). - cmux-tui (manaflow-ai#20570, Cloud terminal cwd): mux.rs feat's split file; publish_resource_event (mux/journal.rs) now publishes pending terminal directories; terminal_directory.rs notifies with publish_journal_event and keeps feat's emit_terminal_tabs_changed; cmux-tui-platform platform.rs: case-insensitive kitty-shell-cwd scheme and the Windows drive slash strip ported into feat's existing parser. Main's new unit tests dropped. - cmux-browser-host JS, plans/cmux-next/browser-repl, tests/browser-parity: feat's side. manaflow-ai#18380 (browser repl hardening) NOT ported: feat has its own earlier port (cx-2y2, cx-p9mu, cx-wj2w); main's later version targets the WebKit/Swift host and conflicts in ~100 hunks; it needs a port lane gated by the browser-parity harness. Main's new unit tests, scenarios 40/41 and async-owner.js dropped. - CmuxNextDesign Localizable.xcstrings: feat's side (rename detection mapped main's legacy Resources/Localizable.xcstrings keys there). Not ported (legacy-only code paths): manaflow-ai#20346, manaflow-ai#21128, manaflow-ai#20354, manaflow-ai#18641, manaflow-ai#21135. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Custom sidebars opened in the right sidebar received an empty
data.groups()list even when the window contained workspace groups. The right-sidebar context now projects the same workspace-group snapshots used by pane and left-sidebar hosts, sodata.groups()exposes each group’s identity, name, collapse/pin state, anchor, color, and icon.Fixes #20281.
Testing
RightSidebarCommandPaletteTests.testCustomSidebarDataContextIncludesWorkspaceGroups, covering the produced interpretergroupspayload.python3 scripts/verify-local.py --affected origin/main— 4/4 affected checks passed../scripts/lint-pbxproj-test-wiring.sh— passed../scripts/localize-changes --base origin/main— 0 changed keys; catalog parity passed.RightSidebarCommandPaletteTests.xcodebuild; native compilation and focused test execution were verified by the macOS CI run above.Changelog
Fixed: Custom sidebars opened in the right sidebar now receive workspace groups.
Proof
No screenshot: this checkout has no macOS runtime. The regression test asserts the exact interpreter payload consumed by custom sidebars.
Checklist
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes custom sidebars opened in the right sidebar receiving an empty
data.groups()list even when the window contained workspace groups.The right-sidebar context now projects the same workspace-group snapshots as the pane and left-sidebar hosts, so
data.groups()exposes each group's identity, name, collapse/pin state, anchor, color, and icon. The duplicated group-snapshot mapping was extracted into a sharedContentView.customSidebarDataContexthelper used by all three sidebar hosts, with a regression test asserting the produced groups payload.Fixes #20281.
Written for commit dbc6d73. Summary will update on new commits.
Summary by CodeRabbit