Cluster detail
reqlan rq/bases
Ideas located under folder reqlan rq/bases.
folder
15 ideas
1 files
| Idea | File | Status | Summary | Katz |
|---|---|---|---|---|
| active_base_switch | reqlan rq/bases/base.rq | done | Changing 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 |
| base | reqlan rq/bases/base.rq | 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 | |
| base_configuration | reqlan rq/bases/base.rq | Base configuration is distinct from, but related to, [extension_configuration]. Optional settings live at `<base>/.reqlan/config.json` ( one config per base ). For an `.rq` file, the applying base is the nearest ancestor that owns `.reqlan`; that base's config applies when present. See [extension_configuration.configuration_location]; resolved by [path_resolve]. | 0.087 | |
| base_configuration_provider | reqlan rq/bases/base.rq | Base-level settings live at `<base>/.reqlan/config.json`. Extension-level settings remain VS Code configuration for the product host. | 0.040 | |
| base_initialisation | reqlan rq/bases/base.rq | Bases are initialised with `<base>/.reqlan/config.json`, `.reqlan/.rqignore` ( gitignore-syntax path filters; see [extension_configuration.configuration_rqignore] ), `.reqlan/.gitignore` ( [base_initialisation_ignore] ), and a sqlite ideas index under `.reqlan` ( [base_ownership] ). [create_base_impl] creates the `.reqlan` marker and seeds a minimal `config.json`, default `.rqignore` ( ["../extension/index-host/index.rq".rqignore_initialisation] ), and `.gitignore` when the base is new. Full install sequencing ( extension welcome vs base seeds vs agent files ): ["../extension/host/installation.rq".base_installation]. | 0.081 | |
| base_initialisation_ignore | reqlan rq/bases/base.rq | done | New bases seed `<base>/.reqlan/.gitignore` so Git does not track SQLite application-memory files. Patterns cover the ideas index ( [base_ownership] ), the diagnostics store ( [app_memory_doc.index_diagnostics_store] ), and SQLite sidecars ( `*.sqlite`, `*.sqlite-journal`, `*.sqlite-shm`, `*.sqlite-wal` ). This file is Git ignore for `.reqlan/`. Path filters for discovery stay in `.rqignore` ( [extension_configuration.configuration_rqignore] / [app_memory_doc.rqignore] ). Written by [create_base_impl] as part of [base_initialisation] / ["../extension/host/installation.rq".base_installation]. | 0.182 |
| base_linking | reqlan rq/bases/base.rq | A base may have one-directional relationships with other bases. This follows a subscription model. Bases may be cross subscribed. Unless linked, than bases remain isolated. Base linking is configured in the config file in the base. reqlan directory. - an unlinked child base should sever the contained ideas from the parent base ( i. e. the parent should just see the child as a separate base and child ideas shouldn't be visible, the indexer shouldn't crawl it. ) they should be functionally distinct - bases, distinct from eachother in the system file tree, should be linkeable ( either one way or both ways ) - A linked child base should allow the parent base to see the child's ideas. The indexs should be linked, and the child counts etc should be included in the parents. - A child base should always be able to link to parent base ideas. | 0.040 | |
| base_modes | reqlan rq/bases/base.rq | A base may be linked to | 0.040 | |
| base_nesting | reqlan rq/bases/base.rq | Bases may nest: any subdirectory that owns its own `.reqlan` is a child base. Parent-base indexing includes only `.rq` files under the parent root that are **not** under any child base root ( [base_discovery] ownership exclusion ). Nested bases appear as siblings in the multi-base registry; the longest-matching base root wins for a given file path ( [implied_context] ). | 0.060 | |
| base_ownership | reqlan rq/bases/base.rq | Each base holds its own [ideas_index] store under `<base>/.reqlan/ideas-index.sqlite`. Path keys inside the index are relative to that base root, not the VS Code workspace root. Store path: [application_memory_impl]; per-base engine: [workspace_index] via [base_registry]. | 0.112 | |
| create_base_onboarding | reqlan rq/bases/base.rq | When discovery finds **zero** bases under any VS Code workspace folder ( root or child ), the extension prompts the user to create a reqlan base at the workspace-folder root. Do not auto-create `.reqlan`. Command `reqlan.createBase` creates `<folder>/.reqlan/` ( empty directory is a valid marker ) via [create_base_impl], then calls [base_registry] `refresh` so the new marker is registered and the returned [base] descriptor matches discovery ( [refresh_rediscovers_bases] ). With multiple workspace folders and no bases, prompt against the first folder. Headless create-base helper: [create_base_impl] ( also used by CLI `init` ). | 0.172 | |
| implied_context | reqlan rq/bases/base.rq | The **active base** for editor-adjacent surfaces is the longest-matching base root that contains the focused file path. When no file is focused, the last selected base ( Ideas Summary switcher / activity bar ) or the first discovered base is used. Context, local graph, and analysers bind to the active base's index — not a merged global graph. User / explicit pin is a pointer swap only — [active_base_switch]. Core selection: [base_discovery] ( `baseForPath` / `selectDefaultBase` ); editor pin / switch: [editor_index_adapter]. | 0.075 | |
| multi_base_environment | reqlan rq/bases/base.rq | Analytical features are multibase aware via [base_registry]: one [ideas_index] / `WorkspaceIndex` per base, isolated catalogs ( no cross-base idea-id collision ). Surfaces list all discovered bases; Ideas Summary and context panes scope to the active / selected base ( [active_base_switch] ). Cross-base reference resolution and merged graphs are out of scope for the first multi-base pass. Headless ( CLI / MCP ) selects one base via [analysis_runtime]; the editor hosts [editor_index_adapter]. | 0.134 | |
| no_base_behaviour | reqlan rq/bases/base.rq | When no base is found, the extension should prompt the user to create a base at the workspace-folder root. consideration should be made for the [cli_package], the [extension] and the [analysis_scope] The indexing should not throw errors - it should default to a global tmp index scope the workspace; or current working directory. In the cli; an warning should be shown on first command execution if no base is found. | 0.040 | |
| refresh_rediscovers_bases | reqlan rq/bases/base.rq | 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 |
Cluster graph
Initialising graph…