Idea detail
sqlite_artifact_lifecycle
reqlan rq/extension/index-host/sqlite-artifact-lifecycle.rq:11
Summary
Base 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.ts / open-analysis-api.ts own SQLite connections. The extension
adapter ( index-service.ts ) 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.
Navigation
Attributes
| Key | Value |
|---|---|
| implementation | index-service.ts, base-registry.ts, workspace-index.ts, open-analysis-api.ts, native-analysis-api.ts |
| status | done |
| tests | sqlite-artifact-release.test.ts:dispose releases ideas-index so the file can be unlinked, sqlite-artifact-release.test.ts:WorkspaceIndex deactivate releases sqlite artifacts, sqlite-artifact-release.test.ts:BaseRegistry releaseArtifacts closes handles but keeps descriptors, open-analysis-api.test.ts:opens the native engine when the host .node is available |
Ancestor context
No ancestor chain recorded.
Outbound references
Inbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | active_base_switch | reqlan rq/bases/base.rq | sqlite_artifact_lifecycle |
Unresolved references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
Local graph
Initialising graph…