Find .opencode files in workspace search (#2049)
* fix(search): find .opencode workspace files Workspace autocomplete skips hidden directories unless they are explicitly allowlisted. The missing .opencode entry made provider commands and workflows invisible to file search. * refactor(search): centralize hidden directory policy
This commit is contained in:
@@ -11,12 +11,13 @@ import { tmpdir } from "node:os";
|
||||
import path from "node:path";
|
||||
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
||||
import { isPlatform } from "../test-utils/platform.js";
|
||||
import { searchDirectoryEntries } from "./directory-suggestions.js";
|
||||
import {
|
||||
searchDirectoryEntries,
|
||||
WORKSPACE_SEARCH_HIDDEN_DIRECTORIES,
|
||||
} from "./directory-suggestions.js";
|
||||
|
||||
const isWindows = isPlatform("win32");
|
||||
const filesystemRootDirectoryName = isWindows ? "Windows" : "usr";
|
||||
const workspaceHiddenDirectories = [".agents", ".claude", ".codex", ".github", ".paseo", ".vscode"];
|
||||
|
||||
async function searchAbsoluteDirectoryPaths(options: {
|
||||
homeDir: string;
|
||||
query: string;
|
||||
@@ -60,7 +61,7 @@ async function searchRelativeDirectoryEntries(options: {
|
||||
matchMode: options.matchMode,
|
||||
pathQueryPolicy: "slashes",
|
||||
blankQueryBehavior: "children",
|
||||
traversableHiddenDirectoryNames: workspaceHiddenDirectories,
|
||||
traversableHiddenDirectoryNames: WORKSPACE_SEARCH_HIDDEN_DIRECTORIES,
|
||||
limit: options.limit,
|
||||
maxDepth: options.maxDepth,
|
||||
maxEntriesScanned: options.maxEntriesScanned,
|
||||
|
||||
@@ -24,7 +24,7 @@ export interface SearchDirectoryEntriesOptions {
|
||||
pathQueryPolicy?: PathQueryPolicy;
|
||||
rootAliases?: string[];
|
||||
blankQueryBehavior?: BlankQueryBehavior;
|
||||
traversableHiddenDirectoryNames?: string[];
|
||||
traversableHiddenDirectoryNames?: readonly string[];
|
||||
limit?: number;
|
||||
maxDepth?: number;
|
||||
maxEntriesScanned?: number;
|
||||
@@ -84,6 +84,15 @@ const NO_SEGMENT_INDEX = Number.MAX_SAFE_INTEGER;
|
||||
const NO_MATCH_OFFSET = Number.MAX_SAFE_INTEGER;
|
||||
const NO_FUZZY_SCORE = Number.MAX_SAFE_INTEGER;
|
||||
const NO_MATCH_TIER = 5;
|
||||
export const WORKSPACE_SEARCH_HIDDEN_DIRECTORIES = [
|
||||
".agents",
|
||||
".claude",
|
||||
".codex",
|
||||
".github",
|
||||
".opencode",
|
||||
".paseo",
|
||||
".vscode",
|
||||
] as const;
|
||||
const IGNORED_DIRECTORY_NAMES = new Set([
|
||||
"node_modules",
|
||||
"venv",
|
||||
|
||||
Reference in New Issue
Block a user