Dashboard › opencode-lore › Distillation
857f14d0-b09b-48c6-8343-172be05bc30f["lore_tm_v1_83t0EQnZHuVeoT3c7zXNbtijy-pyoqMM1mBMA_zhFCA","lore_tm_v1_0lT-ecpyxlZmdzwUhJOHXVQN8iyDuNZcWNV_A2kmNIo","lore_tm_v1_liqRGBpnrGUv50UVbHX84O3oJi1JmXqfm-RVO5TXvKc","lore_tm_v1_nmfSkwU919BQTnaO9UaDM_aBIPtqVOcApZ6-XzeeBno","lore_tm_v1_idHXtd_GC00NCD20Edcf4MNqZHzI36M_cMyMI7LiV-E"]
Date: September 16, 2026
/ui/search references in /home/byk/Code/opencode-lore/packages/gateway/src/ui.ts: line 801 navigation link, line 2289 source-prefixed detail link, line 2381 search form action, line 2477 Search navigation entry, line 3564 detail-route matching, and line 3579 search-page routing./home/byk/Code/opencode-lore/packages/gateway/src/ui.ts:3564-3575 handles GET route /ui/search/detail/:fullId by calling pageSearchDetail(searchDetailMatch.fullId); absent entries return HTTP 404 with title Not Found, heading Entry not found, and the escaped full ID./home/byk/Code/opencode-lore/packages/gateway/src/ui.ts:3579-3581 handles GET /ui/search with htmlResponse(await pageSearch(url)).pageSearch(url: URL) is defined at /home/byk/Code/opencode-lore/packages/gateway/src/ui.ts:2369. It reads query parameters q, project, and scope; defaults q and project to "", and defaults scope to "all".pageSearch() types scope as "all" | "session" | "project" | "knowledge", but its rendered scope selector offers only "all", "project", and "knowledge"; the UI does not expose "session"./ui/search form uses GET, includes an autofocus text input named q, a project selector populated by data.listProjects(), a scope selector, and a primary Search button. Project options use p.path as the value and display p.name ?? p.path.pageSearch() uses the selected project path or falls back to projects[0]?.path. If neither exists, it displays No projects found. Cannot search without a project context.searchRecall({ query, scope, projectPath, searchConfig }), where searchConfig spreads config().search and overrides recallLimit: 20 and queryExpansion: false.topScore > 0, results with score < topScore * 0.15 are dropped; when the top score is zero, raw results are retained. It then displays at most 30 results via results.slice(0, 30).Strong Matches means score >= topScore * 0.6; Supporting means topScore * 0.3 <= score < topScore * 0.6; Peripheral means score < topScore * 0.3. Each tier is rendered through formatSearchResult(tagged, score).toFixed(4). Empty displayed results produce No results found for this query.pageSearch() catches search failures and renders Search error: followed by the escaped Error.message or stringified thrown value.pageSearchDetail(fullId: string): string | null is defined at /home/byk/Code/opencode-lore/packages/gateway/src/ui.ts:2466; it resolves source-prefixed IDs such as k:019e... and d:019e... through recallById(fullId)./ui/entities/${esc(e.id)} and includes a source-prefixed ID link generated by idLink("e", e.id).lore recall CLI usage is lore recall [--project value] [--scope value] [--session value] [--limit value] [--json] <args>...; query words are joined with spaces, and search uses the configured remote gateway when LORE_REMOTE_URL is set, otherwise local project memory.lore recall supports --scope all | session | project | knowledge; --session is required with --scope session. --project defaults to the current directory, --limit accepts 1 through 50 and defaults to 10, --json emits raw JSON instead of formatted Markdown and defaults to false, -h/--help prints help and exits, and -- marks all subsequent inputs as arguments.