Skip to content

feat(ui): make open workspace action explicit#600

Merged
shantur merged 3 commits into
NeuralNomadsAI:devfrom
pascalandr:polish/recent-folder-open-action
Jul 17, 2026
Merged

feat(ui): make open workspace action explicit#600
shantur merged 3 commits into
NeuralNomadsAI:devfrom
pascalandr:polish/recent-folder-open-action

Conversation

@pascalandr

Copy link
Copy Markdown
Contributor

Summary

  • turn the existing Open badge into a prominent action that returns directly to the running workspace
  • make the rest of every recent-folder row consistently start a new instance
  • remove the repeated already-open choice dialog and its unused translations

Why

Choosing between the existing workspace and another instance on every activation adds avoidable cognitive load. The two intentions are now represented directly by separate, stable targets: Open resumes existing work, while the folder row starts fresh.

Details

  • force recent-row activations to request a new instance even during hydration or workspace-creation races
  • keep Browse, drag/drop, and clone fallback reuse behavior, but switch directly without a dialog
  • preserve the exact recent-folder alias when returning to an existing instance
  • keep native Enter/Space behavior on focused controls while preserving list and browse shortcuts
  • use project-specific accessible names and semantic button/focus tokens

Validation

  • npm run typecheck --workspace @codenomad/ui
  • npm run build --workspace @codenomad/ui
  • bun test --conditions=browser packages/ui/src/stores/session-tree.test.ts packages/ui/src/stores/session-pagination-model.test.ts
  • git diff --check upstream/dev...HEAD
  • independent gatekeeper review: PASS

Replace the repeated already-open choice dialog with two deterministic actions on recent folders. The highlighted Open control returns directly to the matching instance, while activating the folder row always requests a new instance.

Preserve recent-folder aliases when switching, keep native keyboard activation for focused controls, and use accessible project-specific labels plus semantic focus and button tokens across themes.

Validated with the UI typecheck, production build, targeted tests, and an independent gatekeeper review.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29405731127

Artifacts expire in 7 days.
Artifacts:

  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-tauri-macos
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-tauri-windows
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-tauri-macos-arm64
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-electron-macos
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-tauri-linux
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-electron-linux
  • pr-600-42943a5451bf973ca2ce36731709ed505ea216f9-electron-windows

@pascalandr

Copy link
Copy Markdown
Contributor Author

Gatekeeper review: PASS

I reviewed the exact remote head 42943a54 against the current dev base 40cee071. No blocking or non-blocking findings remain.

Behavior verified

  • the Open control switches directly to the matching running instance
  • pointer and keyboard activation of the recent-folder row always request a new instance
  • the removed choice dialog cannot be reached through Browse, drag/drop, clone, or server-reuse fallbacks
  • focused controls keep native Enter/Space activation while list navigation and Ctrl/Cmd+N remain available
  • recent-folder aliases are preserved when switching to an existing instance
  • accessible names distinguish projects and button/focus tokens retain theme contrast
  • loading guards and tab selection remain correct

Validation

  • UI typecheck passed
  • production UI build passed
  • targeted tests passed
  • git diff --check passed
  • all applicable GitHub Actions builds passed on Linux, Windows, macOS, and Tauri targets
  • PR is one commit ahead and zero commits behind dev

BLOCKED currently reflects the required repository review, not a conflict or failed check.

Restore the compact neutral Open pill while a recent workspace row is highlighted, and transition it to a high-contrast blue state only when the action itself is hovered or focused.

Move row emphasis away from the main action whenever Open, Rename, or Remove is targeted. Track hover and focus independently by stable folder path so pointer and keyboard interactions remain correct across reactive instance changes and older Tauri WebViews.

Validated with UI typecheck, production build, diff checks, contrast review, and an independent gatekeeper pass.
@pascalandr

Copy link
Copy Markdown
Contributor Author

UI polish follow-up

Updated the recent-workspace action emphasis in cc969551:

  • restored the compact neutral Open pill appearance
  • kept Open neutral while the main row is highlighted
  • changed Open to blue only on its own hover or keyboard focus
  • removed the row highlight while Open, Rename, or Remove is targeted
  • added explicit focus rings to the secondary icon actions
  • avoided :has() so the behavior remains compatible with older supported Tauri WKWebViews

Validation: UI typecheck and production build passed. Final gatekeeper review: PASS.

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29423952783

Artifacts expire in 7 days.
Artifacts:

  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-tauri-macos
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-tauri-windows
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-electron-macos
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-tauri-macos-arm64
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-tauri-linux
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-electron-linux
  • pr-600-cc969551e42b6c9ed11f7996e63bbde24dc155ca-electron-windows

Move the Open action back beside the recent workspace name and remove the added chevron, restoring the original compact badge proportions and typography.

Keep the full row as an independent accessible new-instance action through a transparent background button, while preserving exclusive hover and focus emphasis for Open, Rename, and Remove. Add a dedicated keyboard focus indicator for the row action.

Validated with UI typecheck, production build, diff checks, and an independent gatekeeper pass.
@pascalandr

Copy link
Copy Markdown
Contributor Author

Placement follow-up

Updated in 0360be0e:

  • Open is back in its original position immediately after the workspace name
  • the chevron has been removed
  • the compact original pill proportions and typography are restored
  • the row and Open remain independent accessible buttons
  • the previously requested hover/focus emphasis transfer is unchanged

UI typecheck and production build passed. Final gatekeeper review: PASS.

@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29426801941

Artifacts expire in 7 days.
Artifacts:

  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-electron-macos
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-tauri-windows
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-tauri-macos
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-tauri-macos-arm64
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-tauri-linux
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-electron-linux
  • pr-600-0360be0e40a16a23a5b2483dfc2978c88055a21e-electron-windows

@pascalandr

Copy link
Copy Markdown
Contributor Author

@shantur LGTM

@shantur
shantur merged commit 7584ccf into NeuralNomadsAI:dev Jul 17, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants