Referenced by 20
Labels 2

Referencing ideas

IdeaStatusTagsSummary
html_export The extension should support building documentation as html from the requirement graph. Html export should render ideas, attributes, references, and navigable structure suitable for sharing. Core export pipeline lives in `@reqlan/analytical` ( `exportHtml` / `AnalysisApi.exportHtml` ); the extension command palette and CLI ( `reqlan export` ) are thin hosts. A command palette action ( and the Ideas Summary link ) should open ["./features-export.rq".export_webview] with HTML selected and export requirements to html as a multi-file static site ( single-file mode remains optional via [html_export_runtime_modes] ). HTML-specific form fields live under [html_export_form] within that general export webview. [html_export_form] [html_export_multi_file] [html_export_internal_links] [html_export_search] [html_export_list_views] [html_export_idea_pages] [html_export_file_pages] [html_export_code_reference_pages] [html_export_cluster_pages] [html_export_graph_page] [html_export_attributes_index] [html_export_attribute_pages] [html_export_printable_pages] [html_export_runtime_modes] [html_export_scrollable_lists] [html_export_header_link] [html_export_url_base]
html_export_graph_animation Live physics in the HTML export should match Ideas Summary animatePhysics: continuous damped semi-implicit Euler using the defaults from ["../../packages/analytical/src/graph/physics-core.js"] ( same module as ["../../packages/extension/webviews/shared/graph/graph-physics.ts"] ). A Live physics toggle pauses and resumes the same simulation state ( default off ); when off, the graph batch-settles then sleeps. Simulation should converge and sleep when calm, waking on filter changes or when Live physics is turned back on, aligned with [layout_physics]. Large graphs use a spatial grid + repulsion cutoff in the shared core; all nodes and full labels remain visible.
html_export_graph_interaction The interactive export graph should support dragging nodes and panning or zooming the viewport, aligned with [view_controls] and [manual_reframe]. Click-through to idea pages must remain available after drag via click-versus-drag discrimination. A Fit control should reframe the viewport to the current node set without restarting layout or clearing live physics state. Zoom and Fit must continuously drive [graph_label_auto] / [html_export_graph_label_auto] opacity when Labels is in auto mode.
html_export_graph_label_auto done Export-surface wiring for [graph_label_auto]: canvas paint applies continuous zoom opacity ( GRAPH_LABEL_FADE_START → GRAPH_LABEL_FADE_END ); hover / drag stays fully opaque. Zoom and Fit from [html_export_graph_interaction] / [manual_reframe] update opacity each paint.
html_export_graph_label_modes done Export-surface wiring for [graph_label_modes]: Labels control on every interactive export graph cycles auto / on / off; Reset restores auto.
html_export_graph_labels HTML export canvas graphs implement shared [graph_labels] ( full names, no ellipsis truncation ). [html_export_graph_label_modes] [html_export_graph_label_auto]
html_export_graph_layout The interactive export graph should lay out nodes so labels and circles do not heavily overlap. Initial placement should settle with the same Obsidian-style force model as [layout_physics] ( central gravity, edge springs, inverse-square repulsion ). Rendering uses canvas 2 d ( not SVG DOM ) with shared physics from ["../../packages/analytical/src/graph/physics-core.js"].
html_export_graph_links Graph node hrefs must resolve to idea pages from every export page depth, including nested idea, file, and cluster pages. Node urls should be export-root-relative so path segments such as ideas / are not dropped when resolving from nested pages. When [html_export_url_base] is set, runtime resolution of those urls must honour the mount prefix ( same contract as page and asset hrefs ). External file nodes should resolve to [html_export_file_pages] or [html_export_code_reference_pages] when those page families are enabled.
html_export_graph_metadata Graph nodes in the HTML export should surface tags, status, and attribute keys on or beside the node, not only as filter inputs. Attribute values declared on the idea should be reachable from the graph via the idea page and on-node attribute key summary.
html_export_graph_page Html export should provide an interactive graph page with search, filters, and links back into idea and cluster pages. The graph should support scoped views for workspace, file, cluster, and idea contexts. The workspace graph page must include every idea in the export scope — blocks, oneliners, and ideasets — and must not apply the interactive Ideas Summary GRAPH_MAX_NODES budget. Ideasets are visible by default with a Hide ideasets / Show ideasets toggle, matching the external-file visibility control. Status and tag filters are multi-select and distinguish [graph_status_tag_filters]. Per-idea, per-file, and per-cluster neighbourhood graphs may still use a capped budget for focused pages. [html_export_graph_links] [html_export_graph_layout] [html_export_graph_animation] [html_export_graph_subject] [html_export_graph_labels] [html_export_graph_label_modes] [html_export_graph_label_auto] [html_export_graph_interaction] [html_export_graph_metadata]
html_export_graph_subject When a graph view has a subject or center idea, that node should be visually distinct from peers and externals. Subject styling should use the brand rust accent against cyan peer nodes.
html_export_header_link done Html export should accept an optional header link ( href + label ) rendered in the topbar ahead of section navigation. Hosts such as the marketing site build can set this so readers can return to the parent site from any exported page. When omitted, the topbar shows only the export section nav. Site embed consumption: ["../../site/reqs/core.rq".spec_html_export]. Often paired with [html_export_url_base] when the export is mounted under a parent static site.
html_export_list_views Html export should provide searchable list views for ideas, files, code files, references, clusters, and attributes. List views should preserve the usability of the current ideas summary tables with counts, sorting, filters, and quick navigation. Every interactive table column should be sortable by header click and filterable with a per-column filter, in addition to any page-level search bar. Long lists that sit above other page content follow [html_export_scrollable_lists]. [html_export_attributes_index] [html_export_file_pages] [html_export_code_reference_pages] [html_export_scrollable_lists]
html_export_scrollable_lists In interactive runtime mode, long list and table sections that have additional content below them should render inside a scrollable viewport with a max height so lower sections remain reachable without endless page scrolling. Toolbar titles and filters for those sections should stay outside the scroll viewport. In document and print runtime modes, those same lists should expand to their full natural height so the export remains readable as a continuous document and suitable for printing. Browser print of interactive pages should also expand constrained lists to full height.
graph_label_auto done In Labels auto mode, visibility follows viewport zoom continuously rather than a hard cut. Below a low zoom threshold labels are fully hidden; above a slightly higher threshold they are fully opaque; between those thresholds opacity ramps briefly through a muted / semi-transparent phase ( GRAPH_LABEL_FADE_START → GRAPH_LABEL_FADE_END ). Hovered or dragged nodes remain fully opaque even when ambient auto opacity is low or zero. Zoom and Fit from [view_controls] / [reframe_view] must update this opacity on each paint or zoom event. Applies to Ideas Summary GraphCyController and HTML export canvas graph alike.
graph_label_modes done Every interactive graph should provide a Labels control that cycles auto ( default ), on, and off without changing graph membership. On forces full opacity; off hides all labels; auto follows [graph_label_auto]. Reset / default restore auto. Ideas Summary: control in ["../../../packages/extension/webviews/ideas-summary/components/GraphControls.svelte"], mode persisted via ["../module/ideas_summary/graphical_graph.rq".graph_ui_persistence]. HTML export: control in ["../../../packages/analytical/src/export/html-export-template.ts"] / ["../../../packages/analytical/src/export/html-export-assets.ts"]. Driven by the same viewport zoom as [view_controls].
graph_library Reusable cytoscape-based graph visualization library for force-directed and compound graphs. Provides a mount → sync slice → layout → optional live physics → destroy lifecycle with a simplified API. Implementation lives in ["../../../packages/extension/webviews/shared/graph/graph-cytoscape.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-controller.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-elements.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-interactions.ts"], ["../../../packages/extension/webviews/shared/graph/graph-cy-highlight.ts"], ["../../../packages/extension/webviews/shared/graph/graph-physics.ts"], ["../../../packages/extension/webviews/shared/graph/graph-groups.ts"], and ["../../../packages/extension/webviews/shared/graph/graph-theme.ts"]. Ideas Summary re-exports the shared modules from ["../../../packages/extension/webviews/ideas-summary/lib/"] for backward-compatible import paths. Consumers pass a node / edge slice and sync options; the library owns the cytoscape instance, diffing, layout runs, and optional continuous physics.
graph_status_tag_filters done Status and tag graph filters are searchable checkbox dropdowns ( still a dropdown trigger; multi-select via checkboxes; OR within each field ). They must distinguish attribute absence from an empty declaration and from a literal unspecified value: - Not present — attribute key absent ( no `@status` / no `@tags` ) - Empty — attribute declared with no value ( `@status`, `@tags`, `@status ""`, bare flag ) - unspecified — literal authored value " unspecified " Do not invent unspecified for missing attributes in rollups, clusters, or filter options. Special options render differently from concrete values ( italic muted Not present; info-tint Empty; warning-tint unspecified ). Shared helpers live in ["../../../packages/analytical/src/core/filter-specials.ts"]. Surfaces: Ideas Summary SearchableCheckboxDropdown; HTML export SCD in ["../../../packages/analytical/src/export/html-export-assets.ts"].
extension_startup_reliability done Reqlan startup must make the activity-bar shell and contributed commands available before optional indexing, parser construction, database initialization, or language-client startup can monopolize the extension host. The implementation contract is [first_paint_contract], [deferred_startup_sequence], [lazy_runtime_dependencies], and [development_bundle_freshness]. Operational diagnosis follows [startup_diagnostics]. [activation.activation_sequence] [activitybar.loading_state] [indexer.nonblocking_index] [build.extension_bundle]
invalid_url_activation_failure done The concrete incident failed while requiring `out/extension/main.cjs`, before `activate()` ran: `TypeError: Invalid URL` in `embedPhysicsCoreSource`. Runtime `readFileSync(new URL(..., import.meta.url))` is unsafe when esbuild emits CommonJS for an ES2017 target: `import.meta.url` is unavailable / empty and source-relative assets do not exist beside the bundled entry. The fix generates and imports `PHYSICS_CORE_CLASSIC_SOURCE` at build time instead of resolving the source file at extension runtime. ["../../packages/analytical/src/export/html-export-assets.ts"] ["../../packages/analytical/scripts/generate-physics-core-source.mjs"]

Reference labels

../../../packages/analytical/src/export/html-export-assets.ts, ../../packages/analytical/src/export/html-export-assets.ts