Code reference detail
index-service.ts
reqlan rq/indexer/packages/extension/src/analytical_submodule/index-store/index-service.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| 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 | |
| git_dates | done | Creation and last-modified dates, and change count, for ideas via git history where available. Values are written into the ideas index by the `git_dates` analyser as a silent background job after soft-sync / catalog updates ( batched, yielded ) — not triggered by Activity Bar focus, opening Timeline, or Ideas table load. Host queue and rate caps: ["../extension/index-host/git-codelens.rq".git_dates_background_indexing]. | 0.143 | |
| scan_limits | done | The workspace scan has two caps. There is no unlimited setting. Defaults and clamp bounds are the `scan` object in ["../../packages/analytical/src/core/defaults.json"]. `reqlan.scan.maxDepth` uses `defaultMaxDepth`, `minDepth`, and `maxDepthLimit` from that file. The workspace folder is depth 0. A directory deeper than the cap is not entered. `reqlan.scan.maxEntries` uses `defaultMaxEntries`, `minEntries`, and `maxEntriesLimit` from that file. The count is directories plus files visited. When a cap hits, the walk stops, keeps the partial result, and the editor shows a warning. It does not start another scan to finish. Refresh uses the same caps. CLI and MCP use the same defaults. Built-in ignore also skips `target/` so a Cargo tree does not consume the entry budget. [extension_startup_sequence] [cache_reuse.single_sync_walk] | 0.064 |
Reference labels
git_dates, scan_limits, single_sync_walk