Ideas30
References245
Statuses2
Tags1

Ideas in file

IdeaStatusTagsSummaryKatz
local_graph_viewThe activity bar provides a local graph view scoped to the current file or selected idea. The local graph should show direct and optionally indirect references with a configurable depth.0.055
activity_barThe extension should provide an activity bar sidebar for editor-adjacent requirement context per [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 [indexer.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.0.115
activity_bar_stylingdoneActivity bar chrome for the [panes] stack under [ActivityBarApp] / [CollapsiblePane]. - **Open panes fill** the remaining bar height ( flex grow ); collapsed panes stay header-sized. A single open pane takes the full stack; multiple open panes share space by persisted relative weights. - Each expanded pane is **resizable** when more than one is open ( drag handle adjusts weight ); heights / weights persist with expand state via [ActivityBarApp] view state. - The bar itself **scrolls** when minimum pane sizes exceed the webview viewport; otherwise pane bodies scroll internally. - Pane shells **persist** across bootstrap / empty / invalid states — hide or soften **content** inside the pane ( e. g. [SelectionPane] empty copy ), do not unmount the section for phase or missing data. Bootstrap banner remains per [loading_state]; list overflow still uses [panel_content_styling] / [NestedSection]. Layout helpers: ["../../../packages/extension/webviews/activity-bar/lib/pane-layout.ts"].0.054
iconthe activity bar icon should use the reqlan logo. [brand]0.040
panes- [header_buttons] - [workspace_panel.workspace_pane] - [search_panel.search_pane] - [todo_panel.todo_pane] - [current_context_scope.current_file_pane] - [selection_pane] - [ideaset_pane] - [file_references_pane] - [recent_pane]0.047
header_buttonsCross-pane controls live in a compact header above the pane stack. - " Sync with editor " toggle: panes follow the active editor and cursor by default; when off, stay pinned on the last focused idea. - [hop_depth_control]: global graph hop depth for context search, graph slice, references, and ancestors — not a boolean toggle. - " Open in Ideas Summary ": reveal [ideas_summary_panel] with the ideas table filtered to the current file, or the graph tab centred on the current idea. - " Export slice ": JSON or CSV of the current neighbourhood only. This slice is lighter than workspace ["../export/export.rq".export_JSON] and ["../export/export.rq".export_csv]. - " Copy as markdown ": copy the focused idea plus parents and reference lists for pasting into chat or PRs. - Refresh control tied to index readiness. - [info_site_link] - Status / error line under the toolbar: [error_status_bar]0.056
error_status_bardoneWhen the activity bar status line ( ["../../../packages/extension/webviews/activity-bar/components/HeaderBar.svelte"] ) or Ideas Summary status chrome ( ["../../../packages/extension/webviews/ideas-summary/components/StatusBar.svelte"] ) is in an error state ( `statusError` ), surface the error **prominently** — do not mute it or bury it behind healthy index counts. - Lead the status text with the error summary or issue count; healthy idea / reference counts may follow as secondary context. - Use error foreground, error validation background, a distinct error label, and `role="alert"` so the message is visually and accessibly distinct from idle status. - Bootstrap error banner ( ["../../../packages/extension/webviews/activity-bar/components/BootstrapStatus.svelte"] in [loading_state] ) must not apply muted styling to the error detail. Soft-waits for an unready index stay non-error per [loading_state] / [workspace_panel.workspace_loading]; this idea covers true error states only. Shared copy helper: ["../../../packages/extension/webviews/ideas-summary/lib/index-status-text.ts"].0.075
hop_depth_controlA **- / value / + ** button pair ( not a 1 - hop / 2 - hop toggle ) sets [context_scope_doc.global_hop_depth]. - Minimum hop depth is 1 ( direct neighbours only ); **-** is disabled at minimum. - Maximum hop depth is capped ( default 4 for the activity bar ); ** + ** is disabled at maximum. - Changing global depth rebuilds [context_scope_doc.reqlan_context_model], refreshes graph / refs / ancestors panes, and updates [context_scope_doc.context_footprint]. - When [context_scope_doc.context_footprint] has no centre, depth still updates session state. Panes refresh when a centre appears. - Legacy `setIncludeIndirect` maps to depth 2 / 1 for backward compatibility during migration.0.064
info_site_linkThe header shows an info control that opens the project site in the system browser. Link id `site` from [phonebook_reqs.phonebook] per [phonebook_reqs.activity_bar_site_link]. Resolved in the extension host via ["../../../packages/extension/src/shared/phonebook.ts"] ( canonical data in ["../../phonebook.json"] ), not hardcoded in the webview. The webview receives the resolved label and href from [activity_bar_webview] and posts `openPhonebookLink` when the user activates the control.0.059
scope_paneComposed context inspector — details in [current_context_scope.scope_pane].0.065
git_history_lensFocus-centric git history in the git lens — details in [current_context_scope.git_history_lens].0.070
miniature_graph_paneSmall interactive neighbourhood graph — details in [minigraph.miniature_graph_pane].0.069
reference_lists_paneInbound / outbound reference lists — details in [current_context_scope.reference_lists_pane]. Shared editor / panel resolution: [current_context_scope.reference_resolution_parity]. Unresolved idea create affordance: [current_context_scope.unresolved_reference_create].0.057
refernce_lists_pane_reference_tieringInbound refernces may be direct, or via ideaset references. The [reference_lists_pane] should tier the references based on the reference type. Design must keep in mind that that the ideaset refernces are likely more numerous and lower signal.0.040
parent_nodes_paneUpstream ancestor chain — details in [current_context_scope.parent_nodes_pane].0.045
selection_paneMulti-idea selection list — details in [current_context_scope.selection_pane].0.097
ideaset_paneWhen the focused idea belongs to one or more ideasets. - List ideaset names with a dropdown of member chips ( same interaction model as [ideas_summary_doc.idea_sets_tab] ). - Path column links to the ideaset source file. - Hidden when the focus idea is not a member of any ideaset.0.051
file_references_paneFile-scoped edges only — inbound and outbound file references for the focused idea. Useful for tracing which source files implement or mention a requirement. - Group shared file targets per [graphical_graph_doc.referenced_files_grouping] when multiple ideas reference the same path. - Line-qualified references should navigate to the specific line when present.0.051
recent_paneRecently touched ideas in the session ( configurable count and truncation basis per [graphical_graph_doc.node_truncation] ). - Click opens the idea; optional pin to [context_tray].0.051
context_trayPinned ideas for AI context — details in [current_context_scope.context_tray].0.072
performancedoneSidebar webviews share the same constraints as [graph_lib.webview_threading]. - The HTML / Svelte shell paints before index discovery begins; the post-paint `ready` handshake starts indexing. - Require the host-matching core engine at activate; do not embed a sql. js vendor in the activation-critical host bundle. - Default neighbourhood slices; never load the full workspace graph into a pane. - Debounce editor selection and cursor events before rebuilding slices. - Lazy-mount cytoscape only for visible sub-panes; destroy when collapsed or hidden. - Reuse [indexer.local_graph_analysis] and graph query builders rather than ad-hoc index walks in the webview. - Interactive actions ( `openIdea`, insert ref, add to chat, phonebook / Ideas Summary links ) are handled on a priority path: they cancel in-flight search / refresh work and briefly quiet editor-driven rebuilds so subsequent clicks stay snappy. - Idea search scoring runs in a worker thread with a preloaded catalog; catalog load yields so it cannot monopolize the host. - Link navigation must stay snappy once a target is already resolved: [link_open_decoupled_from_git], [link_open_interactive_quiet], [lean_resolved_open], [git_focus_cache_by_head].0.040
link_open_decoupled_from_gitdoneOpening a resolved idea / file link must not await git focus history or idea-at-revision parsing. Host posts index-backed context ( scope, references, graph, ancestors ) first; [current_context_scope.git_history_lens] enrichment runs asynchronously afterward and may re-post context when ready. Light git chrome ( branch / dirty from the VS Code git API ) may ride along with the first paint; `git log -L`, `git show` + Langium parse-at-revision, and focus stats must not block open or the first context post. Implemented by ["../../../packages/extension/src/activity_bar_module/activity-bar-webview-provider.ts"] and ["../../../packages/extension/src/activity_bar_module/git-context.ts"].0.059
link_open_interactive_quietdoneProgrammatic and editor file-switch navigation share the interactive quiet path with webview `openIdea`: cancel in-flight search / refresh and briefly suppress editor-driven pane rebuilds so the open settles before context rebuild. Selection moves within the same document keep the short debounce only ( no full interactive cancel ). Document-link / go-to-definition opens that change the active file are covered by active-editor-switch quieting. Implemented by ["../../../packages/extension/src/activity_bar_module/activity-bar-webview-provider.ts"].0.045
lean_resolved_opendoneWhen a link already carries a resolved `fileUri` / `targetPath`, open that URI at the given line — do not re-classify resolution or walk base discovery on the click path. Pass the active base root into ["../../../packages/extension/src/analytical_submodule/index-store/open-index-file.ts"] so ["../../../packages/extension/src/analytical_submodule/index-store/resolve-index-file-uri.ts"] skips tree discovery. `toIndexFileUri` fallbacks ( editor selection, git chrome, open-tab scan ) must use ["../../../packages/analytical/src/core/base-discovery.ts".nearestBaseRoot] ( ancestor `.reqlan` walk ), never `discoverBases` ( full workspace scan ). Clicking a search hit that already has `fileUri` + line must not wait on catalog scoring or base rediscovery.0.045
git_focus_cache_by_headdoneFocus git history / stats caches are not TTL-evicted on a fixed wall-clock window. Refresh a cache entry only when its write timestamp is **before** the repository's latest commit authored time ( HEAD ); while `cache.at >= latestCommitAuthoredAt`, reuse the entry. Applies to focus history, focus stats, and range-commit count caches in ["../../../packages/extension/src/activity_bar_module/git-context.ts"]. Related UX: [current_context_scope.git_history_lens].0.059
implementation_prioritySuggested build order: 1. [scope_pane] and [reference_lists_pane] ( index data only, no cytoscape ). 2. [miniature_graph_pane] with expand / collapse and handoff to Ideas Summary. 3. [parent_nodes_pane] with status rollup. 4. [context_tray] and create-stub integration with [commands.pallete_function_create_todo]. 5. [selection_pane], [ideaset_pane], [file_references_pane], [recent_pane].0.040
component_listPriority release ( shipped ): - Shell: [ActivityBarApp], HeaderBar ( includes [info_site_link] ), CollapsiblePane in ["../../../packages/extension/webviews/activity-bar/"] - Panes: WorkspacePane, [SearchPane], [TodoPane], ScopePane, SelectionPane, ReferenceListsPane, MiniatureGraphPane, ParentNodesPane, ContextTray - Graph: [MiniGraphCanvas] consuming shared graph lib per [graph_lib] - Host: [activity_bar_webview], [activity_bar_data], wire types in [activity_bar_messages] - HTML: [get_activity_bar_html] - Build: ["../../../packages/extension/webviews/activity-bar/vite.config.ts"] → media / webviews / activity-bar / Deferred ( not in priority release ): - IdeasetPane, FileReferencesPane, RecentPane - [graph_path_doc.graph_path_walk] UI pane - ExportSliceButton - Full workspace export via ["../export/export.rq".export_JSON] and ["../export/export.rq".export_csv]0.040
minigraph_file_reference_linksdoneFile-ref click open behaviour — details in [minigraph.minigraph_file_reference_links].0.040
loading_statedoneAfter the activity bar shell mounts, the header may appear before pane data. Cover every sequencing beat with an explicit loading or error affordance — never a blank content area: 1. HTML shell ( before Svelte boots ): inline waiting markup in [get_activity_bar_html]. 2. Connecting: header visible; a post-first-frame `ready` handshake starts the index and requests the first host state. 3. Waiting for index: [workspace_panel.workspace_loading]. 4. Ready panes: [current_context_scope.context_panes_loading], [minigraph.minigraph_loading], and [search_panel.search_progress]. Index sync progress belongs in [workspace_panel.workspace_pane]; graph slice waits stay in [miniature_graph_pane]; idea-search phases stay in [search_panel.search_pane] — not a second global overlay. Host posts index health on `ready` and on subsequent status changes; soft-waits when the index is not ready instead of erroring the whole bar. Pane shells stay mounted through these phases per [activity_bar_styling]; only content / bootstrap banner reflect invalid or loading states. True error states ( status line + bootstrap banner ) must show the error prominently per [error_status_bar].0.063
panel_content_stylingdonePane bodies must not grow unbounded. Nested lists use [NestedSection] ( collapse + scroll ) under [CollapsiblePane]. Shell resize / fill / scroll behaviour: [activity_bar_styling]. Details: [workspace_panel.workspace_content_styling], [current_context_scope.context_content_styling]. [WorkspacePane] [ScopePane] [ReferenceListsPane]0.047