fix(tabs): restore scrolling and pane transfers - #95
Conversation
Thank you for opening a pull request. Check these requirements while it is awaiting review.
|
ce540cf to
a559b22
Compare
a559b22 to
f2e3557
Compare
f2e3557 to
0ab1eb1
Compare
Co-authored-by: Codex <noreply@openai.com>
0ab1eb1 to
f4a7530
Compare
Co-authored-by: Codex <noreply@openai.com>
Keep the native header outside NSHostingView hit testing, use parent-relative scrollbar hit coordinates, and retain the grab area independently of hover painting. Add offscreen AppKit regression coverage for the event-routing and scrolling failures. Co-authored-by: Codex <noreply@openai.com>
Restrict tracking areas to control bounds instead of unclipped visible rectangles. Let prompt-queue content yield its trailing constraint so its minimum width cannot expand narrow panes, including during repeated resize updates. Preserve existing selection drawing and live terminal surfaces. Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Summary
GitHub Project
PR Type
Validation
Status: passed
Command:
python3 mac/tests/test_workspace_hover.pyResult: 54 checks passed against the production workspace controls. Coverage includes the 17-point compact group width, bounded row and close-button hover regions, layout and scroll changes, hide/unhide and reattachment, window deactivation, and selected-tab painting.
Status: passed
Command:
python3 mac/tests/test_workspace_hover.py --source-ref db2631bResult: The negative-control run exited 1 as expected with 39 checks passing and 15 failing, including the old 34-point group width and the stale close-button hover cases.
Status: passed
Command:
python3 mac/tests/test_pane_bounds.pyResult: 214 checks passed using the production pane chrome, terminal container, and prompt-queue constraints at 32, 80, 160, and 360-point widths. The negative-control run against
5d52516exited 1 as expected with 118 passing and 96 failing checks.Status: passed
Command:
python3 mac/tests/test_tab_strip_scrolling.pyResult: 50 checks passed in borderless and titled offscreen AppKit fixtures, covering event routing, tab and close-button clicks, bidirectional pixel scrolling, vertical wheel mapping, clamping, thumb dragging before hover callbacks, and overlay cleanup.
Status: passed
Command:
python3 mac/tests/test_tab_strip_scrolling.py --source-ref 6cde33bResult: The negative-control run exited 1 as expected with 20 checks passing and 30 failing, confirming the fixture detects the original routing and scrollbar failures.
Status: passed
Command:
git diff --check && xcrun swiftc -parse mac/zshell/WorkspaceChromeViews.swiftResult: Whitespace validation and Swift syntax parsing completed without diagnostics.
Status: passed
Command:
make updateResult: The final Debug app built and launched from
/Users/wzz/个人/code/zshellwith DerivedData atmac/build/debug; the running executable was verified atmac/build/debug/Build/Products/Debug/zshell Debug.app/Contents/MacOS/zshell.Status: passed
Command:
codesign --verify --deep --strict --verbose=2 'mac/build/debug/Build/Products/Debug/zshell Debug.app'Result: The final Debug bundle is valid on disk and satisfies its designated requirement.
Status: passed
Command: Main-worktree Debug app, tab-group and color-panel interaction.
Result: The 17-point group arrow remained clickable and toggled collapse state without a blue focus ring. No group name was shown. All nine presets fit in one row; red and orange showed the matching outer selection ring with a white inner ring, and choosing orange updated the tab-group marker to
#FA903Eimmediately.Status: passed
Command: Main-worktree Debug app, pointer-driven four-pane divider resize and tab switching.
Result: The divider was dragged in both directions and restored. Terminal content and pane borders followed without overlapping adjacent panes or sidebars, and moving the pointer away left no unrelated tab or close-button hover backgrounds.
Status: passed
Command:
jq empty mac/zshell/Localizable.xcstrings && (cd web && bun run typecheck && bun run build)Result: The String Catalog is valid JSON, website type checking passed, and the production build prerendered all 38 routes successfully.
Status: not run
Reason: Physical trackpad gestures, full-header pane-drop animation, and terminal-backend-specific transfer paths still require manual acceptance. They are separate from the group-control, divider, hover, and color-panel paths verified above.
Risk and Rollback
Related Issue
None
AI Attribution