Skip to content

VR sleeve palette (K1+K2) as the vrsleeve core module - #75

Merged
AlexZ005 merged 2 commits into
release/nextfrom
feature/vr-sleeve-palette
Jul 31, 2026
Merged

VR sleeve palette (K1+K2) as the vrsleeve core module#75
AlexZ005 merged 2 commits into
release/nextfrom
feature/vr-sleeve-palette

Conversation

@AlexZ005

Copy link
Copy Markdown
Collaborator

Feature lane merged with release/next (icons + Part A + colliders/editmesh) before landing; conflict was the App.svelte debug-hook union. Verification on the merged tree: build green, svelte-check 438/62, vr-sleeve + vr-radial-menu + vr-palette suites pass against three 0.185.

🤖 Generated with Claude Code

AlexZ005 and others added 2 commits July 31, 2026 20:56
- new src/lib/vrSleeve.js: flat strip of 6 ghost mini-primitives riding the
  sleeve-hand forearm (left; mirrors right when the menu owns the left hand),
  slots wrist->elbow at 0.055m pitch, scene-graph only (never objectsGroup).
  Trigger on a ghost detaches a held preview that rigid-follows the grabbing
  controller (stick-Y scales 0.2-5, wrist rotates 1:1); release creates the
  primitive at the preview pose with grip-drop snap rules (grid rounds x/z,
  surface rests it) as ONE undo batch. K2: grip-drop an object ONTO the strip
  to capture a prefab snapshot into a custom slot (LOCAL idb, 8 cap, 5 MB),
  ghost thumbnail + clear chip on a second row, slot spawn = replicated
  instantiatePrefab at the release pose. Gated by vrSleeveEnabled (default
  OFF) via Settings > VR + a VR Settings panel row (settings:sleeve)
- src/modules/vrsleeve/: thin core-module shell (register wires the hooks;
  disabling the module removes the feature entirely)
- vrControls.js: generic module-VR hook registries (nav suppressor, panel
  group provider for the beam/reticle family, trigger start/end/swallow
  hooks, grip-drop interceptor, per-frame hook) so feature modules plug into
  the interaction loop without import cycles; onSqueezeEnd release can be
  consumed by a hook (object pose restored, physics hold still released)
- Scene.svelte: onXRSelect swallow guard + selectstart/selectend module-hook
  dispatch (a sleeve pick/place never falls through to raycastSelect)
- e2e: vr-sleeve.test.cjs (29 checks, headless with synthetic poses): strip
  structure, default-off gating, ghost->create round trip w/ one-undo +
  broadcasts + grid/surface snap, suppression + swallow predicates, K2
  capture/restore/persist-across-reload/spawn/clear/cap
- on-device feel (forearm placement/offsets, grab ergonomics) = manual check
- verified: build green, svelte-check 437/62 baseline held, suites vr-grab
  vr-window-grab vr-vertex-hold vr-box-select vr-teleport-toggle
  vr-snap-menu all pass

Co-Authored-By: Claude <noreply@anthropic.com>
…itmesh pro) into vr-sleeve-palette

Conflict: App.svelte debug hook unioned (release/next list + vrSleeve).
@AlexZ005
AlexZ005 merged commit 29ea749 into release/next Jul 31, 2026
AlexZ005 added a commit that referenced this pull request Aug 1, 2026
…kill

- CLAUDE.md domain map: vrSleeve entry (forearm ghost strip, held-preview
  place w/ snap rules as one undo, K2 idb slots) + the GENERIC module-VR hook
  registries now living in vrControls (nav suppressor / panel-group provider /
  trigger start-end-swallow / grip-drop interceptor / frame hook) - reuse them
  for future VR feature modules instead of hardwiring vrControls
- src/modules list: vrsleeve = thin shell over $lib/vrSleeve (local-only;
  disabling the module removes the feature)
- new Status (2026-08-01): PR #75 merge summary + the NOT-yet-merged AI
  assistant v3 flow+physics branch (local ae53c7b on
  feature/ai-flow-physics-tools, awaiting push/PR; docs-repo page already
  committed)
- e2e-verify skill: vrSleeve in the debugStores hook list, lane-aiphys @5178
  port assignment, idb persistence traps (fire-and-forget write aborted by an
  immediate reload; loaded-once stores on the second module instance)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@AlexZ005
AlexZ005 deleted the feature/vr-sleeve-palette branch August 5, 2026 20:28
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