Back to Body Journal
SOURCE / PINNED RELEASE

Made of little things.

Body Journal

Release
e8049f8da4e2…
Author-recorded commit
61c04bf0e8aa…
License
LICENSE
Author’s source reference
nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-6c4554844c7

Archive hash verified: 4369d778da046a8b…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

docs/anatomy-visibility.md
# Independent focus and visibility

Feature boundary: local rendering, camera and saved observation/session views.
Keep optional SDK storage and current capability fallbacks; no new host domains,
network requests, assets, topology changes or permissions.

Preserve the white/off-black/red-orange interface. A single searchable Anatomy
panel combines the selection list and descendant visibility checkboxes. It sits
beside the canvas, opens by default and can be toggled; narrow frames use a side
drawer. The open/closed preference is saved through optional SDK session storage.
Select a name and press Focus to move the camera. Checking an arm includes its
forearm, hand and every available descendant; partial selections use native
indeterminate checkboxes. Whole body changes the camera only; Show all / Hide all
change visibility only. The body outline has its own checkbox. Escape closes the
panel; expansion preserves keyboard focus. See [the current slice](anatomy-controls-slice.md).

Version 2 inspection records separate the camera target from a bounded list of
hidden leaves. Legacy full/faded views migrate to all visible; legacy isolation
migrates to the same selected subtree. Original paint triangle addresses remain
unchanged. Hidden areas cannot be painted; their observations remain recorded.
Camera focus can target hidden anatomy without revealing it; the picker labels
a fully hidden selection. Visibility lists are limited to currently applicable
structures; newly introduced anatomy starts visible. Evidence includes
an overview with the complete layer and a saved view honoring visibility;
automatic close-ups must not silently omit painted marks. Display cuts are
rendering boundaries, not clinical findings.

Verify hierarchy propagation, mixed states, independent focus/visibility,
hidden-surface picking, saved observations/reload, capture restoration, and
keyboard/touch controls in the real soyLI host. Check both host themes, absent
optional domains, and actual 200×160, 320×560, 900×600 and full-size frames.

## Implementation

- `src/anatomy-tree.ts`: shared hierarchy, stable leaf IDs, dominant-bone skin
  partition, and mixed-state calculation. Catalog region metadata comes from the
  existing binary assets; their preparation scripts now preserve it.
- `src/body-inspection.ts`: independent focus bounds and visible geometry. Display
  overlays share skin attributes but retain original triangle addresses for
  picking and marks. Original materials and meshes are restored without ghosting.
- `src/inspection-controls.ts`: searchable explicit focus selection and expandable
  visibility lists; native keyboard checkboxes and separate Show all / Hide all.
- `src/inspection-record.ts`: validated v2 views and migration from v1. Session,
  observation and evidence paths use the same contract. No asset binary changed.

## Verification (25 October 2026)

- `pnpm verify`: all 67 tests passed, plus type-check and build. New tests cover
  independent display/focus bounds, parent propagation and mixed states, complete
  skin partitioning, hidden-surface picking, unchanged anchors and v1 migration.
- `pnpm test:conformance`: 5 passed, 0 failed, 5 skipped. The reference harness
  lacks manifest-event evidence, emitted wire envelopes and lifecycle measurement.
- `soyli check`: passed, space-playback-6 / Chromium 153.0.8010.12. Final HTML is
  18,183,793 bytes, SHA-256
  `2396d72ec2b0239cb4543da1e1ace53710d1c7706c0298a6aebf63c402aa6e47`.
  Source check was approximately 34.3 MB of 40 MiB.
- `node tests/inspection-smoke.mjs http://127.0.0.1:4173/`: final-build pass for
  selection-before-Focus, independent visibility, checkbox cascades, finger/organ
  picking, secondary-button rotation, separate observation views, actual SDK
  save/reload, evidence sheets, capture restoration and camera-only reset.
- `node tests/visibility-ui-smoke.mjs http://127.0.0.1:4173/`: native keyboard and
  emulated touch interaction; both host themes at actual 200×160, 320×560,
  900×600 and 1600×1000; absent storage/config/theme; touch 390×844 and 844×390.
  Tests explicitly remove the host iframe's minimum size for the tiny-frame
  check. The useful minimum notice appears below the supported workspace size.
- `node tests/fingers-smoke.mjs http://127.0.0.1:4173/`: passed during the slice;
  finger controls, presets, separate observations, persistence and evidence
  restoration remain functional after removing their automatic fade behavior.
- Inspected desktop and small-frame checkbox/focus screenshots and generated
  evidence. Long dialogs scroll in short/narrow frames. Physical phones and
  clinical accuracy were not evaluated. No provider requests or publication.

Reused the existing user-owned soyLI preview at http://127.0.0.1:4173/; no extra
preview was started. Stop that preview in its owning terminal with Ctrl+C.