Skip to content

fix(workspace): complete session grouping and repair UI regressions - #93

Merged
wzz6423 merged 1 commit into
mainfrom
fix/pr-regressions-session-groups
Sep 14, 2026
Merged

wzz6423 merged 1 commit into
mainfrom
fix/pr-regressions-session-groups

Conversation

@wzz6423

@wzz6423 wzz6423 commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • Organize sidebar projects and each project's session tabs into independent groups using native AppKit controls. Preserve tab objects during transfers, keep explicit project directories, and restore empty projects and collapsed groups correctly.
  • Make Quick Launch readable in dark mode, prevent duplicate saved rows and unstable editor sizing, and fix SSH edit/delete hit testing and strict port validation.
  • Preserve prompt drafts when running queued commands; fix special file names and process completion in file search, shortcut key-code mapping, editor undo/highlighting, and link targets in both terminal backends. Update user documentation and Chinese/Japanese strings.

GitHub Project

  • Project: zshell Development

PR Type

  • Type: fix

Validation

  • Status: passed

  • Command: xcodebuild -project mac/zshell.xcodeproj -scheme zshell -configuration Debug -destination 'platform=macOS,arch=arm64' -derivedDataPath <temporary> build; codesign --verify --deep --strict --verbose=2 <Debug app>

  • Result: Final arm64 Debug build and strict signature verification passed. No new source warnings; Debug identity and version unchanged.

  • Status: passed

  • Command: python3 mac/tests/test_prompt_selection.py; python3 mac/tests/test_file_content_search.py; python3 mac/tests/test_project_file_search.py; python3 mac/tests/test_terminal_links.py; python3 mac/tests/test_ghostty_link_position.py; cargo test --locked --manifest-path mac/Vendor/alacritty-bridge/Cargo.toml

  • Result: Real PTY/zsh 11 tests, grep 5 tests, project file search 13 assertions, link classification 4 tests, Ghostty 15 in-memory engine scenarios, and Rust 35 tests passed. Additional local harnesses passed 40 grouping checks, 33 offscreen AppKit behavior checks, 9 dynamic-color checks, editor undo checks, and randomized UTF16 indexing checks. These harnesses do not establish complete visible GUI acceptance.

  • Status: passed

  • Command: bun run typecheck && bun run build in an isolated copy of the current website; git diff --check; bash .github/scripts/check-repository-hygiene.sh

  • Result: Website type checking, build and 38-page prerendering passed after the documentation updates. Diff and repository hygiene checks passed. Temporary build/test artifacts were removed.

  • Status: passed

  • Command: Launch baseline and integrated Debug apps and exercise Quick Launch through native desktop automation.

  • Result: Reproduced the original dark background, duplicated rows, narrow editor and invalid SSH port issues. Observed the integrated native sidebar/tab strip, corrected dark empty state and 480-point editor; verified the saved command entry in actual application storage.

  • Status: not run

  • Reason: The desktop automation service subsequently returned repeated timeouts. Complete visible drag/drop, cross-window PTY transfers, restart recovery, both-backend smoke tests, system IME, notification delivery, settings import/export and external SSH acceptance remain pending. Existing model/engine checks cover only their stated scope.

Risk and Rollback

  • Risk: Native sidebar/tab controls and session persistence affect workspace navigation. Complete visible GUI acceptance remains pending; the repository owner explicitly approved merging this implementation now and handling later findings in separate branches and pull requests. Ghostty link resolution uses existing APIs and may emit a normal mouse-motion report when mouse capture is enabled.
  • Rollback: Revert this pull request. Older builds ignore the new optional tab-group snapshot fields, so grouping metadata may not be retained after using an older build.

Related Issue

None

AI Attribution

Add native project and session-tab grouping with persistent membership,
collapsed state, and transfers that retain terminal ownership. Repair dark
Quick Launch rendering and the confirmed terminal, search, editor, SSH,
and shortcut regressions from the recent PR review.

