Code reference detail
WorkspacePane.svelte
packages/extension/webviews/activity-bar/components/WorkspacePane.svelte
| Idea | Status | Tags | Summary |
|---|---|---|---|
| base | 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]. | ||
| create_base_onboarding | 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 ), rediscovers, and activates indexing for that base. With multiple workspace folders and no bases, prompt against the first folder. Headless create-base helper: [create_base_impl] ( also used by CLI `init` ). | ||
| workspace_base_picker | done | Bases in the Workspace pane are chosen via a * * searchable dropdown * *, not a stacked list of base rows. - Closed: shows the active base label ( and compact ready / issue hint when useful ). - Open: type-to-filter over discovered bases by label and path; selecting a match * * pins * * the active base ( [bases.active_base_switch] ) — a pointer swap, not a sync. - Options surface label / path plus ready state and idea / edge / issue counts so the user can distinguish bases before committing. - Single-base workspaces still use the same control ( no special flat list ); empty discovery stays on the Create Base CTA. - Prefer VS Code dropdown tokens for chrome; keep the control compact so health / stats / actions remain the focus of the pane. Switch UX: - Selecting a base posts immediately; the picker may flash * * Switching … * * until `indexHealth` confirms `activeBaseId` ( should be near-instant ). - Never kick soft / hard sync on switch; readiness / progress for a not-yet-ready base is whatever the index already reports. - Editor-follow must not overwrite a user-selected base on the same refresh that applies the selection. Implemented by [BasePicker] in [WorkspacePane]; filter helpers in [filter_bases]. | |
| workspace_content_styling | done | Pane bodies must not grow unbounded. Nested lists use [NestedSection] ( collapse + scroll ) under [CollapsiblePane]. File → errors grouping via [group_file_issues] in [WorkspacePane]. | |
| workspace_pane | Multi-base index health, errors, and activity — without duplicating the full Index tab in [ideas_summary_doc.index_panel]. - [workspace_base_picker]: choose the active base; do not render a full always-visible base list. - For the selected base: state badge, sync progress ( processed / total + current file ), idea / edge counts, global and per-file errors, recent activity. - Clickable file issue list opens the source location in the editor. - Refresh / cancel in-flight sync / clear & rebuild for the selected base ( or all ); " Open index tab " hands off to [ideas_summary_panel] with that base selected. - When no bases exist: empty state with Create Base CTA ( [bases.create_base_onboarding] ). Non-blocking sync UX: ["../../../indexer/indexer.rq".nonblocking_index]. Implemented by [WorkspacePane]. | ||
| activity_bar | The extension should provide an activity bar sidebar for editor-adjacent requirement context per [consumption.local_graph_view]. UI is implemented as Svelte webview panes per [development_core], not as a long-lived tree of static rows. The host loads slices from the index via [graph_analysers.local_graph_analysis] and forwards editor focus through [activity_bar_webview] and [activity_bar_data]. Panes should be performance conscious: capped neighbourhoods, lazy cytoscape mount, debounced cursor updates — same discipline as [webview_doc.webview]. Workspace-wide tables, full layout controls, and unconstrained graph dumps belong in Ideas Summary per [ideas_summary_doc.ideas_summary]; panes link out with prefilled state instead of duplicating those views. | ||
| panel_content_styling | done | Pane bodies must not grow unbounded. Nested lists use [NestedSection] ( collapse + scroll ) under [CollapsiblePane]. Details: [workspace_panel.workspace_content_styling], [current_context_scope.context_content_styling]. [WorkspacePane] [ScopePane] [ReferenceListsPane] |
Reference labels
../../../packages/extension/webviews/activity-bar/components/WorkspacePane.svelte, ../../packages/extension/webviews/activity-bar/components/WorkspacePane.svelte, WorkspacePane