Skip to content

Add modal explorer navigation, filtering, and file previews - #342

Merged
flyingrobots merged 9 commits into
mainfrom
feature/explorer-search-input
Oct 20, 2026
Merged

flyingrobots merged 9 commits into
mainfrom
feature/explorer-search-input

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Files previously opened with its filter always editing, so printable navigation keys became query text. Ctrl+B now opens navigation mode; j/k and arrows select results. / or an input click enters filter editing. Esc/Enter returns to navigation while keeping the query; Esc in navigation closes the drawer.

Pointer hover highlights a row without selecting or reading a preview. A click selects, with a distinct selection background and contrast-adjusted foreground. Selecting a file shows a labelled read-only preview in the main viewer while focus remains on Files. Enter explicitly opens it through native Echo and focuses the editor. Closing or leaving Files restores the existing editor.

Previews prefer current open-buffer projections, preserving unsaved text. Filesystem reads are capped at 64 KiB and 200 lines, report binary/unavailable/truncated states, and cannot block on named pipes. Entry/request identity rejects stale results. No preview creates an Echo buffer, edits, saves, or persists a cache. Fuzzy search covers loaded names and relative paths, with stable order; broader semantic/Graft search remains deferred to #341.

Validation: npm run check passed (855 JavaScript tests passed, 12 existing skips; all 99 native tests passed), quality has no regressions, and shard coverage includes 134 specs. Twenty-five focused tests cover modality, pointer identity, preview preservation/staleness, bounded readers, theme contrast, portable Windows paths, and the production Unicode/modified-arrow/hover decoder through the Bijou event bus. Real native PTYs at 100×32 and 60×16 confirmed selection, hover, previews, Unicode filtering, modified Alt+Up, and explicit Echo opening. Final-head full CI passed all 12 jobs.

The prior Unicode, Windows-path, and Alt+Up review findings are fixed and resolved. Design and retrospective: docs/design/0161-file-explorer-search.md. Canonical preview ownership is recorded in docs/jim-component-ownership.md.

Stacked on #339 (feature/static-title-screen); merge that prerequisite first. Neither PR has been merged.

Closes #340.

@flyingrobots flyingrobots added the work-in-progress Cycle or PR is intentionally in progress and not ready to merge label Oct 14, 2026
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 39 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 57a9a8c8-3367-418e-ab0e-09a3de1ef460
📥 Commits

Reviewing files that changed from the base of the PR and between 6b92175 and c616603.

⛔ Files ignored due to path filters: 3
  • docs/design/0161-file-explorer-search-narrow.svg is excluded by !**/*.svg
  • docs/design/0161-file-explorer-search-wide.svg is excluded by !**/*.svg
  • src/generated/i18n.ts is excluded by !**/generated/**
📒 Files selected for processing: 45
  • docs/design/0161-file-explorer-search.md
  • docs/jim-component-ownership.md
  • docs/topics/ui/drawers-and-panels.md
  • spec/file-explorer-preview.spec.mjs
  • spec/file-explorer-search.spec.mjs
  • spec/file-preview-source.spec.mjs
  • spec/terminal-input-stream.spec.mjs
  • spec/workspace-drawer-scroll.spec.mjs
  • spec/workspace-footer.spec.mjs
  • spec/workspace-list-navigation.spec.mjs
  • spec/workspace-terminal-input.spec.mjs
  • src/adapters/file-preview.ts
  • src/adapters/filesystem.ts
  • src/adapters/terminal-input-stream.ts
  • src/adapters/workspace-app.ts
  • src/adapters/workspace-initial-model-snapshot.ts
  • src/adapters/workspace-terminal-io.ts
  • src/app/workspace/drawer.ts
  • src/app/workspace/file-explorer-preview-view.ts
  • src/app/workspace/file-explorer-preview.ts
  • src/app/workspace/file-explorer-view.ts
  • src/app/workspace/file-search-input-key.ts
  • src/app/workspace/file-search.ts
  • src/app/workspace/file-tree.ts
  • src/app/workspace/global-key-bindings.ts
  • src/app/workspace/init.ts
  • src/app/workspace/key-bindings.ts
  • src/app/workspace/model.ts
  • src/app/workspace/mouse.ts
  • src/app/workspace/msg.ts
  • src/app/workspace/runtime.ts
  • src/app/workspace/settings-key-bindings.ts
  • src/app/workspace/viewer-content.ts
  • src/app/workspace/viewer-drawers.ts
  • src/app/workspace/viewer.ts
  • src/app/workspace/viewport.ts
  • src/app/workspace/workspace-runtime-dependencies.ts
  • src/main-workspace.ts
  • src/ports/file-preview.ts
  • src/ports/file-system.ts
  • src/ui/file-search-input.ts
  • src/ui/file-search-results.ts
  • src/ui/terminal-mouse.ts
  • src/ui/workspace-chrome.ts
  • translations.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@flyingrobots flyingrobots changed the title Add a focused search field to the file explorer Add sticky explorer search with a focused input and match highlights Oct 14, 2026
@flyingrobots flyingrobots removed the work-in-progress Cycle or PR is intentionally in progress and not ready to merge label Oct 14, 2026
@flyingrobots
flyingrobots marked this pull request as ready for review October 14, 2026 17:51
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T11:09:32.308913Z c616603 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 055795d94a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app/workspace/file-search.ts Resolved
Comment thread src/app/workspace/file-tree.ts Resolved
@flyingrobots
flyingrobots marked this pull request as draft October 14, 2026 18:26
@flyingrobots flyingrobots added the work-in-progress Cycle or PR is intentionally in progress and not ready to merge label Oct 14, 2026
@flyingrobots flyingrobots changed the title Add sticky explorer search with a focused input and match highlights Add modal explorer navigation, filtering, and file previews Oct 14, 2026
@flyingrobots flyingrobots removed the work-in-progress Cycle or PR is intentionally in progress and not ready to merge label Oct 14, 2026
@flyingrobots
flyingrobots marked this pull request as ready for review October 14, 2026 18:45

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 44d28cb964

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app/workspace/file-search.ts Resolved
flyingrobots and others added 2 commits October 20, 2026 02:49
After following .. above the startup workspace, entries fell back to their
absolute path, so ancestor directory names matched every entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ceee07c805

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/adapters/terminal-input-stream.ts Resolved
- Explorer previews of open buffers use the text-authority reading instead
  of the editor projection, which can be a stale opening window, and report
  truncation from the reading total. A reading that misses the file head
  falls back to reading the file.
- The terminal input stream flushes any unfinished escape sequence after the
  escape delay and ends a CSI prefix at a control byte, so Ctrl+C and Escape
  are no longer swallowed after ESC[.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@flyingrobots
flyingrobots merged commit 6a090b2 into main Oct 20, 2026
14 checks passed
@flyingrobots
flyingrobots deleted the feature/explorer-search-input branch October 20, 2026 11:16
flyingrobots added a commit that referenced this pull request Oct 20, 2026
Brings in #336 (Leader settings), #339 (static title screen), and #342
(explorer search). quality-baseline.json takes main's lower title-screen
spec budget and keeps this branch's removal of the law-cycle entry.
title-screen.md folds the freeze reference into main's Standalone Scene
Tools section, 0160 links the moved freeze doc, and the freeze doc now
says the engine and assets (reachable only through the title tools) are
frozen, since the title screen itself is a static logo.
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.

Add a sticky, focused search field to the file explorer

1 participant