Co-authored-by: Codex <noreply@openai.com>
@github-actions

Copy link
Copy Markdown

Automated reply: the following guidance comes from CONTRIBUTING.md.

Thank you for opening a pull request. Check these requirements while it is awaiting review.

  • The PR title must use an English Conventional Commit subject, for example:

    • feat(terminal): add per-pane scrollback search
    • fix(git): resolve stale diff after a branch switch
    • docs: update contributing guidelines
      Allowed types are feat, fix, docs, style, refactor, perf, test, chore, build, ci, and revert.
  • The PR body must be in English and contain the Summary, GitHub Project, PR Type, Validation, Risk and Rollback, Related Issue, and AI Attribution sections that .github/PULL_REQUEST_TEMPLATE.md provides.

    • GitHub Project keeps the template value - Project: zshell Development. Project Automation reads it to place the pull request on the shared board.
    • PR Type declares exactly one - Type: value, and it must match the type in the title. PR Automation turns it into a label, for example fix into bug.
    • Every Validation block must declare passed, failed, or not run. passed and failed need Command and Result; not run needs Reason.
    • Related Issue must either close an issue with a keyword such as Closes #123, which also applies the development label, or be exactly None.
    • AI Attribution must declare - Agent:. Any agent other than None requires a matching - Co-authored-by: Name <email> line, which must also appear as a trailer on at least one commit, and applies the ai-assisted label.

    Example:

    ## Summary
    - Add a repository hygiene check.
    
    ## GitHub Project
    - Project: zshell Development
    
    ## PR Type
    - Type: ci
    
    ## Validation
    - Status: passed
    - Command: bash .github/scripts/check-repository-hygiene.sh
    - Result: Repository hygiene check passed.
    
    ## Risk and Rollback
    - Risk: Only repository automation is affected.
    - Rollback: Revert this pull request.
    
    ## Related Issue
    Closes #123
    
    ## AI Attribution
    - Agent: Claude Code
    - Co-authored-by: Claude <noreply@anthropic.com>
  • The PR Quality check validates this format; a pull request cannot be merged while the check is failing. PR Automation then applies the labels and assigns the pull request.

  • There is no unit test target: app changes are proven by building and running Zshell and exercising the change, so say in Validation what you did and attach screenshots or a recording for UI work. Run cargo test --locked in mac/Vendor/alacritty-bridge for bridge changes, bun run typecheck && bun run build in web/ for site changes, and bunx tsc --noEmit in mac/ for anything under mac/scripts/. Install dependencies with bun install --frozen-lockfile in each package before running Bun checks.

  • Build all new UI in AppKit. SwiftUI is legacy and must not be introduced or expanded; materially changing an existing SwiftUI view means migrating the affected UI to AppKit.

  • Update the relevant documentation when changing user-visible behavior, build instructions, or the release process. CHANGELOG.md is written for end users, so it records the shipped outcome rather than the fixes and refactors on the way there, and the version is bumped only by a release, never by a pull request.

  • Do not commit mac/build/, mac/Vendor/alacritty-bridge/target, node_modules, dist, downloaded files, logs, tokens, signing materials, or personal data. Repository Hygiene fails on them.

  • main and publish-v* are protected and can only be updated through a reviewed pull request that passes its checks.

@github-actions github-actions Bot added ai-assisted An AI agent co-authored this change bug Something isn't working labels Sep 14, 2026
@wzz6423 wzz6423 moved this to Bug Fix in zshell Development Sep 14, 2026
@wzz6423
wzz6423 merged commit 8958ed6 into main Sep 14, 2026
28 checks passed
@wzz6423
wzz6423 deleted the fix/pr-regressions-session-groups branch September 14, 2026 15:19
@wzz6423 wzz6423 moved this from Bug Fix to Done in zshell Development Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted An AI agent co-authored this change bug Something isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant