reqlanOverviewIdeasFilesCode filesClustersAttributesGraphPrint
Ideas/base_nesting

Idea detail

base_nesting

reqlan rq/bases/base.rq:84

block

Summary

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.ts 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 ).

Jump to outbound references

Jump to inbound references

Navigation

Source file

reqlan rq/bases/base.rq

community 3

community cluster

base.rq

file cluster

reqlan rq/bases

folder cluster

status: Not present

status cluster

tag: Not present

tag cluster

Printable page

Static print-friendly idea sheet.

Attributes

KeyValue
implementation base-discovery.ts, base-registry.ts
tests base-discovery.test.ts:discovers nested bases and excludes child files from parent ownership, base-discovery.test.ts:baseForPath picks longest matching root

Browse all attributes

Ancestor context

implied_context

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].

active_base_switch

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/features-graph-analysers.rq".indexing_trigger_open], not a special switcher rebuild. - Idle staleness checks also heal unopened / never-synced bases ( they cannot mtime-diff without a store ). - `activateAll` isolates open failures 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. Surfaces: activity bar ["../extension/module/activitybar-panels/workspace.rq".workspace_base_picker], Ideas Summary ["../extension/module/ideas_summary/base-scope.rq".ideas_summary_base_scope]. Implemented by [editor_index_adapter] ( `setActiveBaseId` / `scheduleBaseCatchUp` ); engine: [base_registry] `ensureBaseReady`, [workspace_index] `ensureReady`.

Outbound references

KindIdeaPathSnippet
file_reference base_discovery packages/analytical/src/core/base-discovery.ts base-discovery.ts
file_reference base_registry packages/analytical/src/index-store/base-registry.ts base-registry.ts
file_reference ../../packages/analytical/test/base-discovery.test.ts:baseForPath picks longest matching root packages/analytical/test/base-discovery.test.ts:baseForPath picks longest matching root base-discovery.test.ts:baseForPath picks longest matching root
file_reference ../../packages/analytical/test/base-discovery.test.ts:discovers nested bases and excludes child files from parent ownership packages/analytical/test/base-discovery.test.ts:discovers nested bases and excludes child files from parent ownership ["../../packages/analytical/test/base-discovery.test.ts:discovers nested bases and excludes child files from parent owne
references implied_context reqlan rq/bases/base.rq implied_context

Inbound references

KindIdeaPathSnippet
None

Unresolved references

KindIdeaPathSnippet
None

Local graph

Initialising graph…