Skip to content

41-editors: node editor breadcrumb, Profiler sidebars + splitter, phone sidebars + Explorer long press (G15, G17, G18) - #356

Open
AlexZ005 wants to merge 5 commits into
feat/41from
feat/41-editors
Open

AlexZ005 wants to merge 5 commits into
feat/41from
feat/41-editors

Conversation

@AlexZ005

Copy link
Copy Markdown
Collaborator

Roadmap 41 (1.32 preview review), lane 41-editors: G15, G17, G18. (G22 moved to 41-windows; the "+ Add node" button built early was reverted in 43fb21d.)

What

  • G15 node editor breadcrumb — new kit primitive ui/Breadcrumbs.svelte: one line in the layout flow above the graph (never overlaps it), ellipsis, full name on hover and long press, each crumb opens its siblings (Scene/object: the scene's flows; group: the groups beside it). Phone minimap off by default.
  • G17 Profiler — body on WindowShell: hideable recordings sidebar; right sidebar Details (recording / frame / range costs, picked object, module costs; profilerModel.selectionDetails) + Settings (timeline graphs, Quest budget marks, follow live, select picked in scene, FPS overlay); a remembered splitter between the graph and the list.
  • G18 phone — ContextMenu backdrop no longer closes on Android's long-press contextmenu (Explorer menu stays open); docked windows (Explorer, Node editor, UV, HUD, Profiler, Image editor, Code workspace) start with sidebars hidden on a handheld, remembered per window (ui/handheldPanels.js).

Proof

  • New suites: node-breadcrumb 35/35, phone-sidebars 41/41, profiler-sidebars 30/30, unit profilerDetails 5/5 — each red on feat/40-int (22 / 22 / 12).
  • Held: node-ux-groups, flow-object-graphs, flow-unknown-node, flow-palette-touch, explorer-phone, image-editor, menu-mobile-scroll, profiler-themes, mobile-editors green; profiler-ui 44/44 with one timing-dependent red on re-runs (see STATUS-41-editors).
  • svelte-check 300 / 40 (baseline), check:tokens clean, check:storage clean.
  • Evidence + docs fragment: ~/.code/lanes-30/after-41/41-editors/.

Touch points

ContextMenu.svelte (one backdrop line), shared/WindowShell.svelte, Flow.svelte (one line), tests/e2e/image-editor.test.cjs §11.

🤖 Generated with Claude Code

AlexZ005 and others added 5 commits October 11, 2026 02:50
…a visible "+ Add node" (41 G15, G22)

- ui/Breadcrumbs (new kit primitive): one line in the layout flow, crumbs ellipsize
  (ancestors first), full name on hover (title) and on a long press (a phone has no hover),
  a tap opens the crumb's siblings (ContextMenu, current one checked)
- the node editor's floating "Scene > X — object flow" chips are gone: the bar sits above
  the graph and can never cover it; Scene / object crumbs list the scene's flows, group
  crumbs list the groups beside them; leave-group, delete-flow and the unknown-modules
  badge ride the bar's right end
- "+ Add node" in the bar opens the add list and centres the node on the view (search on
  a keyboard device, the grouped list on touch); Shift+A / Space keep "at the pointer"
- the minimap starts OFF on a phone (it was a black slab over the canvas), remembered per
  device; ui/handheldPanels.js holds that per-device rule (also used by G18)
- suites: node-breadcrumb (new, desktop + phone folded/unfolded, dark + light, CDP touch);
  node-ux-groups / flow-object-graphs read the new bar

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…+", moved to 41-windows); crumb name bubble above the dock

- the orchestrator clarified G22: the user meant the docked strip's "+" (it lists the Node editor on
  a phone, not on desktop), which 41-windows owns. The bar's "+ Add node" button and its opener
  (846a3c0) are removed; Shift+A / Space are untouched (they predate this lane)
- ui/Breadcrumbs: the long-press name bubble is portaled to <body> — drawn inside the dock it sat
  under the selection toolbar (a dock is its own stacking context)
- node-breadcrumb: the Add-node / Shift+A sections go; a check that nothing covers the bubble

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…start with their sidebars hidden (41 G18)

- ContextMenu: the backdrop's contextmenu closes only when the press started on the backdrop (the
  rule its click already kept). A long press opens the menu while the finger is down, so the
  backdrop mounts under it; Android's own long-press contextmenu then landed on it and shut the
  Explorer's menu the moment it showed. A right-click outside still closes (its pointerdown lands
  there first)
- WindowShell (Explorer, UV, HUD, Image editor, Profiler), the node editor's palette + properties and
  the Code workspace's two sidebars read/write their open state through ui/handheldPanels: on a
  handheld (coarse, no hover, short screen side <= 900 - the N6 folded AND unfolded) a sidebar starts
  HIDDEN and the user's choice is remembered per window under its own key; desktop byte-identical.
  A panel a pick opened for a moment (showSecondary) is not remembered open on a phone
- WindowShell: the edge / tab buttons rest on --surface-2 (--text-2 on --surface-active was under
  4.5:1 in the green and 8-bit themes - profiler-themes caught it once the Profiler moved onto it)
- suites: phone-sidebars (new: real CDP touch hold/lift + Android's contextmenu at the finger, every
  docked window folded + unfolded, remembered across a reload, desktop unchanged); image-editor §11
  opens the Edit panel with its tab first (it starts hidden on a phone now)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ght sidebar, a graph/list splitter (41 G17)

- the body moves onto WindowShell: the recordings column hides/shows/resizes like every docked
  window's (and starts hidden on a phone, G18)
- right sidebar, two tabs (profiler/ProfilerSidePanes):
  Details  - the whole recording, ONE frame (a click on the graph) or a range: frame time
             p50/p95/max, FPS, draw calls + triangles against the Quest budget, GPU ms, quality,
             stalls, the heaviest CPU phases; from detailed captures the materials drawn, each
             module/game's cost and the PICKED row's object (calls, triangles, meshes, materials,
             CPU). Pure maths in profilerModel.selectionDetails (unit test profilerDetails)
  Settings - timeline graphs (one always stays), Quest budget marks, follow a live stream, select
             picked objects in the scene, the FPS/draw-call overlay (perfStatsShown); remembered
             (perf/profilerPrefs.js)
- a splitter between the graph and the list: drag, arrow keys, double-click resets, remembered per
  orientation; side by side now needs >= 1100 px of main area (stacked with both sidebars on 1440)
- the timeline takes `lanes` / `budget` and says so on the element (data-lanes / data-budget)
- suite profiler-sidebars (new: desktop dark + light, very wide, phone with CDP touch)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… so Android's contextmenu lands on the backdrop (41 G18)

- a tall dock puts the pressed card above where the sheet opens (the common phone case) and a
  premise asserts the event's target is the backdrop; the base build now reads 0 menus after the
  lift (red), this branch 1 (green) - before, the event landed on the sheet and the check could
  not fail

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant