Repository navigation
command_surface_interaction_spec
Date: 2026-02-28
Status: Canonical interaction contract
Priority: Pre-renderer/WGPU required
Related:
../2026-02-28_ux_contract_register.md../shell/2026-04-03_shell_command_bar_execution_plan.md../workbench/workbench_frame_tile_interaction_spec.md../canvas/graph_node_edge_interaction_spec.md../subsystem_ux_semantics/2026-03-04_model_boundary_control_matrix.md../aspect_control/2026-02-24_control_ui_ux_plan.md../research/2026-02-24_interaction_and_semantic_design_schemes.md../../design/KEYBINDINGS.md
Adopted standards (see standards report §§3.5, 3.6):
- WCAG 2.2 Level AA — SC 2.1.1 (keyboard, all command surfaces), SC 2.4.3 (focus order/return after dismiss), SC 1.4.3 (disabled-state explanation legibility)
- OpenTelemetry Semantic Conventions — diagnostics for failed dispatch, missing context, blocked execution
-
GraphId= truth boundary. -
GraphViewId= scoped view state. - graph-scoped Navigator hosts = chrome surfaces that may host command entry points while remaining above workbench arrangement semantics.
-
Navigator= graph-backed hierarchical projection over relation families. Legacy alias: "file tree". - workbench = arrangement boundary.
Command dispatch may target these boundaries, but command surfaces do not redefine their ownership.
Normative command contracts use: intent, trigger, preconditions, semantic result, focus result, visual result, degradation result, owner, verification.
- Tile/frame arrangement is not content hierarchy.
- Navigator is not content truth authority.
- Physics presets are not camera modes.
This spec defines the interaction contract for Graphshell's command surfaces.
Command surfaces may be launched from graph-scoped Navigator chrome, workbench-scoped Navigator context, or direct pointer/keyboard invocation, but those launch locations do not become semantic owners of the graph/workbench targets they address.
It explains:
- what command surfaces are for,
- what each command-entry surface means semantically,
- who owns command meaning and availability,
- what state transitions command invocation implies,
- what visual feedback must accompany command use,
- what fallback behavior must happen when command execution is blocked,
- which command surfaces are core, planned, and exploratory.
This spec covers command invocation surfaces, not graph or workbench semantics themselves.
Graphshell has three first-class command-entry families:
-
Keyboard Commands
- direct keybinding path for known actions
-
Command surfaces — two:
- Command Palette (Modal overlay; flat ranked list; fuzzy-search input is the discovery mechanism; Zed/VSCode-shaped)
- Context Menu (right-click on an interactable target; flat list of available actions for that target)
-
Omnibar-Initiated Commands
- command execution from the search/navigation field
Both command surfaces source actions from the same ActionRegistry; both
dispatch via the same ActionId execution path. They differ only in
trigger and rendering.
Retired (2026-04-29 simplification):
- Search Palette Mode + Context Palette Mode distinction — collapsed into the single Command Palette. Search is the palette's input affordance, not a separate mode. Right-click is the Context Menu, not a contextual mode of the palette.
- Two-tier (Tier 1 categories + Tier 2 options) rendering — replaced by flat ranked lists in both surfaces. Categories appear only as inline badges on rows for breadth visibility, never as a separate selector tier. See §3.3.
- Cross-mode equivalence rule (Tier 1 strip = Tier 1 ring) — moot; there is no Tier 1.
-
Radial Palette Mode — deferred indefinitely. Was originally
gamepad-oriented; if gamepad input lands later as part of the
input-subsystem rework, a radial surface can be reintroduced as a
third command-dispatch route with its own design pass. The geometry
research in
radial_menu_geometry_and_overflow_spec.mdis preserved as a future reference. See §5 Planned Extensions.
- Servo's native webview context menu may still exist as an embedder surface, but it is not a Graphshell command authority.
- The earlier retirement of "Context Menu" as a Graphshell concept (in favor of "Context Palette") is itself reversed by the 2026-04-29 simplification: Context Menu is the canonical name again, since it is no longer a "mode" of the palette but a separate surface with its own trigger and rendering.
To avoid ambiguity in implementation and UI copy:
-
Command Palette = the Modal flat-list surface invoked by
Ctrl+P,F2, or the CommandBar trigger button. Fuzzy-search is its discovery mechanism. - Context Menu = the right-click contextual flat-list surface scoped to the right-click target.
- Radial Menu = deferred (see §5).
- "Context Palette" is retired as a name — it is now just the Context Menu.
- "Search Palette Mode" / "Context Palette Mode" / "Radial Palette Mode" are all retired names; do not reintroduce them in new code or docs.
Interaction Menu should not be used as a canonical name; it blurs
distinctions that this revision tightens.
- Graphshell owns command meaning, targeting, availability, and execution.
-
ActionRegistryis the semantic command authority. - UI surfaces may render and collect input, but they must not define separate command behavior.
Command-surface interactions fall into five semantic categories:
-
Discover
- reveal available actions
-
Filter
- narrow visible actions by context or search
-
Target
- resolve which object, pane, or graph context the action applies to
-
Invoke
- execute the selected action
-
Dismiss
- close the surface without mutating app state
The command system must make these user expectations reliable:
- the same action means the same thing on every command surface,
- contextual filtering changes visibility, not semantics,
- disabled actions are visible and explained rather than silently hidden,
- command failure is explicit rather than silent,
- input mode affects presentation, not command authority,
- command applicability is determined from the full resolved selection set, not by inventing a hidden primary target.
Both command surfaces (Command Palette + Context Menu) render a flat ranked list of available actions. There is no Tier 1 / Tier 2 selector tier; categories appear only as inline badges on rows for breadth visibility.
Common contract:
- Action data sourced from
ActionRegistry. - Disabled actions render with explicit reasons (per §4.1); never hidden silently.
- Verb-target wording per §3.4.
- Selection-set availability gating per §4.1.
- Dispatch via single
ActionIdexecution path. - Pinned actions and recency ordering supported (palette only; context menu is small and contextual, no pinning).
Surface-specific differences:
| Command Palette | Context Menu | |
|---|---|---|
| Trigger |
Ctrl+P / F2 / trigger button / programmatic |
Right-click on interactable target |
| Rendering |
Modal overlay with text_input filter + scrollable flat list |
Anchored ContextMenu flat list |
| Scope | global (default) or scoped via context-fallback origin | scoped to right-click target |
| Filter | fuzzy search; empty-query shows pinned + recent + canonical default | no filter; flat available list for the target |
| Mode-switch | "Search commands…" footer entry in Context Menu opens the Palette pre-scoped to the target | none (Palette doesn't switch back) |
| Resize | Modal max-width + max-height; not user-resizable (Stage F polish question) | Not resizable; sized to content |
| Dismiss | Escape, click outside, action selected | Escape, click outside, action selected |
Right-click on any interactable target (graph node, edge, tile, Pane chrome, Frame border, Navigator row, swatch, base layer) opens the Context Menu scoped to that target. Right-click never opens the Command Palette directly; the Context Menu's "Search commands…" fallback is the keyboard-driven escape into the full action set.
Command labels must follow explicit Verb + Target (+ Destination/Scope when needed) grammar.
Canonical wording rules:
- Use explicit target nouns for destructive verbs:
-
Delete Selected Node(s)(graph content mutation) - avoid targetless
Deletefor command labels.
-
- Reserve
Closefor UI presentation containers (tile/frame/window/dialog), not graph content deletion. - For destination-dependent verbs (
Open,Move), include destination semantics:Open Node in SplitOpen via Frame RouteMove Node to Active Pane
- Disabled action explanations must state unmet precondition and satisfy guidance.
What this domain is for: - Keep command meaning unified across all command-entry surfaces.
Core rule: - Every command surface must route through the same Graphshell command authority.
-
ActionRegistry::list_actions_for_context(...)defines what the user can see. -
ActionRegistry::execute(...)defines what the user actually runs. - The resolved command target is the current selection set when one exists.
- The selection set may be mixed (
Node,Tile,Frame,Edge, or other interactable graph/workbench objects). - A command is available only if it validly applies to every object in the resolved selection set.
- When invoked, the command applies to all selected objects.
- Silent fallback to a hidden primary target is forbidden.
Who owns it: - Graphshell command dispatcher and action registry.
- UI surfaces are render and input adapters only.
State transitions: - Command invocation may mutate graph state, workbench state, selection state, or settings state according to the action's semantic definition.
- Opening a command surface does not mutate semantic state by itself.
Visual feedback: - The active command surface must be visibly distinct.
- Target context and disabled-state explanation must be legible.
Fallback / degraded behavior: - If a command cannot execute, Graphshell must provide a blocked-state reason.
- Silent command no-op behavior is forbidden.
What this domain is for: - Provide the canonical searchable list of actions in a single Modal surface.
Core controls: - Ctrl+P (canonical, Zed/VSCode-shaped) opens the palette.
-
F2(alternate) toggles the same palette. - The CommandBar trigger button opens the palette.
- Arrow keys move focus within the result list.
- Enter dispatches the focused action.
- Escape dismisses and must not trigger unrelated global mode toggles on the same press.
Who owns it: - Graphshell command system owns the action set, availability rules, and ranking.
- The palette UI owns rendering, focus movement within the list, and search text capture.
State transitions: - Opening the palette enters a command-browse state with the input focused.
- Empty query shows pinned + recently-used + canonical-default available actions.
- Non-empty query shows fuzzy-match ranked results.
- Choosing an action dispatches the selected
ActionIdagainst the current selection set. - Dismissing the palette returns focus to the prior region.
Visual feedback: - Render a flat ranked list (no category tier).
- Each row shows: action label (verb-target wording), optional secondary text, optional inline category badge, optional right-aligned keybinding.
- Disabled actions remain visible with reduced opacity and explicit disabled-reason text in the footer when focused.
- Empty result set shows an explicit empty state ("No commands match…").
Fallback / degraded behavior: - If no actions are available in the current scope, show an explicit empty state.
- If a Context Menu's "Search commands…" fallback opens the palette, scope is preset to the right-click target.
What this domain is for: - Provide a right-click-anchored flat list of actions available on the right-click target.
Core controls: - Right-click on any interactable target opens the Context Menu scoped to that target.
- Arrow keys move focus.
- Enter dispatches.
- Escape dismisses.
Who owns it: - Graphshell command system owns target-scoped action availability.
- The Context Menu UI owns rendering and dismissal.
State transitions: - Opening the Context Menu enters a command-browse state focused on the menu.
- Choosing an action dispatches the
ActionIdagainst the right-click target's selection set. - "Search commands…" footer entry opens the Command Palette with
PaletteOrigin::ContextFallback, preserving the right-click target as scope. - Dismissing the menu returns focus to the prior region.
Visual feedback: - Render a flat list of actions; no category tier.
- Each row shows: action label (verb-target wording), optional right-aligned keybinding.
- Disabled actions render with reduced opacity and explicit reason on hover/focus.
- Footer separator + "Search commands…" entry as the keyboard escape into the full action set.
Fallback / degraded behavior: - If no actions are available for the right-click target, show only the "Search commands…" footer.
- If a destructive action is selected, route through
ConfirmDialogper the host spec; do not dispatch silently.
What this domain is for: - Provide the fastest path for known actions.
Core controls: - Keybindings invoke semantic app actions, not widget-local shortcuts with divergent meaning.
- Keyboard commands target the active semantic context.
Who owns it: - Graphshell input and command layers own binding-to-action resolution.
- Widgets may capture text input where appropriate, but must not redefine global command semantics.
State transitions: - Valid keybinding resolution dispatches a semantic action.
- Conflicting text-entry contexts may defer a command when the focused surface owns text input.
Visual feedback: - Global command surfaces should expose shortcut hints.
- Command execution should visibly affect the target surface or emit explicit blocked-state feedback.
Fallback / degraded behavior: - If a command is unavailable in the current context, the user must receive an explicit explanation.
- Hidden suppression is forbidden.
What this domain is for: - Provide URL/address entry and Navigator-projected breadcrumb display in a single chrome surface. Per the 2026-04-29 simplification, the omnibar is not a command-entry surface; commands go through the Command Palette (§4.2). Graph search by title/tag is not an omnibar role; it goes through the Node Finder (a separate Modal surface, Ctrl+P canonical). The omnibar's submission semantics are URL/address-shaped only.
Core controls: - Ctrl+L (canonical) focuses the omnibar in Input mode for URL entry.
- Submission (Enter) opens-or-activates a node by canonical address; if the typed text doesn't resolve as an address, omnibar parsing routes the entry to either the Node Finder (for title/tag-shaped queries) or to a default-search behavior per user preference.
- The omnibar exposes URL completions sourced from history-by-URL and bookmark-URLs providers.
Who owns it: - The omnibar UI is Shell-owned; URL completions are sourced from history and bookmark providers under ControlPanel supervision.
- The Navigator owns the breadcrumb projection (read-only at this seam) per SHELL.md §6.
State transitions: - Display mode shows the breadcrumb (current focused-node address path from Navigator).
- Input mode shows a
text_inputwith URL-shaped completion list. - Submission resolves the entered text via address parsing → opens-or-activates the resulting node, or routes the user to the Node Finder if the entry is non-URL-shaped.
- Dismissing input returns the omnibar to Display mode without mutation.
Canonical parity contract (normative): - The omnibar does not invoke commands. Command invocation is the Command Palette's responsibility (§4.2). If an action exists for "open node by URL," that action is dispatched through the Palette; the omnibar does not have a parallel command-row path.
- Address resolution is deterministic: a URL/address in the typed text always wins over a fuzzy-match interpretation. Ambiguous text routes to the Node Finder, not silently retargeted.
- The omnibar does not have its own
ActionIdsemantic surface; it has one submission verb ("open by address").
Visual feedback: - Display mode shows the breadcrumb token chain (Navigator-projected).
- Input mode shows the text-input cursor + completion list.
- URL completions render with source badges (history / bookmark).
- Failed address resolution (404, invalid URL, unreachable) surfaces via toast plus an Activity Log entry.
Focus ownership and identification (normative): - Omnibar text field must expose explicit focus ownership state even when caret rendering is unavailable (focus ring, field highlight, focus badge, or equivalent deterministic indicator).
- Focus must be applied to the omnibar only through explicit user selection actions (pointer selection,
Ctrl+L/platform equivalent, or explicitOmnibarFocuscommand intent). - On app/frame open, command-surface open, and Context Menu summon paths, focus must not default to omnibar.
- Keyboard command handling must remain owned by the currently focused semantic region unless omnibar focus has been explicitly requested.
Fallback / degraded behavior: - Ambiguous queries route to the Node Finder; the user is not silently retargeted.
- If a typed URL does not resolve, the user remains in Input mode with an explicit error state (recoverable, no mutation).
What this domain is for: - Provide a fuzzy graph-node search surface for "open this node by title / tag / address / content" intents, separate from the omnibar (which is URL-shaped) and the Command Palette (which is action-shaped).
Core controls: - Ctrl+P (canonical, Zed/VSCode-shaped) opens a Modal surface with a text input and a fuzzy-ranked list of graph nodes.
- Enter activates the focused node; arrow keys navigate; Escape dismisses.
- Activation routes the selected node to its destination Pane per a user-configurable rule (active Pane / new Pane / replace focused Pane).
Who owns it: - The Node Finder UI is Shell-owned; ranking is owned by graphshell-runtime's graph index.
- The result list is a derivation over current graph truth; no node-finder state aliases graph state.
State transitions: - Opening enters a graph-search-browse state with the input focused.
- Empty query shows recently-active nodes ranked by recency.
- Non-empty query shows fuzzy-match results across (title, tag, address, content snapshot).
- Activation dispatches a
WorkbenchIntent::OpenNode { node_key, destination }. - Dismissal restores focus to the prior region.
Visual feedback: - Each result row shows: node title (or address if no title), node-type badge (Web / File / Tool / Internal), match-source badge (Title / Tag / URL / Content), optional content-match snippet.
- Empty result set shows explicit empty state.
Fallback / degraded behavior: - If the graph index is unavailable, show explicit "Index unavailable" empty state; do not silently fall back to URL-only matching.
- A "Open as URL…" footer entry opens the omnibar with the typed text pre-filled, when the user wants to interpret their query as a URL after all.
What this domain is for: - Keep command surfaces understandable, inspectable, and usable across input modes.
Accessibility: - Every command surface must be dismissible without pointer input.
- Focus return after dismissal must be deterministic.
- Command surfaces must expose actionable labels and disabled-state reasons.
Diagnostics: - Failed command dispatch, missing context, and blocked execution must be observable.
- Surface divergence is a correctness bug and should be diagnosable.
Boundary rule: - Native embedder menus may exist, but they do not define Graphshell command semantics.
- richer command ranking by recency and context relevance,
- action previews before execution for high-impact commands,
- command aliases and user-defined shortcuts,
- per-domain Command settings pages: pinned-action order, command aliases, keybinding customization — exposed via the Keybindings and General settings categories in
aspect_control/settings_and_control_surfaces_spec.md §4.2, -
Radial Menu reintroduction — deferred from canonical surfaces in the 2026-04-29 simplification; if gamepad input lands as part of the input-subsystem rework, a third command-dispatch surface (radial geometry per
radial_menu_geometry_and_overflow_spec.md) can be reintroduced with its own design pass. Reintroduction would source the sameActionRegistryaction set; only the rendering and gesture model differ.
- voice-triggered command invocation,
- macro and multi-step command sequences,
- mod-provided command bundles with scoped enablement,
- AI-assisted command suggestions that still route through
ActionRegistry.
- Command meaning is unified across keyboard, Command Palette, Context Menu, and omnibar surfaces.
- Command Palette and Context Menu are two separate surfaces sourcing actions from the same
ActionRegistry; both render flat ranked lists. - The Command Palette's fuzzy-search input is the discovery mechanism; there is no separate Search Mode.
- Right-click on any interactable target opens the Context Menu scoped to that target; the "Search commands…" footer entry is the keyboard escape into the full action set.
- Disabled actions remain visible and explain why they are unavailable on both surfaces.
- Dismissal and focus return are deterministic on both surfaces.
- Blocked command execution is explicit and diagnosable.
- Destructive actions route through
ConfirmDialogon both surfaces; dispatch never happens silently. - Omnibar command rows execute the same
ActionIdsemantics and target-scope resolution as keyboard / Command Palette / Context Menu surfaces. - Omnibar and search fields do not capture keyboard commands by default; focus is explicit and visibly identifiable.
- Radial Menu, two-tier rendering, and Search/Context palette mode distinction do not appear in canonical surfaces (they are retired per §2.1 / §3.3). Reintroduction requires an explicit design pass per §5.
- Home
-
design_docs
-
archive_docs
- checkpoint_2026-01-29
- checkpoint_2026-02-01
-
checkpoint_2026-02-09
- [Claude ANALYSIS 2.9.26](design_docs/archive_docs/checkpoint_2026-02-09/Claude ANALYSIS 2.9.26)
- [Gemini Graphshell Analysis 2.9.26](design_docs/archive_docs/checkpoint_2026-02-09/Gemini Graphshell Analysis 2.9.26)
- GRAPHSHELL_CHANGELOG
- checkpoint_2026-02-10
- checkpoint_2026-02-11
- checkpoint_2026-02-12
- checkpoint_2026-02-14_no_legacy_cleanup
-
checkpoint_2026-02-16
- 2026-02-11_camera_zoom_plan
- 2026-02-11_center_camera_plan
- 2026-02-11_graph_persistence_plan
- 2026-02-11_phase1_refinement_plan
- 2026-02-11_search_filtering_plan
- 2026-02-11_thumbnails_favicons_plan
- 2026-02-12_architecture_reconciliation
- 2026-02-12_egui_tiles_implementation_guide
- 2026-02-12_egui_tiles_implementation_plan
- 2026-02-12_persistence_ux_plan
- 2026-02-12_physics_selection_plan
- 2026-02-12_servoshell_inheritance_analysis
- 2026-02-13_committed_vs_planned_architecture
- 2026-02-13_graph_tile_architecture_research
- 2026-02-13_graph_tile_unification_plan
- 2026-02-14_graph_tile_parity_research
- 2026-02-14_servo_architecture_constraints
- 2026-02-15_navigation_control_plane_plan
- NAVIGATION_NEXT_STEPS_OPTIONS
- SERVO_INTEGRATION_BRIEF
- checkpoint_2026-02-17
- checkpoint_2026-02-19
- checkpoint_2026-02-20
- checkpoint_2026-02-21
- checkpoint_2026-02-22
- checkpoint_2026-02-23
-
checkpoint_2026-02-24
- 2026-02-11_performance_optimization_plan
- 2026-02-16_architecture_and_navigation_plan
- 2026-02-18_edge_operations_and_cmd_palette_plan
- 2026-02-19_graph_ux_polish_plan
- 2026-02-19_layout_advanced_plan
- 2026-02-20_cross_platform_sync_and_extension_plan
- 2026-02-24_input_surface_polish_plan
- 2026-02-24_step5_5_workspace_access_control
- 2026-02-24_sync_logic_validation_plan
- 2026-02-24_workspace_routing_polish_plan
- GRAPHSHELL_P2P_COLLABORATION
-
checkpoint_2026-02-25
-
stubs
- 2026-02-21_control_panel_async_scaling
- 2026-02-25_planning_register_backlog_and_copilot_guides
- 2026-02-25_subsystem_accessibility
- 2026-02-25_subsystem_diagnostics
- 2026-02-25_subsystem_history_temporal_integrity
- 2026-02-25_subsystem_persistence_integrity
- 2026-02-25_subsystem_security_access_control
- IMPLEMENTATION_ROADMAP.pointer_stub
- 2026-02-24_immediate_priorities
- 2026-02-24_spatial_accessibility_plan
- 2026-02-25_accessibility_contracts_diagnostics_and_validation_strategy
- 2026-02-25_backlog_ticket_stubs
- 2026-02-25_copilot_implementation_guides
- 2026-02-25_planning_register_lane_sequence_receipt
- IMPLEMENTATION_ROADMAP
-
stubs
- checkpoint_2026-02-26
-
checkpoint_2026-02-27
-
graphshell_docs
- technical_architecture
- testing
- 2026-02-27_planning_register_historical_tail_archive_receipt
-
graphshell_docs
-
checkpoint_2026-03-01
- 2026-02-27_ux_baseline_done_definition
- 2026-02-28_current_milestone_ux_contract_checklist
- 2026-02-28_ux_issue_domain_map
- 2026-03-01_embedder_debt_host_ui_boundary_ownership_receipt
- 2026-03-01_issue_171_compositor_chaos_mode_receipt
- 2026-03-01_issue_175_content_open_routing_receipt
- 2026-03-01_issue_180_bridge_diagnostics_wishlist_receipt
- 2026-03-01_issue_180_bridge_probe_instrumentation_receipt
- 2026-03-01_issue_180_bridge_spike_export_harness_receipt
- 2026-03-01_issue_180_bridge_spike_run_01_receipt
- 2026-03-01_issue_180_bridge_spike_run_02_receipt
- 2026-03-01_issue_180_bridge_spike_run_03_receipt
- 2026-03-01_issue_180_bridge_spike_sample_schema_receipt
- 2026-03-01_issue_180_gl_to_wgpu_bridge_baseline_receipt
- 2026-03-01_issue_180_scissor_box_restoration_fix_receipt
- checkpoint_2026-03-05
- checkpoint_2026-03-07
-
checkpoint_2026-03-10
-
graphshell_docs
- implementation_strategy
- 2026-03-10_planning_register_audit_cleanup_receipt
-
graphshell_docs
-
checkpoint_2026-03-18
-
graphshell_docs
- implementation_strategy
- 2026-03-18_event_log_fact_store_query_architecture
- 2026-03-18_fact_query_type_sketch
- node_navigation_history_spec
-
graphshell_docs
-
checkpoint_2026-03-19
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
- checkpoint_2026-03-21
-
checkpoint_2026-03-22
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
checkpoint_2026-03-27
-
graphshell_docs
- technical_architecture
-
graphshell_docs
-
checkpoint_2026-03-28
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-01
-
graphshell_docs
-
implementation_strategy
-
graph
- 2026-02-20_node_badge_and_tagging_plan
- 2026-02-22_multi_graph_pane_plan
- 2026-02-23_graph_interaction_consistency_plan
- 2026-02-23_udc_semantic_tagging_plan
- 2026-02-25_progressive_lens_and_physics_binding_plan
- 2026-03-05_hybrid_graph_view_overview_atlas_plan
- 2026-03-31_node_badge_and_tagging_follow_on_plan
-
graph
-
implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-02
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-03
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-06
-
graphshell_docs
-
implementation_strategy
- subsystem_ux_semantics
-
implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-07
-
graphshell_docs
-
implementation_strategy
- subsystem_ux_semantics
-
implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-09
-
wr-wgpu-notes
- 2026-03-01_webrender_wgpu_renderer_implementation_plan
- 2026-04-03_p6_progress_report
- 2026-04-03_p8_progress_report
- 2026-04-04_p10_progress_report
- 2026-04-04_p9_progress_report
- 2026-04-05_p11_progress_report
- 2026-04-05_p12_progress_report
- 2026-04-07_p13_progress_report
- 2026-04-07_p14_progress_report
- 2026-04-08_live_full_reftest_confirmation
- draw_context_plan
- PROGRESS
- project_wgpu_backend
- servo_wgpu_integration
- shader_translation_journal
- texture_cache_cleanup_plan
- typed_pipeline_metadata_plan
- wasm-portability-checklist
- wgpu-backend-minimal-plan
- wr_wgpu_debug_plan
- wr_wgpu_diagnostics_archive
-
wr-wgpu-notes
-
checkpoint_2026-04-15
-
graphshell_docs
-
implementation_strategy
- aspect_render
- graph
- system
- workbench
-
implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-17
-
graphshell_docs
- implementation_strategy
-
verse_docs
- technical_architecture
-
graphshell_docs
-
checkpoint_2026-04-19
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-20
- graphshell_docs
-
verso_docs
- implementation_strategy
-
checkpoint_2026-04-21
-
graphshell_docs
-
implementation_strategy
- aspect_control
- system
-
implementation_strategy
-
graphshell_docs
-
checkpoint_2026-04-23
-
graphshell_docs
- implementation_strategy
-
graphshell_docs
-
graphshell_docs
- design
-
implementation_strategy
- aspect_command
- aspect_control
- aspect_distillery
- aspect_input
- aspect_projection
-
aspect_render
- 2026-03-03_servo_wgpu_upgrade_audit_report
- 2026-03-12_compositor_expansion_plan
- 2026-03-23_webrender_wgpu_backend_implementation_plan
- 2026-03-27_egui_retained_state_efficiency_and_physics_worker_evaluation_plan
- 2026-03-27_physics_spike_metrics
- 2026-04-10_wgpu_gui_bridge_interop_architecture_plan
- 2026-04-12_rendering_pipeline_status_quo_plan
- 2026-04-30_renderer_and_host_refactor_plan
- ASPECT_RENDER
- frame_assembly_and_compositor_spec
- gl_to_wgpu_plan
- render_backend_contract_spec
- running_app_state_boundary_spec
- theme_and_tokens_spec
-
graph
- 2026-02-24_physics_engine_extensibility_plan
- 2026-02-25_doi_fisheye_plan
- 2026-02-27_roadmap_lane_19_readiness_plan
- 2026-02-27_viewdimension_acceptance_contract
- 2026-03-11_graph_enrichment_plan
- 2026-03-14_canvas_behavior_contract
- 2026-03-14_edge_operability_matrix
- 2026-03-14_edge_visual_encoding_spec
- 2026-03-14_graph_relation_families
- 2026-03-21_edge_family_and_provenance_expansion_plan
- 2026-03-21_edge_payload_type_sketch
- 2026-04-01_swatch_spec_extraction_plan
- 2026-04-02_parry2d_scene_enrichment_plan
- 2026-04-02_scene_mode_ux_plan
- 2026-04-03_damping_profile_follow_on_plan
- 2026-04-03_edge_routing_follow_on_plan
- 2026-04-03_layout_backend_state_ownership_plan
- 2026-04-03_layout_transition_and_history_plan
- 2026-04-03_layout_variant_follow_on_plan
- 2026-04-03_node_glyph_spec
- 2026-04-03_physics_preferences_surface_plan
- 2026-04-03_physics_region_plan
- 2026-04-03_semantic_clustering_follow_on_plan
- 2026-04-03_twod_twopointfive_isometric_plan
- 2026-04-03_wasm_layout_runtime_plan
- 2026-04-10_vello_scene_canvas_rapier_scene_mode_architecture_plan
- 2026-04-11_graph_canvas_crate_plan
- 2026-04-13_graph_canvas_phase0_plan
- 2026-04-19_layouts_as_pluggable_mods_plan
- 2026-04-19_step5_spatial_pattern_layouts_plan
- agent_derived_edges_spec
- facet_pane_routing_spec
- faceted_filter_surface_spec
- force_layout_and_barnes_hut_spec
- frame_graph_representation_spec
- GRAPH
- graph_backlog_pack
- graph_node_edge_interaction_spec
- layout_algorithm_portfolio_spec
- layout_behaviors_and_physics_spec
- multi_view_pane_spec
- node_badge_and_tagging_spec
- petgraph_algorithm_utilization_spec
- semantic_tagging_and_knowledge_spec
- view_dimension_spec
- navigator
-
shell
- 2026-04-03_shell_command_bar_execution_plan
- 2026-04-14_iced_host_migration_execution_plan
- 2026-04-17_chrome_port_cleanup_plan
- 2026-04-19_graph_canvas_input_accessibility_followon_plan
- 2026-04-20_configurability_sweep_phase2_plan
- 2026-04-24_blitz_shaped_chrome_scoping
- 2026-04-24_graphshell_runtime_crate_plan
- 2026-04-24_iced_content_surface_scoping
- 2026-04-25_servo_into_verso_plan
- 2026-04-27_gpui_host_integration_plan
- 2026-04-28_egui_tiles_retirement_plan
- 2026-04-28_iced_jump_ship_plan
- 2026-04-29_gpui_research_lanes
- iced_agent_pane_spec
- iced_browser_amenities_spec
- iced_command_palette_spec
- iced_composition_skeleton_spec
- iced_node_finder_spec
- iced_omnibar_spec
- search_providers_and_fuzzy_spec
- SHELL
- shell_backlog_pack
- shell_composition_model_spec
- shell_overview_surface_spec
- social
- subsystem_accessibility
- subsystem_diagnostics
- subsystem_focus
-
subsystem_history
- 2026-03-08_unified_history_architecture_plan
- 2026-03-18_mixed_timeline_contract
- 2026-04-02_bookmarks_import_plan
- 2026-04-02_browser_history_import_plan
- 2026-04-09_owner_scoped_temporal_branching_follow_on
- 2026-04-11_browser_import_normalized_carrier_sketch
- 2026-04-17_graph_memory_architecture_note
- 2026-04-21_graph_runtime_projection_layer_plan
- edge_traversal_spec
- history_timeline_and_temporal_navigation_spec
- node_audit_log_spec
- SUBSYSTEM_HISTORY
- subsystem_mods
- subsystem_security
- subsystem_storage
-
subsystem_ux_semantics
- 2026-02-28_ux_contract_register
- 2026-03-01_automated_ux_testing_research
- 2026-03-01_ux_execution_control_plane
- 2026-03-04_model_boundary_control_matrix
- 2026-03-04_per_control_audit_grid
- 2026-03-08_unified_ux_semantics_architecture_plan
- 2026-03-13_chrome_scope_split_plan
- 2026-04-05_command_surface_observability_and_at_plan
- SUBSYSTEM_UX_SEMANTICS
- ux_event_dispatch_spec
- ux_scenario_and_harness_spec
- ux_tree_and_probe_spec
-
system
-
register
- 2026-03-08_registry_development_plan
- 2026-03-08_sector_b_input_dispatch_plan
- action_registry_contract_spec
- action_registry_spec
- agent_registry_spec
- canvas_registry_spec
- diagnostics_registry_spec
- identity_registry_spec
- index_registry_spec
- input_registry_spec
- knowledge_registry_spec
- layout_domain_registry_spec
- layout_registry_spec
- lens_compositor_spec
- mod_registry_spec
- physics_profile_registry_spec
- presentation_domain_registry_spec
- protocol_registry_spec
- SYSTEM_REGISTER
- theme_registry_spec
- viewer_registry_spec
- viewer_surface_registry_spec
- workbench_surface_registry_spec
- workflow_registry_spec
- 2026-02-21_lifecycle_intent_model
- 2026-03-03_graphshell_address_scheme_implementation_plan
- 2026-03-05_cp4_p2p_sync_plan
- 2026-03-05_network_architecture
- 2026-03-06_foundational_reset_implementation_plan
- 2026-03-06_reducer_only_mutation_enforcement_plan
- 2026-03-12_architectural_inconsistency_register
- 2026-03-12_workspace_decomposition_and_renaming_plan
- 2026-03-17_multi_identity_binding_rules
- 2026-03-17_runtime_task_budget
- 2026-04-23_execution_isolation_and_worker_runtime_plan
- control_panel_spec
- coop_session_spec
- graphshell_net_spec
- register_layer_spec
- registry_runtime_spec
- signal_bus_spec
- system_architecture_spec
- VERSIONING_POLICY
-
register
-
viewer
- 2026-02-24_universal_content_model_plan
- 2026-02-25_interactive_html_export_plan
- 2026-02-26_composited_viewer_pass_contract
- 2026-02-26_visual_tombstones_plan
- 2026-03-02_filesystem_ingest_graph_mapping_plan
- 2026-03-02_unified_source_directory_mapping_plan
- 2026-03-05_node_viewport_preview_minimal_slice_plan
- 2026-03-08_servo_text_editor_architecture_plan
- 2026-03-28_wry_composited_texture_feasibility_spike
- 2026-04-03_clipping_viewer_follow_on_plan
- 2026-04-16_smolweb_compliance_and_middlenet_html_contract
- clipping_and_dom_extraction_spec
- node_lifecycle_and_runtime_reconcile_spec
- node_viewport_preview_spec
- universal_content_model_spec
- VIEWER
- viewer_presentation_and_fallback_spec
- visual_tombstones_spec
- webview_backpressure_spec
- webview_lifecycle_and_crash_recovery_spec
- wry_integration_spec
-
workbench
- 2026-03-03_pane_opening_mode_and_simplification_suppressed_plan
- 2026-03-26_frame_layout_hint_spec
- 2026-04-10_graph_tree_implementation_plan
- 2026-04-11_egui_tiles_retirement_strategy
- frame_persistence_format_spec
- graph_first_frame_semantics_spec
- graphlet_projection_binding_spec
- navigator_backlog_pack
- navigator_graph_isomorphism_spec
- pane_chrome_and_promotion_spec
- pane_presentation_and_locking_spec
- tile_view_ops_spec
- WORKBENCH
- workbench_backlog_pack
- workbench_frame_tile_interaction_spec
- workbench_layout_policy_spec
- workbench_profile_and_workflow_composition_spec
- 2026-02-28_ux_contract_register
- 2026-03-01_complete_feature_inventory
- 2026-03-01_ux_migration_design_spec
- 2026-03-01_ux_migration_feature_spec_coverage_matrix
- 2026-03-01_ux_migration_lifecycle_audit_register
- 2026-03-01_webrender_readiness_gate_feature_guardrails
- 2026-03-02_scaffold_registry
- 2026-03-03_pre_wgpu_feature_validation_gate_checklist
- 2026-03-03_pre_wgpu_plot
- 2026-03-03_spec_conflict_resolution_register
- 2026-03-11_boa_scripting_engine_plan
- 2026-04-20_middlenet_direct_lane_v1_5_plan
- 2026-05-01_workspace_architecture_proposal
- core-interaction-model-plan
- domain_interaction_acceptance_matrix
- plan-featureFirstNowRefactorFriendlyLater.prompt
- PLANNING_REGISTER
-
research
- 2026-02-18_graph_ux_research_report
- 2026-02-20_edge_traversal_model_research
- 2026-02-24_diagnostics_research
- 2026-02-24_interaction_and_semantic_design_schemes
- 2026-02-24_spatial_accessibility_research
- 2026-02-24_visual_tombstones_research
- 2026-02-26_architecture_terminology_alignment_gap_analysis
- 2026-02-26_original_vision_to_current_architecture_mapping
- 2026-02-27_all_docs_context_bootstrap
- 2026-02-27_egui_stack_assessment
- 2026-02-27_egui_wgpu_custom_canvas_migration_requirements
- 2026-02-27_freenet_takeaways_for_graphshell
- 2026-02-27_viewer_state_matrix
- 2026-02-28_graphshell_ux_research_agenda
- 2026-02-28_knowledge_capture_research_agenda
- 2026-02-28_navigation_semantics_mental_models_research
- 2026-02-28_performance_visual_scaling_research_agenda
- 2026-02-28_viewer_backend_research_agenda
- 2026-03-01_servo_script_engine_alternatives
- 2026-03-01_webrender_wgpu_renderer_research
- 2026-03-02_ux_integration_research
- 2026-03-04_standards_alignment_report
- 2026-03-24_tool_comparison_product_lessons
- 2026-03-27_ambient_graph_visual_effects
- 2026-03-29_graph_interaction_brainstorm
- 2026-03-30_middlenet_vision_synthesis
- 2026-04-02_intelligence_capability_tiers_and_blockers
- 2026-04-02_intelligence_taxonomy
- 2026-04-02_scene_mode_ux_sketch
- 2026-04-03_servo_slint_wgpu_hal_interop_research
- 2026-04-09_smolweb_browser_capability_gaps
- 2026-04-09_smolweb_discovery_and_aggregation_signal_model
- 2026-04-09_smolweb_graph_enrichment_and_accessibility_note
- 2026-04-10_servo_wpt_mountain_and_wr_wgpu_leverage
- 2026-04-10_ui_framework_alternatives_and_graph_tree_discovery
- 2026-04-11_linked_data_over_middlenet_relevance_note
- 2026-04-11_tabfs_tablab_graphshell_relevance_note
- 2026-04-14_wasm_portable_renderer_feasibility
- 2026-04-16_rendering_architecture_vision
- 2026-04-24_iced_renderer_boot_and_isolation_model
- scene_customization
- STANDALONE_EXTRACTION
-
technical_architecture
- 2026-02-18_universal_node_content_model
- 2026-02-27_presentation_provider_and_ai_orchestration
- 2026-03-01_dependency_inventory
- 2026-03-08_graphshell_core_extraction_plan
- 2026-03-12_specification_coverage_register
- 2026-03-29_middlenet_engine_spec
- 2026-03-29_portable_web_core_host_envelopes
- 2026-03-29_workspace_restructuring_plan
- 2026-03-30_protocol_modularity_and_host_capability_model
- 2026-04-09_browser_envelope_coop_and_degradation_policy
- 2026-04-09_graph_object_classification_model
- 2026-04-09_graphshell_verse_uri_scheme
- 2026-04-09_identity_convergence_and_person_node_model
- 2026-04-11_core_intent_inventory
- 2026-04-16_middlenet_lane_architecture_spec
- 2026-04-20_graphshell_gpu_spec
- 2026-04-22_browser_subsystem_taxonomy_and_mapping
- 2026-04-22_portable_shell_state_in_graphshell_core
- ARCHITECTURAL_OVERVIEW
- BUILD
- codebase_guide
- domain_interaction_scenarios
- domain_projection_matrix
- graph_canvas_spec
- graph_tree_spec
- graphlet_model
- GRAPHSHELL_AS_BROWSER
- node_object_query_model
- QUICKSTART
- TERM_ARCHITECTURE_DESC
- unified_view_model
- testing
- matrix_docs
-
nostr_docs
- implementation_strategy
- technical_architecture
-
verse_docs
-
implementation_strategy
- 2026-02-26_intelligence_memory_architecture_stm_ltm_engrams_plan
- 2026-03-09_agent_wal_and_distillery_architecture_plan
- 2026-03-28_decentralized_storage_bank_spec
- 2026-04-06_sync_badge_verse_controls_plan
- community_governance_spec
- engram_spec
- flora_submission_checkpoint_spec
- lineage_dag_spec
- proof_of_access_ledger_spec
- self_hosted_model_spec
- self_hosted_verse_node_spec
- verseblob_content_addressing_spec
-
research
- 2026-02-22_aspirational_protocols_and_tools
- 2026-02-23_modern_yacy_gap_analysis
- 2026-02-23_storage_economy_and_indices
- 2026-02-24_local_intelligence_research
- 2026-02-24_wasm_mod_abi_research
- 2026-02-27_freenet_takeaways_for_verse
- 2026-02-28_verse_concrete_research_agenda
- 2026-03-28_libp2p_nostr_synergy_for_verse
- 2026-04-13_storage_system_comparison_for_verse
- SEARCH_FINDINGS_SUMMARY
- VERSE
- technical_architecture
-
implementation_strategy
-
verso_docs
-
implementation_strategy
- 2026-02-22_verse_implementation_strategy
- 2026-02-23_verse_tier1_sync_plan
- 2026-02-25_verse_presence_plan
- 2026-03-08_simple_document_engine_target_spec
- 2026-03-27_session_capsule_ledger_plan
- 2026-03-28_cable_coop_minichat_spec
- 2026-03-28_gemini_capsule_server_plan
- coop_session_spec
- PHASE5_STEP5.1_COMPLETE
- PHASE5_STEP5.2_COMPLETE
- PHASE5_STEP5.3_COMPLETE
- research
- technical_architecture
-
implementation_strategy
- 2026-03-14_documentation_compression_plan
- 2026-05-03_lexicon_brief
- AI_USAGE
- DOC_POLICY
- DOC_README
- OPERATOR_GUIDE
- PROJECT_DESCRIPTION
- TERMINOLOGY
-
archive_docs