Members

IdeaFileStatusSummaryKatz
base_catch_upreqlan rq/indexer/sequencing.rqActivating or pinning a base schedules an open + soft sync when that base is not ready. Nested child bases stay excluded from the parent walk ( [index] ). [index_sequencing] [indexing_trigger_open]0.040
extension_startup_sequencereqlan rq/indexer/sequencing.rqExtension host order ( [first_paint_startup], [background_startup] ): 1. `activate` registers UI only; it must not await index sync. 2. Activity bar paints → startup gate; language client may start on a short fallback. 3. Index adapter activates after paint ( or a short fallback timer ). 4. One native scan ( [cache_reuse.single_sync_walk], [scan_limits] ) records bases and file paths. Soft [soft_sync] then runs for the **active** base only ( [indexing_trigger_open] ); other bases stay closed until pin / focus / file events ( ["../extension/index-host/sqlite-artifact-lifecycle.rq".event_driven_base_access] ). 5. Install watchers for `.rq` and code globs; watch `.reqlan` marker create / delete for rediscovery ( not SQLite child writes ). 6. Idle timer runs [idle_stale_check] on already-open bases, then releases unused SQLite artifacts ( ["../extension/index-host/sqlite-artifact-lifecycle.rq".release_when_idle] ). [index_sequencing] [editor_index_adapter] Open-file editor links follow ["../extension/language/support/open-file-sequencing.rq".open_file_algorithm] and must not wait for this crawl.0.054
hard_rebuildreqlan rq/indexer/sequencing.rqHard rebuild ( `clearAndRebuildIndex` / Clear & rebuild ) wipes ideas-index rows and reindexes every file. It must not delete [diagnostics_schema.diagnostics_sqlite]. Trigger: [indexing_trigger_manual]. [index_sequencing] [nonblocking_index]0.040
headless_sync_on_readyreqlan rq/indexer/sequencing.rqCLI and MCP call [analysis_runtime] `ensure_ready`, which runs a soft [soft_sync] from [cache_reuse.single_sync_walk] once before serving commands. No watchers and no idle loop ( [consumers.headless_consumers] ). [index_sequencing]0.054
idle_stale_checkreqlan rq/indexer/sequencing.rqWhen the editor is idle, use document paths already stored in SQLite ( do not scan the tree ), load mtimes in one SQLite read, compare FS mtimes in memory, and index only mismatched or new files; drop deleted docs in one batch. If nothing is stale: no state transition, no progress UI, no parse. Prefer unfocused windows; cancel if the user becomes active again. Only bases that are already open participate — idle must not reopen every discovered base ( ["../extension/index-host/sqlite-artifact-lifecycle.rq".release_when_idle] ). After the check, release unused SQLite artifacts ( inactive bases always; all bases when unfocused ). Extension host only — see [indexing_trigger_auto]. [index_sequencing]0.075
index_sequencingreqlan rq/indexer/sequencing.rqdoneDescribe when the ideas index starts, updates, and idles, and which trigger owns each pass. Capability aliases live in [triggers] and [idea_index_triggers]. Detail ideas below; keep [nonblocking_index] and [indexing_incrementality] as the UX rules. Related: [consumers.index_consumers], [cache_reuse.index_cache_reuse], [ideas_schema.documents_table], [diagnostics_schema.sync_runs_table].0.179
index_triggersreqlan rq/indexer/sequencing.rqTrigger map for [index_sequencing]: - [indexing_trigger_open] — one soft sync after activity-bar first paint / base activate - [indexing_trigger_filesave] — watcher create / change / delete on `.rq` and allowlisted code files - [indexing_trigger_manual] — Refresh ( soft ) or Clear & rebuild ( hard ) - [indexing_trigger_auto] — idle mtime stale check; index only dirty paths Git-dates fill is not an index trigger ( [idea_index_triggers] ). Each sync run may record a `trigger` string in [diagnostics_schema.sync_runs_table].0.049
scan_limitsreqlan rq/indexer/sequencing.rqdoneThe 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
soft_syncreqlan rq/indexer/sequencing.rqSoft full sync ( `syncWorkspace` / Refresh ) indexes the path list from [cache_reuse.single_sync_walk]. It skips files whose FS mtime matches [ideas_schema.documents_table]. `mtime_ms`, and upserts changed files only. Progress and cancel follow [nonblocking_index]. Prefer a single walk ( [cache_reuse.single_sync_walk] ). Triggers: [indexing_trigger_open], [indexing_trigger_manual] ( Refresh ). [index_sequencing]0.081
watcher_incrementalreqlan rq/indexer/sequencing.rqFile create / change / delete indexes or deletes that one path only — never a full base walk. Covers `.rq` sources and allowlisted code files for [index_code_files]. Trigger: [indexing_trigger_filesave]. [index_sequencing] [indexing_incrementality]0.040