Files
paseo/packages/app
Mohamed Boudra d00bd666a7 sidebar history: parity with workspace tree (ordering, drag, kebabs, +)
Stops reinventing UX the workspace tree already solved. Five
behavior-preserving extractions plus a few wires.

Project ordering parity:
Sessions consumes the canonical project list from useSidebarWorkspaces
List instead of computing first-occurrence order from agents. The
workspace tree's compareWorkspaceStructureProjects + persisted manual
order via useSidebarOrderStore is the single source of truth for both
views. Single non-git workspace projects flatten (no header, no
chevron, rows render top-level) via the existing isSidebarProjectFlat
tened gate from sidebar-project-row-model. Multi-workspace non-git
projects and git projects collapse normally.

Drag and drop parity:
New SidebarProjectsDraggableList wraps the existing DraggableList,
useDragHandle, useLongPressDragInteraction (extracted to its own file
for sharing), and persists via setProjectOrder + the existing
hasVisibleOrderChanged / mergeWithRemainder helpers. Both the
workspace tree and grouped Sessions consume it. Workspace tree
behavior unchanged; sessions's grouped view is now structured as a
NestableScrollContainer / ScrollView around per-project sections.

Project trailing actions parity:
New SidebarProjectTrailingActions owns the project kebab (settings +
remove), optional new-worktree button, and shortcut hint. Workspace
tree uses it with the new-worktree button enabled; grouped Sessions
uses it with kebab only.

Per-agent kebab:
New SidebarSessionRowKebabMenu reuses useArchiveAgent for archive,
mirrors handleCloseAgentTab semantics for close, pulls the close
menu entry from buildWorkspaceTabMenuEntries, and matches the
workspace row kebab visibility (hover or touch). No fork.

New session button:
Plus button in the Sessions header reuses useOpenProjectPicker and
buildHostNewWorkspaceRoute. Adds a label-only `title` query arg so
the destination screen reads "New session" instead of "New workspace"
when entered from this button.

Tests cover ordering, flatten/collapse, drag-end persistence, kebab
visibility/items, and the new-session route. Render-boundary tests
extended for the section structure.
2026-05-08 22:03:47 +07:00
..
2026-04-21 20:46:49 +07:00
2026-05-07 19:40:10 +07:00
2025-11-24 22:31:41 +01:00

Welcome to your Expo app 👋

This is an Expo project created with create-expo-app.

Get started

  1. Install dependencies

    npm install
    
  2. Start the app

    npx expo start
    

In the output, you'll find options to open the app in a

You can start developing by editing the files inside the app directory. This project uses file-based routing.

Get a fresh project

When you're ready, run:

npm run reset-project

This command will move the starter code to the app-example directory and create a blank app directory where you can start developing.

Learn more

To learn more about developing your project with Expo, look at the following resources:

Join the community

Join our community of developers creating universal apps.

Dictation debugging

Set EXPO_PUBLIC_ENABLE_AUDIO_DEBUG=1 before running npx expo start to render the in-app audio debug card. Pair it with the server-side STT_DEBUG_AUDIO_DIR flag so every dictation includes a copyable path to the saved raw audio file.