Idea detail
active_base_switch
reqlan rq/bases/base.rq:139
Summary
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 triggers /
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 workspace_base_picker, Ideas Summary ideas_summary_base_scope.
Implemented by index-service.ts ( `setActiveBaseId` / `scheduleBaseCatchUp` ); engine: base-registry.ts `ensureBaseReady`, workspace-index.ts `ensureReady`.
Attributes
Ancestor context
No ancestor chain recorded.
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | implied_context | reqlan rq/bases/base.rq | active_base_switch |
| references | multi_base_environment | reqlan rq/bases/base.rq | active_base_switch |
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | ideas_summary_base_scope | ideas_summary_base_scope | |
| references | indexing_trigger_open | indexing_trigger_open | |
| references | triggers | triggers | |
| references | workspace_base_picker | workspace_base_picker |
Initialising graph…