Skip to content

Search and the ⌘K omnibar now surface **every file in your project**,…#202

Merged
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync
Jun 18, 2026
Merged

Search and the ⌘K omnibar now surface **every file in your project**,…#202
inkeep-oss-sync[bot] merged 1 commit into
mainfrom
copybara/sync

Conversation

@inkeep-oss-sync

Copy link
Copy Markdown
Contributor

Search and the ⌘K omnibar now surface every file in your project, not just markdown notes. Part 1 made the sidebar tree show all files; this extends that to search so the two agree.

  • Type part of any filename or folder path in ⌘K to jump to it — data.csv, FileTree.tsx, an image, a config file — regardless of type. Markdown is still ranked first; non-markdown files match by name and path.
  • Folders that contain only non-markdown files are now searchable, and partial folder-path queries (e.g. server/src) resolve.
  • Tracked dot-path files (.changeset/, .github/) are searchable (rank-deprioritized) without being sent to the embeddings provider.
  • A link to an existing non-markdown file no longer renders dead; a genuinely missing target still does.
  • The move/rename and new-file destination pickers list the same all-files set the tree shows.
  • The omnibar shows a one-line hint when a query matches only file names (no content), and an empty-results note pointing to the file tree when a query matches nothing.
  • MCP search returns all files by name/path and points agents at exec grep for exhaustive content search.
  • Intentional hardening: secret-bearing files and directories (.env*, SSH private keys including id_ed25519/id_ecdsa/id_dsa, .netrc/.npmrc/.pgpass/.git-credentials, *.pem/*.key/*.p12/*.pfx/*.keystore/*.jks/*.ppk, and the .ssh/.aws/.gnupg/.kube/.docker directories) are excluded from all surfaces — the Part 1 "Show All Files" tree as well as search and /api/documents. The unauthenticated local HTTP API is bindable to non-loopback hosts; closing this name-egress channel is the floor whether or not .gitignore covers the path.

The file index now indexes names/paths for all files and full content for markdown only, with ContentFilter kept on (gitignored/build content stays out of search) and a 50,000-entry cap on the name-only tier (OK_SEARCH_MAX_ENTRIES).

…941)

Extend the file index to admit all non-ignored files of every extension and make it the single source of truth for file-existence, propagating all-files coverage to search, the omnibar, MCP search, destination pickers, and dead-link resolution. Names/paths indexed for all files; full content for markdown only. ContentFilter kept; 50,000-entry cap on the name-only tier (OK_SEARCH_MAX_ENTRIES).

- getFileIndex() inverted to markdown-only by default with an explicit getAllFilesIndex() opt-in (D12), gated by a caller coverage meta-test.
- Secret-file floor: .env / private keys / .ssh / .aws / .gnupg etc. excluded from all surfaces independent of gitignore (case-insensitive).
- O(1) workspace-search corpus fingerprint via the file-index generation counter.

Implements PRD-7117 Part 2.

GitOrigin-RevId: ef0f8223695e87f33550b90490949590315ecb5a

@inkeep-internal-ci inkeep-internal-ci Bot 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.

Automated approval from agents-private public-mirror-sync (run: https://github.com/inkeep/agents-private/actions/runs/27773254444). Source of truth is the monorepo; direct edits on inkeep/open-knowledge are overwritten on next sync.

@inkeep-oss-sync inkeep-oss-sync Bot merged commit 32f9e77 into main Jun 18, 2026
@inkeep-oss-sync inkeep-oss-sync Bot deleted the copybara/sync branch June 18, 2026 16:17
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.

1 participant