Code reference detail
refresh-rediscovers-bases.test.ts
packages/extension/test/refresh-rediscovers-bases.test.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| base | A base is a container for ideas, ideasets, and files. It forms the boundary of one ideas graph and is consumed by the CLI and the extension. Marker: a directory is a base only when it owns a `.reqlan` folder ( [app_memory_doc.application_memory] ). No bare workspace folder is treated as a base until the user creates `.reqlan` there ( [create_base_onboarding] ). Aligns with [ontology_base]. Discovery and registry: [base_discovery], [base_registry]. Marker path helpers: [application_memory_impl]. | 0.322 | ||
| refresh_rediscovers_bases | done | Manual Refresh ( command `reqlan.refreshIndex`, activity-bar / Ideas Summary Refresh buttons ) and Clear & rebuild must **always rediscover** `.reqlan` markers under workspace roots before soft-sync or rebuild. Do not skip discovery when bases are already registered — a new nested or sibling base created on disk must appear after Refresh. Discovery and registration live in [base_registry] ( `refresh` → `rediscover` → optional `ensureBaseReady` for the active base ). The extension adapter ( [editor_index_adapter] ) calls that analytical API; it must not invent a parallel discovery walk. Create Base follows the same refresh path after [create_base_impl] so the new marker is visible immediately ( [create_base_onboarding] ). Related: [multi_base_environment], ["../extension/index-host/graph-analysers.rq".indexing_trigger_manual], ["../extension/index-host/sqlite-artifact-lifecycle.rq".event_driven_base_access]. | 0.075 | |
| index_cache_reuse | draft | Identify where the ideas index, diagnostics store, or in-process caches already hold data that other modules recompute. Goal: one walk, one sync, one open store where possible; reuse SQLite edges and mtime maps instead of rebuilding graphs from scratch. Related: [nonblocking_index], [indexing_incrementality], [consumers.index_consumers], [sequencing.index_sequencing]. | 0.164 | |
| single_sync_walk | done | One native directory walk records base roots, `.rq` paths, and allowlisted code paths. The walk does not read file bodies. Startup, Refresh, and create-base each run that walk once. They do not call `findFiles` and they do not run a second native `syncWorkspace` walk. Soft sync indexes the path list and skips unchanged mtimes. Idle stale check stats paths already stored in SQLite. New files arrive from the file watcher. The language server does not walk. The extension sends the base roots after the scan. Overlapping callers share one in-flight scan. CLI and MCP `sync_workspace` uses the same walk ( one pass, stop at nested bases ). [index_cache_reuse] [sequencing.soft_sync] [sequencing.scan_limits] | 0.080 |
Reference labels
"../../packages/extension/test/refresh-rediscovers-bases.test.ts:IndexService.createBase calls createBase then registry.refresh", "../../packages/extension/test/refresh-rediscovers-bases.test.ts:IndexService.syncWorkspace calls registry.refresh", "../../packages/extension/test/refresh-rediscovers-bases.test.ts:reqlan.refreshIndex command uses syncWorkspace", "../../packages/extension/test/refresh-rediscovers-bases.test.ts:startup scan does not call findFiles", ../../packages/extension/test/refresh-rediscovers-bases.test.ts:IndexService.createBase calls createBase then registry.refresh, ../../packages/extension/test/refresh-rediscovers-bases.test.ts:IndexService.syncWorkspace calls registry.refresh, ../../packages/extension/test/refresh-rediscovers-bases.test.ts:reqlan.refreshIndex command uses syncWorkspace, ../../packages/extension/test/refresh-rediscovers-bases.test.ts:startup scan does not call findFiles