Referenced by8
Labels8

Referencing ideas

IdeaStatusTagsSummaryKatz
active_base_switchdoneChanging the active base is a **pointer swap** onto a per-base `WorkspaceIndex` / store. - Do **not** await soft-sync, hard-rebuild, or a full `.rq` walk on the switch call itself. - Host surfaces rebind views to the newly active store ( status snapshot, tables, context panes ) immediately. - If the selected base is not yet ready, show its readiness / progress and **schedule** the normal activate catch-up ( open if needed, then one soft sync ) fire-and-forget — same path as ["../indexer/indexer.rq".triggers] / ["../extension/index-host/graph-analysers.rq".indexing_trigger_open], not a special switcher rebuild. - Idle staleness checks only touch bases that are already open; they must not reopen every discovered base ( ["../extension/index-host/sqlite-artifact-lifecycle.rq".release_when_idle] ). - Open failures stay isolated per base so one bad base cannot leave siblings stranded in `uninitialized`. - Editor-follow must not overwrite a user pin on the same refresh that applies the selection. - Inactive bases release SQLite artifacts when the active pointer moves away ( ["../extension/index-host/sqlite-artifact-lifecycle.rq".sqlite_artifact_lifecycle] ). Surfaces: activity bar ["../extension/local-context/activitybar-panels/workspace.rq".workspace_base_picker], Ideas Summary ["../extension/workspace-summary/ideas_summary/base-scope.rq".ideas_summary_base_scope]. Implemented by [editor_index_adapter] ( `setActiveBaseId` / `scheduleBaseCatchUp` ); engine: [base_registry] `ensureBaseReady` / `releaseArtifacts`, [workspace_index] `ensureReady` / `deactivate`.0.093
baseA 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
analysis_api_disposedone[analysis_runtime] `openAnalysisApi` dispose must close the native analysis runtime and drop its SQLite connection ( ideas index and click-sessions ). A no-op dispose is a defect. Extension commands use a short-lived `withAnalysisApi` ( open → run → dispose ) mediated by [analysis_runtime]; they must not cache `NativeAnalysisApi` for the session.0.040
event_driven_base_accessdoneExtension interaction with bases is event-driven and goes through the analytical package: - Discover / pin / focus / file watch / command / UI query → open or `ensureBaseReady` - Sync, stale check, or analysis work runs - Quiet idle → [release_when_idle] No always-on connection and no continuous reconnect loop. Headless CLI / MCP already open per command via [analysis_runtime] ( [headless_sync_on_ready] ).0.057
release_when_idledoneAfter an index or analysis pass finishes, and after the idle quiet period ( [idle_stale_check] / indexing_trigger_auto ), [editor_index_adapter] must release every open base SQLite handle via [base_registry] `releaseArtifacts` → [workspace_index] `deactivate`. Descriptors stay registered so the next event can reopen the same base. Idle must not leave connections open after a heal / sync, and must not schedule another open unless a real host event arrives ( file change, pin / switch, focus reopen, command, UI query ).0.077
sqlite_artifact_lifecycledoneBase SQLite artifacts under `<base>/.reqlan/` ( [base_ownership] ) must not stay locked for the whole extension session. The host opens them only while work runs, then releases file handles so users can delete or replace the files. Aligns with [event_driven]: open and close are reactions to index or analysis events, not a permanent connection or a reconnect loop. Mediation: only [workspace_index] / [analysis_runtime] own SQLite connections. The extension adapter ( [editor_index_adapter] ) must not keep a second long-lived analysis runtime beside the index, and must not call native open without a matching dispose / release. Related: [index_sequencing], [idle_stale_check], [headless_consumers], [multi_base_environment].0.052
idle_stale_checkWhen 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_sequencingdoneDescribe 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

Reference labels

"../../../packages/analytical/test/sqlite-artifact-release.test.ts:BaseRegistry releaseArtifacts closes handles but keeps descriptors", "../../../packages/analytical/test/sqlite-artifact-release.test.ts:WorkspaceIndex deactivate releases sqlite artifacts", "../../../packages/analytical/test/sqlite-artifact-release.test.ts:dispose releases ideas-index so the file can be unlinked", "../../packages/analytical/test/sqlite-artifact-release.test.ts:BaseRegistry releaseArtifacts closes handles but keeps descriptors", ../../../packages/analytical/test/sqlite-artifact-release.test.ts:BaseRegistry releaseArtifacts closes handles but keeps descriptors, ../../../packages/analytical/test/sqlite-artifact-release.test.ts:WorkspaceIndex deactivate releases sqlite artifacts, ../../../packages/analytical/test/sqlite-artifact-release.test.ts:dispose releases ideas-index so the file can be unlinked, ../../packages/analytical/test/sqlite-artifact-release.test.ts:BaseRegistry releaseArtifacts closes handles but keeps descriptors