Skip to content

feat(app): add inline file browser tabs#35829

Open
Hona wants to merge 1 commit into
anomalyco:devfrom
Hona:review-add-files
Open

feat(app): add inline file browser tabs#35829
Hona wants to merge 1 commit into
anomalyco:devfrom
Hona:review-add-files

Conversation

@Hona

@Hona Hona commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

  • add the inline Open File tab, project tree, and TanStack-backed file search to the V2 review pane
  • integrate preview and pinned file tabs with the existing session layout owner
  • add accessible search navigation and regression coverage for file, context, and review tab interactions

Testing

  • focused app unit tests
  • app, session-ui, and E2E typechecks
  • review Open File, tab-switch, and stacked-terminal Playwright regressions
  • full workspace typecheck via pre-push hook

@Hona Hona requested a review from Brendonovich as a code owner July 8, 2026 01:42
Copilot AI review requested due to automatic review settings July 8, 2026 01:42
@Hona Hona added the beta label Jul 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds an inline “Open File” file-browser experience to the V2 review pane/session side panel, including a placeholder tab, TanStack Query–backed file search, and updated tab-preview/pinning behavior, plus supporting unit/E2E coverage.

Changes:

  • Introduces a reusable SessionFilePanelV2 wrapper and refactors the V2 review toolbar into toolbarStart/toolbarEnd slots.
  • Adds an inline “Open File” tab with searchable results (ARIA combobox/listbox wiring) and double-click to open permanently.
  • Refactors session tab state to support “preview” tabs and the Open File placeholder, and adds regression/unit tests around these flows.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/session-ui/src/v2/components/session-review-v2.tsx Refactors review pane to render inside the new shared file panel and adds ARIA combobox props for the filter input.
packages/session-ui/src/v2/components/session-file-panel-v2.tsx New shared panel wrapper for sidebar + toolbar + preview/empty states.
packages/app/src/pages/session/v2/session-file-list-v2.tsx Enhances flat search results list with listbox/option roles, option ids, and double-click handling.
packages/app/src/pages/session/v2/session-file-browser-tab.tsx New inline Open File tab: project tree + TanStack Query search results with keyboard navigation.
packages/app/src/pages/session/use-session-commands.tsx Extends session command context to indicate file-browser availability.
packages/app/src/pages/session/session-side-panel.tsx Integrates the Open File tab and preview/pinning behaviors into the session side panel tab strip/content.
packages/app/src/pages/session/helpers.ts Updates tab derivation to treat the Open File placeholder as a panel tab (not a file tab).
packages/app/src/pages/session/helpers.test.ts Adds tests for Open File placeholder behavior within createSessionTabs.
packages/app/src/pages/session/file-tabs.tsx Splits SessionFileView from FileTabContent to allow reuse inside the new file browser tab.
packages/app/src/pages/session.tsx Enables the inline file browser on desktop/new session design and wires state into the side panel.
packages/app/src/context/layout.tsx Refactors session tab open/close logic to use new layout-tabs helpers and stores preview metadata ephemerally.
packages/app/src/context/layout-tabs.ts New helpers for preview/open/close tab transitions + Open File placeholder constant.
packages/app/src/context/layout-tabs.test.ts Unit tests for preview/open/close session tab transition helpers.
packages/app/src/context/file.tsx Extends file search to support limit and AbortSignal (for query cancellation).
packages/app/src/components/session/session-sortable-tab.tsx Adds “temporary/preview” styling and double-click pin support on tabs.
packages/app/src/components/session-context-usage.tsx Updates createSessionTabs usage to account for file-browser availability gating.
packages/app/src/components/file-tree.tsx Adds optional file double-click callback and wires it to file nodes.
packages/app/e2e/utils/mock-server.ts Adds mock endpoint support for /find/file used by inline search.
packages/app/e2e/regression/review-open-file.spec.ts New Playwright regression covering inline Open File open/search/tab-switch flows.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +108 to +119
<SessionReviewV2Sidebar
open={props.state.sidebarOpened()}
title={<span class="truncate">{title()}</span>}
filter={filter()}
onFilterChange={setFilter}
onFilterKeyDown={onFilterKeyDown}
filterAutofocus={props.placeholder}
filterRef={props.filterRef}
filterControls={resultsID}
filterActiveDescendant={highlighted() ? optionID(highlighted()!) : undefined}
filterExpanded={query().length > 0 && files().length > 0}
width={props.state.sidebarWidth()}
Comment on lines 174 to +180
export function FileTabContent(props: { tab: string }) {
return (
<Tabs.Content value={props.tab}>
<SessionFileView tab={props.tab} />
</Tabs.Content>
)
}
@opencode-agent

opencode-agent Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

⚠️ Blocking Beta Release

This PR cannot be merged into the beta branch due to: Merge conflicts with dev branch

Please resolve this issue to include this PR in the next beta release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants