-
Notifications
You must be signed in to change notification settings - Fork 0
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 Palette (canonical shell)
- one command surface with multiple presentation modes:
- Search Palette Mode (search-first list with scope dropdown)
- Context Palette Mode (right-click contextual, list-first)
- Radial Palette Mode (right-click contextual, radial-first)
- one command surface with multiple presentation modes:
-
Omnibar-Initiated Commands
- command execution from the search/navigation field
Context Palette Mode and Radial Palette Mode are not separate semantic systems; they are mode presentations over the same palette authority.
- The term
Context Menuis retired as a first-class Graphshell concept. - This does not retire the anchored contextual list surface itself. The
small right-click contextual surface remains first-class; only the ambiguous
browser-style label
Context Menuis retired in favor ofContext Palette. - Servo's native webview context menu may still exist as an embedder surface, but it is not a Graphshell command authority.
To avoid ambiguity in implementation and UI copy:
-
Command Palette = the search-first, global list surface (for example
F2). - Context Palette = the list-based contextual mode of that same command authority.
- Radial Menu = the radial contextual mode over the same command authority.
- Context Menu = only the legacy/browser-native menu term, not a canonical Graphshell command surface.
Interaction Menu should not be used as the primary canonical name for the list-based command
surface because it blurs the distinction between the search-first command palette and the
contextual list/radial presentations.
- 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.
All contextual palette modes (Context Palette + Radial Palette) use the same two-tier structure:
-
Tier 1 — Category selector
- category-level action grouping by UX-relevant context
- user-editable ordering
- pinned categories supported
-
Tier 2 — Command options for selected category
- actions in the selected category
- user-editable ordering
Cross-mode equivalence rule:
- Context Palette Tier 1 horizontal category strip is semantically equivalent to Radial Palette Tier 1 ring.
- Context Palette Tier 2 vertical command list is semantically equivalent to Radial Palette Tier 2 option ring.
- Changing category pin/order in one mode updates the same underlying palette profile used by the other mode.
- Category ordering in all palette modes is context-aware: summon target context determines the first category (for example node summon => Node first), then recent-category recency may promote subsequent categories.
Invocation and dismissal contract:
- Right-click on a graph node summons contextual shell (Context Palette Mode / Radial Palette Mode).
- Right-click on other interactable graph/workbench surfaces summons the same contextual shell scoped to that surface.
- The shell may open directly in Search Palette Mode, Context Palette Mode, or Radial Palette Mode per user preference/profile.
- When Search Palette Mode is opened from right-click contextual invocation, it is an explicit search-first fallback or user-preference choice and must show a search bar with a scope dropdown (for example: current target, active pane, active graph, or workbench).
- Clicking outside current palette context dismisses the shell without command mutation.
- Palette surfaces are resizable in situ.
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.
Core controls: - Ctrl+K or equivalent opens Search Palette Mode.
-
F2(default shortcut) toggles the same Search Palette Mode shell. - Contextual invocation opens the same palette component in Context Palette Mode.
- Arrow keys move focus.
- Enter confirms.
- Escape dismisses and must not trigger unrelated global mode toggles on the same press.
Who owns it: - Graphshell command system owns the action set and ranking rules.
- The palette UI owns rendering, focus movement within the list, and search text capture.
State transitions: - Opening the palette enters a command-browse state.
- Choosing an action dispatches the selected
ActionIdagainst the current context. - Dismissing the palette returns focus to the prior region.
Visual feedback: - Group actions by ActionCategory.
- Disabled actions remain visible and explain why they are unavailable.
- Search Palette Mode shows search input plus scope dropdown; Context Palette Mode shows target-scoped results.
- Search Palette Mode and Context Palette Mode must share the same context-aware category ordering policy.
- Context Palette Mode Tier 1 is a horizontally scrollable category strip.
- Tier 1 categories can be pinned and reordered by user customization.
- Context Palette Mode Tier 2 is a vertically scrollable command list for the selected Tier 1 category.
Fallback / degraded behavior: - If no actions are available, show an explicit empty state.
- If contextual resolution fails, Graphshell may fall back to Search Palette Mode, but that fallback must be explicit.
What this domain is for: - Provide the radial presentation mode of the canonical command palette for low-travel contextual selection.
Core controls: - Radial Palette Mode is summonable from right-click contextual invocation.
- It supports gesture and non-gesture operation:
- non-gesture: click/hover/select,
- gesture: directional drag/flick.
- Tier 1 (category ring) and Tier 2 (command ring for selected category) follow §3.3.
- D-pad or stick targets a sector.
- Confirm executes.
- Cancel or click-away dismisses.
Who owns it: - Graphshell command system owns category/command assignment, ordering, pinning, and paging.
- The radial UI owns ring rendering, radial label behavior, hover growth, and directional focus presentation.
State transitions: - Opening Radial Palette Mode draws a hub-circle outline at pointer origin.
- Tier 1 category buttons appear on the periphery rail.
- Selecting a Tier 1 category activates Tier 2 option ring for that category.
- Confirming a Tier 2 option dispatches action and dismisses the palette shell.
Visual feedback: - Active sector highlight must be obvious.
- Tier 1/Tier 2 circular buttons sit on periphery rails and are user-repositionable along each rail.
- Default button size is compact; hovered buttons expand up to half the hub-circle radius for clickability.
- Non-hovered buttons return to compact size.
- Label behavior:
- each label is a bounded text field radiating away from center and aligned to its button,
- labels are hidden while not hovered,
- on hover, labels appear and reveal overflow via gentle radial-direction scrolling,
- on Tier 1 selection, Tier 1 radial labels collapse and selected category title is shown in the hub.
- Tier 2 option labels follow the same bounded radial text-field rule.
- Empty sector positions should not render placeholder arcs.
Fallback / degraded behavior: - If more than 8 actions are available, overflow must page predictably.
- If no valid actions exist, Radial Palette Mode must not open silently into an empty shell.
- If radial layout cannot satisfy non-overlap constraints at current diameters, degrade to Context Palette Mode with explicit notice.
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: - Allow command execution from search/navigation and target-scoped entry points.
Core controls: - The omnibar may invoke commands as well as navigation and search.
- Contextual invocation from a node, pane, edge, or canvas must use the same action system as Search Palette Mode.
Who owns it: - Graphshell search and command authorities jointly own query parsing and action dispatch.
- The omnibar UI owns text capture and result presentation.
State transitions: - Query mode determines whether the user is navigating, searching, or invoking a command.
- Executing an omnibar command dispatches the same
ActionIdthat other command surfaces would invoke.
Canonical parity contract (normative): - Omnibar command rows must resolve to the same ActionId semantic meaning used by keyboard, Search Palette Mode, Context Palette Mode, and Radial Palette Mode.
- Target scope resolution for omnibar-invoked
ActionIds must use the sameActionContextauthority path as other command surfaces. - Disabled command rows in omnibar must remain visible with the same precondition explanation text used by other command surfaces; silent suppression is forbidden.
- If omnibar cannot resolve command target scope deterministically, it must degrade to explicit blocked-state feedback (or clarification UI), not implicit retargeting.
Visual feedback: - Result rows must clearly distinguish navigation targets from commands.
- Contextual invocations must clearly indicate the current target scope.
Focus ownership and identification (normative): - Omnibar/search text fields must expose explicit focus ownership state even when caret rendering is unavailable (for example: focus ring, field highlight, focus badge, or equivalent deterministic indicator).
- Focus must be applied to omnibar/search fields only through explicit user selection actions (pointer selection,
Ctrl+L/platform equivalent, or explicit command 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 must resolve predictably or ask for clarification through UI, not silent guesswork.
- If no command matches, the user must remain in a recoverable browse state.
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,
- configurable radial pages and sector presets,
- action previews before execution for high-impact commands,
- command aliases and user-defined shortcuts,
- per-domain Command settings pages: palette mode default (search/context/radial), radial layout presets, command aliases, pinned category order — exposed via the Keybindings and General settings categories in
aspect_control/settings_and_control_surfaces_spec.md §4.2.
- 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 modes, and omnibar surfaces.
- Context Palette and Radial Palette are mode presentations over one canonical command palette authority.
- Tier 1 category semantics and Tier 2 option semantics are equivalent across Context Palette and Radial Palette modes.
- The radial palette is directional, readable, and context-driven rather than hardcoded.
- Contextual palette shell is resizable in situ and dismisses on click-away context change.
- Disabled actions remain visible and explain why they are unavailable.
- Dismissal and focus return are deterministic.
- Blocked command execution is explicit and diagnosable.
- Omnibar command rows execute the same
ActionIdsemantics and target-scope resolution as keyboard/palette/radial surfaces. - Omnibar and search fields do not capture keyboard commands by default; focus is explicit and visibly identifiable.
- 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
- .claude
- readmes
- 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
-
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-08_render_mod_decomposition_plan
- 2026-03-12_compositor_expansion_plan
- 2026-03-27_egui_retained_state_efficiency_and_physics_worker_evaluation_plan
- 2026-03-27_physics_spike_metrics
- 2026-04-12_rendering_pipeline_status_quo_plan
- ASPECT_RENDER
- frame_assembly_and_compositor_spec
- gl_to_wgpu_plan
- render_backend_contract_spec
- running_app_state_boundary_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-05_hybrid_graph_view_overview_atlas_plan
- 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
- 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
- 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
- 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
- 2026-03-08_sector_c_identity_verse_plan
- 2026-03-08_sector_e_workbench_surface_plan
- 2026-03-08_sector_g_mod_agent_plan
- 2026-03-08_sector_h_signal_infrastructure_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-08_graph_app_decomposition_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
- control_panel_spec
- coop_session_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
- 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
- 2026-04-11_graph_tree_egui_tiles_decoupling_follow_on_plan
- 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
- 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
- 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
- ARCHITECTURAL_OVERVIEW
- BUILD
- codebase_guide
- domain_interaction_scenarios
- 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
- AI_USAGE
- DOC_POLICY
- DOC_README
- OPERATOR_GUIDE
- PROJECT_DESCRIPTION
- TERMINOLOGY
-
archive_docs