Code reference detail
context-model.ts
packages/extension/src/activity_bar_module/context-model.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| any_file_scope | The active editor may be a requirement file or implementation file ( Python, TypeScript, etc. ). [current_file_context] must surface requirement links even when the file contains no block ideas. Signals for non-. rq files ( and. rq files without a caret idea ): - [file_reference_links]: `.rq` ideas whose outbound `file_reference` edges target this file path ( for example `./apythonfile.py` ). - [folder_reference_links]: `.rq` ideas whose `file_reference` targets a parent folder of this file. - [comment_reference_links]: ideas resolved from `rq:[…]` tokens in this file's comments per [code_comment_refs.references_in_functional_code_comments]. - [git_context]: focus-centric git history ( recent commits, authors, branch ); working-tree dirty badge secondary. Focus behaviour: - `.rq` file with caret in a block → idea focus ( unchanged ). - Any file with linked requirements → file focus; `effectiveCenterId` defaults to the first linked requirement. - No links → file focus with empty related lists; graph / refs panes stay idle until a requirement is focused. Implementation: [context_model] uses [file_path_match] and `file_related_requirements` analyser; comment links are also resolved from live buffer text when indexed edges are absent. | 0.066 | ||
| context_scope | Reqlan sidebar and AI workflows reason about a composed [reqlan_context_model], not a single " current file " blob. Context applies to **any workspace file**, not only `.rq` sources — see [any_file_scope]. Context is built from orthogonal [context_dimensions] that the user can enable, pin, or collapse. The activity bar [activitybar.scope_pane] is the primary surface for inspecting and steering context; [activitybar.context_tray] holds the [manual_context] dimension. Token discipline per [features_ai.ai_integration]: show summaries and counts by default; expand a dimension only on intent. Parses per ["../../../reqlan rq/language/syntax.rq".reference_wikilink]. Decision-oriented v2 ( sources → signals → synthesis → views → consumers ) and show-don ' t-tell widgets: [context_scope_v2.context_scope_v2]. | 0.064 | ||
| implementation_priority | 1. [any_file_scope] types and [context_model] builder. 2. Host refresh for any workspace file; git / all-tab collection. 3. [scope_pane_design] non-. rq focus hero and grouped link panels. 4. [context_selection] + [activitybar.selection_pane]. 5. Lazy `loadFileLens` for file-list dimensions. 6. [ai_context_export]. 7. [graph_path_doc.graph_path_walk] ( future pane / Ideas Summary handoff ). | 0.045 | ||
| reqlan_context_model | Canonical composed context per [analytical_context_model]. Implementation: [context_model]. - [context_focus] is the single anchor ( idea, file, selection, or none ). - [context_dimensions] each contribute [context_contribution] records with counts and summary lines. - [context_footprint] merges enabled dimensions into deduped idea / file sets and an `effectiveCenterId` for graph / refs panes. - `currentFileSlice` is the projection used when the current-file lens is expanded. Includes `isRqFile`, `referencingIdeas`, `commentLinkedIdeas`, `folderReferencingIdeas`, and optional `gitChange`. - [context_selection] when the user highlights a non-empty range spanning one or more `.rq` ideas ( [activitybar.selection_pane] ). - [global_hop_depth] and [dimension_hop_control] overrides on the model. Host increments `revision` when any dimension or hop depth changes; webview ignores stale posts by revision. | 0.095 | ||
| definition | The indexer should live in the [core_analysis] module. On-disk schema: [sqlite_schema.ideas_index_sqlite] and [diagnostics_schema.diagnostics_sqlite]. Layout and WAL sidecars: [sidecars.reqlan_directory_layout]. Consumers: [consumers.index_consumers] ( extends [consumption] ). Sequencing and triggers: [sequencing.index_sequencing] ( extends [triggers] ). Cache reuse opportunities: [cache_reuse.index_cache_reuse]. | 0.040 | ||
| local_symbolic_analysis | done | Open-file symbolic analysis must run in Rust on one file only. Input: file URI plus source text ( and optional import-root mappings ). Output: ideas in that file, import binding names in that file, outbound edges with UTF-8 source byte spans, and same-file inbound backlinks ( edges whose target is an idea declared in this file ). Import binding names let a qualified reference name an import alias ( ["../core_analysis/check.rq".check_qualified_missing_idea] ). LSP document-link and error underlines must convert those spans to UTF-16 ( ["../extension/language/syntax/features-syntax-highlighting.rq".reference_underline_syntax_align] ). Cross-file inbound still comes from SQLite via ["./cache-reuse.rq".unify_inbound_indexes]. Do not read SQLite. Do not walk other workspace documents. Do not load an idea catalog. The open-buffer model is ["../extension/language/support/open-file-sequencing.rq".ast_lifecycle]. The hot path parses this buffer once. It does not run this extract as a second parse. Import-target confirmation is a separate depth-1 parse ( ["../extension/language/support/open-file-sequencing.rq".outbound_one_hop] ). That parse is not this extract. The language server caches the open buffer by URI plus text fingerprint ( ["../extension/language/support/open-file-sequencing.rq".open_file_hot_path] ). Wildcard forms stay one `wildcard_reference` pattern edge ( unresolved ); sync still expands them later via [wildcard_reference_edges]. Flag: `ExtractOptions.local_symbolic` forces an empty candidate list. CLI: ["../cli/cli_package.rq".commands] `analyse --local-symbolic <file>`. Sidebar: ["../extension/local-context/activitybar-panels/current_context_scope.rq".reference_lists_pane] merges live same-file inbound / outbound with indexed refs ( [local_symbolic_sidebar] ). Related: ["../language/syntax.rq".open_file_reference_sequencing], [index], ["./cache-reuse.rq".unify_inbound_indexes]. | 0.387 | |
| local_symbolic_sidebar | done | The activity bar reference lists and current-file scope must consume [local_symbolic_analysis] for the open buffer text so same-file inbound backlinks and outbound refs appear even when the SQLite index is stale or not ready. Merge live local rows with indexed `listReferencesForIdea` / hop-depth rows; dedupe by direction plus edge id ( and by idea id for scope idea chips ). Prefer the referencer name as the inbound label ( not the edge target label ). | 0.108 |
Reference labels
"../../../packages/extension/src/activity_bar_module/context-model.ts", "../../packages/extension/src/activity_bar_module/context-model.ts", ../../../packages/extension/src/activity_bar_module/context-model.ts, ../../packages/extension/src/activity_bar_module/context-model.ts