Skip to content

Add double-click rename on master session rows#416

Merged
dgershman merged 1 commit into
mainfrom
feature/crow-415-double-click-rename-master
Jun 3, 2026
Merged

Add double-click rename on master session rows#416
dgershman merged 1 commit into
mainfrom
feature/crow-415-double-click-rename-master

Conversation

@dgershman
Copy link
Copy Markdown
Collaborator

Summary

  • Double-clicking an extra Manager session row in the sidebar now enters inline-rename mode, matching the right-click → Rename behavior.
  • Implemented as a .simultaneousGesture(TapGesture(count: 2)) on ManagerSessionRow so single-click selection still fires; the second click flips editingSessionID = session.id to reuse the existing rename machinery (focus, Enter/blur commit, Escape cancel).
  • Scoped to rows that already expose the Rename context-menu item — primary manager row and work sessions are untouched, no regression to existing double-click behavior.

Test plan

  • Launch Crow; create or pick an extra Manager session.
  • Double-click the row → TextField appears, focused.
  • Type a new name, press Enter → rename commits.
  • Double-click again, press Escape → cancels, original name preserved.
  • Double-click again, click outside → blur commits.
  • Right-click → Rename still works (no regression).
  • Double-click on the primary manager row, ticket board, and a work session → unchanged behavior.

Closes #415

🐦‍⬛ Generated with Claude Code, orchestrated by Crow

Mirror the right-click → Rename action so double-clicking an extra
Manager row in the sidebar enters inline-rename mode (cursor in field,
Enter/blur commits, Escape cancels). Implemented as a simultaneous
double-tap gesture so the existing single-click selection still fires.

Only ManagerSessionRow gains the gesture — the primary manager row and
work-session rows are unchanged, matching where right-click → Rename is
shown today.

Closes #415

🐦‍⬛ Generated with Claude Code, orchestrated by Crow

Co-Authored-By: Claude <noreply@anthropic.com>
Crow-Session: 59082D52-7CD2-4E31-AEA7-0B6343CEF04B
@dgershman dgershman requested a review from dhilgaertner as a code owner June 3, 2026 19:55
@dgershman dgershman added the crow:merge Crow auto-merge on green label Jun 3, 2026
Copy link
Copy Markdown
Contributor

@dhilgaertner dhilgaertner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code & Security Review

Critical Issues

None.

Security Review

Strengths:

  • Pure local SwiftUI gesture change — no authentication, input parsing, network, or persistence surface touched.
  • Rename ultimately flows through the existing appState.onRenameSession? path with the same trimmingCharacters / empty-guard logic in commitRename(); no new trust boundary introduced.

Concerns:

  • None.

Code Quality

  • Correct scoping (verified). The double-click gesture lives on ManagerSessionRow, and editingManagerID is bound only to that row (SessionListView.swift:84) — the single row type that already exposes the "Rename" context-menu item (SessionListView.swift:88-93). The primary manager row (ManagerReviewsAllowListRow) and work-session rows (SessionRow) never receive the gesture, so the no-regression claim holds.
  • Sound mechanism. .simultaneousGesture(TapGesture(count: 2)) preserves the Button's single-click selection while the second click sets editingSessionID = session.id. The existing .onChange(of: editingSessionID) (SessionListView.swift:494-499) seeds editingName and raises focus, and Enter/blur/Escape reuse the established commit/cancel machinery — no duplicated logic.
  • Build note: swift build fails in this review worktree only because the local GhosttyKit.xcframework binary artifact isn't checked out — an environmental issue unrelated to this 5-line diff (which touches SessionListView.swift exclusively).

Summary Table

Color Meaning Verdict effect
Red Must fix Request changes
Yellow Should fix Request changes
Green Consider Approve allowed

Recommendation: Approve — driven by [0 Red, 0 Yellow, 0 Green] findings. Minimal, correctly scoped change that cleanly reuses the existing inline-rename machinery.

🐦‍⬛ Reviewed by Crow via Claude Code

@dgershman dgershman merged commit a2cd7b1 into main Jun 3, 2026
3 checks passed
@dgershman dgershman deleted the feature/crow-415-double-click-rename-master branch June 3, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

crow:auto crow:merge Crow auto-merge on green

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Double-click on a master session should trigger rename (parity with right-click → Rename)

2 participants