Cluster detail
reqlan rq/extension/local-context/activitybar-panels
Ideas located under folder reqlan rq/extension/local-context/activitybar-panels.
folder
37 ideas
5 files
| Idea | File | Status | Summary | Katz |
|---|---|---|---|---|
| context_content_styling | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | Pane bodies must not grow unbounded. Nested lists use [NestedSection] ( collapse + scroll ) under [CollapsiblePane]. Priority: [scope_pane]; [reference_lists_pane] kind groups; also selection / parents. [ScopePane] [ReferenceListsPane] | 0.046 |
| context_panes_loading | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | Ready panes: [scope_pane], [reference_lists_pane], and [parent_nodes_pane] show per-request loading and error, distinct from empty. | 0.048 | |
| context_tray | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | A small pinned set of ideas carried across panes for AI context — the ["../context-scope.rq".manual_context] dimension. - Chips for pinned ideas with remove control. - " Clear tray " and " Copy tray as markdown " actions. - Tray contents are included when invoking @ reqlan context or divide-and-conquer flows per [commands.divide_and_conquer]. | 0.066 | |
| current_file_pane | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | Primary contextual pane when a. rq file is active. Sub-sections may collapse independently. [scope_pane] [reference_lists_pane] [parent_nodes_pane] | 0.046 | |
| dependency_pulse_table | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | The focus-hero [DependencyPulse] compass ( ↑ parents, → outbound, ← inbound, ↓ dependents, ● centre ) is clickable. Clicking any arm or the centre toggles a compact reference table below with Dir, Role, Idea, and Status. Rows open / focus the related idea. Duplicates of always-on inbound / outbound lists are omitted from the hero; the current-file lens still lists them. Aligns with [context_scope_v2.dependency_pulse]. Implemented by [DependencyPulse] [ScopePane]. | 0.059 |
| fingerprint_axis_drilldown | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | Each [ContextFingerprint] axis row ( Files, Requirements, History, Architecture, Git, Diagnostics, Coverage ) is clickable. Clicking a row toggles a compact contributor table below it ( Source, Item, Detail ) listing what filled that axis — e. g. which lenses included a file, which ideas are in the footprint, git focus commits / authors ( dirty paths secondary ), anomalies, or relationship edges. Table rows open / focus the related idea or file when actionable. Empty axes show a short “ why care / how to fill ” message. Mirrors the interaction pattern of [dependency_pulse_table]. Aligns with [context_scope_v2.context_fingerprint] and [tooltip_detail]. Implemented by [ContextFingerprint] [ScopePane]. | 0.075 |
| git_history_lens | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | Expanded git dimension in [scope_pane]: focus-centric development history, not a Source Control duplicate. Layout: - Header: branch name, HEAD short hash, muted summary ( e. g. " main · 3 commits · 2 authors " ). - Focus history ( primary ): up to ~ 8 commits touching the focus file / idea line range — relative time, short hash, subject, author. Prefer `git log -L` for `.rq` ideas; fall back to path log. Non-. rq uses path `--follow`. - Authors: compact chip row of top authors from that log window. - Working tree ( secondary, collapsed by default ): dirty staged / unstaged paths for caution / footprint only. Focus hero: history cue ( last commit age / branch ), not `git: staged|unstaged`. Fingerprint Git axis and drilldown list commits / authors ( dirty paths secondary ) per [fingerprint_axis_drilldown] and [tooltip_detail]. Aligns with ["../context-scope.rq".git_context] and [context_scope_v2.development_history_signals]. Performance: heavy focus history must not block link open or first context paint — see ["../activitybar.rq".link_open_decoupled_from_git] and ["../activitybar.rq".git_focus_cache_by_head]. Implemented by [ScopePane] [ContextFingerprint]. | 0.107 |
| parent_nodes_pane | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | Upstream context for the focused idea. - Ancestor chain as a breadcrumb with a configurable depth limit ( not only immediate parents ). - Status rollup for ancestors ( e. g. counts by @ status ). - " What blocks completion? " surfaces upstream ideas whose @ status is not done or in-progress. | 0.058 | |
| reference_lists_pane | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | Actionable inbound and outbound reference lists for the focused idea. - Inbound: ideas that reference the focus ( edges to the focus ). - Outbound: ideas and files the focus references ( edges from the focus ). - Live same-file inbound / outbound from ["../../../indexer/indexer.rq".local_symbolic_analysis] merged with indexed refs per ["../../../indexer/indexer.rq".local_symbolic_sidebar]. - Group entries by edge kind ( dependency, related to, file ref, incompatible, etc. ) in collapsible sections. - Show a short snippet or source line explaining why each edge exists where available. - Text filter scoped to this pane only ( not the full ui-sql layer ). - " Add to context " pins an idea into [context_tray] for Copilot / @ reqlan workflows. - [reference_resolution_parity]: panel resolution must match the editor file view. - [unresolved_reference_create]: unresolved idea targets get a create affordance, not a dead file link. Implemented by [ReferenceListsPane]. | 0.126 | |
| reference_resolution_parity | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | Reference resolution for the activity-bar references pane must use the same shared rules as the editor ( document links / go-to-definition ), not a second ad-hoc classifier. - Bare namespace-alias bracket refs such as `[ActivityBarApp]` that open a file in the editor must index as resolved `file_reference` edges ( import path ), not unresolved idea refs — per ["../../../language/imports.rq".import_namespace]. - Quoted file paths and markdown file links use the same file-target treatment as the language file-link resolver in ["../../../../packages/language/src/reqlan-file-link-resolver.ts"] / ["../../../../packages/language/src/reqlan-namespace-import-links.ts"]. - File targets are opened relative to the defining `.rq` file ( same path join as the miniature graph ), not the workspace root. - If a target resolves in the file view, it must resolve ( and be openable ) in [reference_lists_pane]. Implemented by ["../../../../crates/reqlan-index/src/extract.rs"], ["../../../../packages/analytical/src/core/file-reference-resolve.ts"], [ReferenceListsPane]. | 0.064 |
| scope_pane | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | Composed context inspector per ["../context-scope.rq".scope_pane_design]. Built from ["../context-scope.rq".reqlan_context_model]; not a flat file list. See ["../context-scope.rq".context_dimensions] for workspace, current file, open files, file history, edit history, manual, and git lenses. Git lens: [git_history_lens] ( history-first, not staging mirror ). Legacy file-only fields live in ["../context-scope.rq".current_file_context] / currentFile slice when the current-file lens is expanded. Implemented by [ScopePane]. | 0.092 | |
| selection_pane | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | When the user selects text spanning one or more `.rq` ideas ( ["../context-scope.rq".context_selection] ). - List selected ideas with Focus and Pin actions. - Contributes selection idea ids to ["../context-scope.rq".context_footprint] and may pair with ["../graph-path.rq".graph_path_walk] as path endpoints. - Hidden when there is no non-empty multi-line selection overlapping ideas. | 0.053 | |
| tooltip_detail | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | Scope pane tooltips are detailed enough to explain *what* a meter means and *why it matters*. - [scope_pane] widgets ( stability, dependency pulse, timeline, churn, lens chips, footprint line ) expose granular hover copy on the control and its sub-items. - [ContextFingerprint] has an ⓘ info button with semantic scoring help, per-axis hover copy, and [fingerprint_axis_drilldown]. - Scoring copy is sourced from [context_signals] ( `CONTEXT_FINGERPRINT_HELP`, `CONTEXT_FINGERPRINT_AXIS_HELP`, `buildContextFingerprint` ) so UI stays aligned with [context_scope_v2.context_fingerprint] and [context_scope_v2.ai_readiness_gauge]. Implemented by [ContextFingerprint] [ScopePane]. | 0.075 |
| unresolved_reference_create | reqlan rq/extension/local-context/activitybar-panels/current_context_scope.rq | done | When an outbound reference remains unresolved after shared resolution ( missing idea, not a file / namespace-alias target ): - Do **not** treat the label as a file path or navigate to a non-existent file. - Show an unresolved badge and a ** + ** control with tooltip " Create idea ". - Activating ** + ** opens create-idea ( reuse [commands.pallete_function_create_todo] when available; until then, the existing import-error create-file flow prefilled with the reference name and source document ). Implemented by [ReferenceListsPane] and the activity-bar host message handler. | 0.064 |
| miniature_graph_pane | reqlan rq/extension/local-context/activitybar-panels/minigraph.rq | A small interactive graph centred on the cursor idea ( or the file's first idea when the caret is outside any block ). Consumes [graph_lib.graph_library] with sidebar-appropriate defaults; slices from [indexer.local_graph_analysis]. - Default depth 1; + / - controls expand or collapse neighbourhood depth without opening Ideas Summary. - Pan, zoom, and drag per [graph_lib.view_controls]. - Labels default to [graph_lib.graph_label_auto] via shared GraphCyController ( no separate Labels control here; full control lives on [graphical_graph_doc.graphical_graph] ). - [graph_lib.manual_reframe] — " Fit to view " in [MiniGraphCanvas]; same API as the full graph tab. - [graph_lib.auto_reframe] and [graph_lib.reframe_animation] when the neighbourhood node set changes ( instant first fit, animated afterward ). - No full layout / physics menus here ( defer to [graphical_graph_doc.graphical_graph] ). - Single-click a node opens its source; double-click or " Focus " recentres the slice on that idea. - Edge kinds styled like the full graph ( including dashed file-reference edges ). - When nodes are truncated per [graphical_graph_doc.node_truncation], show " + N more " with a control to open the centred slice in Ideas Summary. - " Open in Graph tab " hands off centerId and query state to [ideas_summary_panel]. Mount cytoscape only while this sub-pane is visible per [graph_lib.graph_cy_controller]. | 0.055 | |
| minigraph_file_reference_links | reqlan rq/extension/local-context/activitybar-panels/minigraph.rq | done | when the user clicks on a file reference link in the miniature graph, we should open the file in the editor if the file is defined as relative, it should be opened relative to the defining file, not the workspace root Fixed in [indexer.local_graph_analysis]: external file nodes now resolve their path against the defining file's folder ( via the edge source id ) when the slice is built, so a workspace-relative path is handed to the editor open action. | 0.045 |
| minigraph_loading | reqlan rq/extension/local-context/activitybar-panels/minigraph.rq | Graph slice waits stay in [miniature_graph_pane], not a second global overlay. Show per-request loading and error, distinct from empty. | 0.048 | |
| search_add_to_chat | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | From each [search_pane] hit, a split **Add to chat** control: - Primary button: place compact `#requirement` context into the **current** chat input without submitting. - ▾ menu ( visible secondary affordance ): **Add to current chat** or **Add to new chat** ( new session, then seed the same payload ). Tooltips name both behaviours; secondary is not right-click-only. Same payload shape as ["../../agent/features-ai.rq".add_to_chat] ( idea name, path: line, summary ) via [open_chat]. Host: [open_chat] with `{ query, isPartialQuery: true, target: 'current' | 'new' }`. Cursor note: do not use `workbench.action.chat.open` for **current** ( it always opens a new tab ); see ["../../agent/features-ai.rq".add_to_chat] / [open_chat]. Clipboard fallback when no chat command is available ( same spirit as ["../../agent/features-ai.rq".add_to_chat] ). Wire: [AddToChatButton] / [SearchPane] → [app_state] `addToChat(hit, target)` → [activity_bar_messages] → [activity_bar_webview] → [open_chat]. | 0.071 |
| search_pane | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | Workspace idea search in the activity bar — find rq ideas by name, summary, or tags without leaving the sidebar. Complements the modal from [commands.search_code_actions]; this pane stays open for repeated lookups and inserts. Implemented by [SearchPane] under [CollapsiblePane]; host wire in [activity_bar_webview] / [activity_bar_messages] / [app_state]. [search_pane_query] [search_pane_layout] [search_pane_results] [search_pane_open_live_file] [search_pane_load_more] [search_pane_file_hits] [search_pane_insert_reference] [search_add_to_chat] [search_pane_advanced] [search_pane_empty_query] [search_pane_scoped_status] [search_progress] [search_pane_seed] [search_pane_match_highlighting] | 0.176 |
| search_pane_advanced | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] header link **Advanced** opens [ideas_summary_doc.ideas_list] with the current query prefilled. | 0.063 |
| search_pane_empty_query | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | Empty query in [search_pane]: prompt to type ideas or files ( do not dump the full catalog into the pane ). | 0.063 |
| search_pane_file_hits | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] mixes [core_search.file_search] hits ( kind `file` ) into the ranked list with ideas. Click opens the file at line 0. File hits do not offer Insert ref or Pin ( those are idea actions ). Empty-state and placeholder copy mention files. | 0.115 |
| search_pane_insert_reference | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | Each [search_pane] hit has an **Insert reference** button that inserts `[idea_name]` at the active editor cursor ( or replaces the selection ) via [insert_idea_reference], adding an import when the target is in another file — same rules as [commands.search_code_actions]. Helpers: [insert_idea_reference_helpers]. | 0.063 |
| search_pane_layout | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] results fill the pane body ( 100 % width ) and scroll inside the pane; do not nest a second capped [NestedSection] scroll. | 0.069 |
| search_pane_load_more | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | When ranked hits exceed the visible page, [search_pane] shows an exceeded-count label ( `40+ matches`, or `{n}+ matches` after further pages ) instead of a full total, and a **Show more** control at the bottom of the list that fetches the next page and appends. A new query resets to the first page. Uses [core_search.fuzzy_search_pages] ( `offset` + `truncated` ). | 0.095 |
| search_pane_match_highlighting | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | The [search_pane_results] list highlights the parts of name, path, and summary that matched the query via [SearchHighlight]. Resilient to [core_search.fuzzy_search] / [core_search.fuzzy_search_whitespace]: contiguous and separator-insensitive spans, token prefixes / part matches, reordered words, and character-subsequence ( fuzzy / acronym ) marks on short fields such as the idea name — not scattered letters in long summaries. | 0.063 |
| search_pane_open_live_file | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | A click on a [search_pane] hit must show the live workspace file at that path. If that file is already open in a workspace tab, focus that tab and move the caret. Do not open a second read-only tab with stale content ( a detached `file://` copy that Cursor does not sync ). Keep the click path cheap: no extra index read, no base discovery. | 0.074 |
| search_pane_query | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] search input posts a debounced host query. Ranking uses [core_search.fuzzy_search] in the native search module ( `NativeWorkspaceIndex.fuzzySearch` ); separator-insensitive `_` / `-` / `...` / whitespace. File-name hits: [search_pane_file_hits] / [core_search.file_search]. Pages: [search_pane_load_more] / [core_search.fuzzy_search_pages]. Highlighting stays in the TS `./fuzzy-search` export. | 0.063 |
| search_pane_results | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] results list is paged ( default page size 40 ) with name, path, and one-line summary; click opens the idea or file ( [search_pane_open_live_file] ). Exceeded counts and further pages: [search_pane_load_more]. File hits: [search_pane_file_hits]. | 0.078 |
| search_pane_scoped_status | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | [search_pane] soft-waits when the index is not ready; scoped errors stay in the pane. Loading UX: [search_progress]. | 0.063 |
| search_pane_seed | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | Host may seed [search_pane] via `focusIdeaSearch` ( query + optional pathFilter ) from the wildcard-matches webview **Open in Search** action ( ["../../../language/imports.rq".wildcard_references_webview] ). Path filter is a hard AND after ranking ( ["../../../language/imports.rq".idea_path_filter] ). | 0.090 |
| search_progress | reqlan rq/extension/local-context/activitybar-panels/search.rq | done | Activity-bar search ranks in the native [core_search.fuzzy_search] module ( rusqlite read + score in-process ). The host must not hydrate a JS idea catalog or worker before scoring — return only the capped hit list. A static " Searching … " / " Loading … " label must not be the only signal: the pane should show **live progress** so a slow wait reads as working, not hung. - Host posts progress for the in-flight search request while native scoring runs ( `Scoring ideas…` ). - [SearchPane] displays the phase label with a continuous activity affordance ( spinner / indeterminate bar ) and elapsed time while loading, for both the empty initial wait and the " Updating … " refresh path. - Stale progress from superseded queries must not overwrite a newer request; clear progress when results or a scoped error arrive. | 0.080 |
| todo_pane | reqlan rq/extension/local-context/activitybar-panels/todo.rq | done | Workspace todo list in the activity bar — ideas that carry the `@todo` special attribute ( [ai_support.special_attributes] ), not ideas whose `@status` happens to be `todo`. Complements the planned Overview todos rollup in [ideas_summary_doc.overview_page]; this pane stays open for quick triage beside the editor. Layout matches [search_panel.search_pane_layout]: flat list in the pane body, not a nested boxed subsection. - List ideas in the active base where the `todo` attribute is present ( bare `@todo` / flag, or `@todo` with a note ). - Each row: idea name, source path, and the todo note when present ( omit empty / bare-true values ). - Click opens the idea in the editor ( same navigation as [search_panel.search_pane_results] ). - Results fill the pane body ( 100 % width ) and scroll inside the pane; do not nest a second capped NestedSection scroll. - List capped ( default ~ 40 ) with a “ showing N of M ” meta line when truncated; do not dump unbounded index results into the pane. - Soft-wait when the index is not ready; scoped errors stay in the pane. - Pane header **Refresh** reloads the list; also reload on index health / sync completion for the active base. - Optional affordance to create a stub via [commands.pallete_function_create_todo] when that command ships — do not block the list on it. Host query + wire: [activity_bar_webview] / [activity_bar_data] / [activity_bar_messages] / [app_state]; store query [sqlite_store]. Implemented by [TodoPane] under [CollapsiblePane]; same scroll / fill pattern as [SearchPane]. | 0.046 |
| workspace_base_picker | reqlan rq/extension/local-context/activitybar-panels/workspace.rq | 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]. | 0.072 |
| workspace_content_styling | reqlan rq/extension/local-context/activitybar-panels/workspace.rq | done | Pane bodies must not grow unbounded. Nested lists use [NestedSection] ( collapse + scroll ) under [CollapsiblePane]. File → errors grouping via [group_file_issues] in [WorkspacePane]. | 0.046 |
| workspace_loading | reqlan rq/extension/local-context/activitybar-panels/workspace.rq | Index sync progress belongs in [workspace_pane]; do not treat " index not ready " as a hard global error during cold start. Host posts index health on view resolve and on `ready`; soft-waits when the index is not ready instead of erroring the whole bar. Waiting for index: use [workspace_pane] sync progress affordance. When the status line *is* in error, show it prominently per ["../activitybar.rq".error_status_bar]. | 0.108 | |
| workspace_pane | reqlan rq/extension/local-context/activitybar-panels/workspace.rq | 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]. | 0.146 |
Cluster graph
Initialising graph…