Skip to content

osint/fma: heart anatomy /fma cockpit view — 8:8 [container:identity] HHTL tiers#48

Merged
AdaWorldAPI merged 2 commits into
mainfrom
claude/osint-soa-rebake
Jun 23, 2026
Merged

osint/fma: heart anatomy /fma cockpit view — 8:8 [container:identity] HHTL tiers#48
AdaWorldAPI merged 2 commits into
mainfrom
claude/osint-soa-rebake

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Jun 23, 2026

Copy link
Copy Markdown
Owner

What

Adds the FMA heart anatomy slice as the /fma route of the existing OSINT cockpit — same app as /osint, reusing decodeSoa, the OSO1 wire format, and the cockpit/public/*.soa serving path (no cockpit-server change; Railway re-embeds dist/). The slice is a heart organ → chamber → wall → tissue → cell partonomy plus six cross-cutting global tissue TYPEs at the ceiling pole, baked by osint-bake's fma binary.

The addressing — 8:8 [container:identity] HHTL tiers

Each HHTL tier is one u16 = [container : identity] = [mixin-node : instance-on-it] = 256 × 256 = 64k deterministic per tier. The high byte names the KIND mixin node (Organ/Chamber/Wall/Tissue/Cell — the family things attach on), the low byte the instance:

HEEL [Organ:Heart]  HIP [Chamber:LV]  TWIG [Wall:myo]  LEAF [Tissue:muscle]  family [Cell:B]

The non-zero tiers ARE the partonomy path, so the address says where a node sits — no edge lookup, no Morton decode. The cockpit lays out straight from the tiers (tierPos: y = depth, x = nested slot under the parent instance), so the HHTL block is load-bearing rather than write-only ornamentation.

The first commit (7455c4e7) tried a Z-order Morton path crammed into the single identity field; the second (a8603516) replaces it with the tier model above — kept as two commits to record the correction.

OGAR PR quarto-dev#116 alignment

This is the Cascade (ontology) reading of OGAR's [container:member] FMA tier model; OGAR's ogar-fma-skeleton is the Located (spatial) sibling (the same 8:8 tiers carry coronal x:y / depth-z Morton cells). Mirrors OGAR's [bodypart:bone] LeafTile, uses classid 0x0A01 (ConceptDomain::Anatomy), and supersedes the 12+4 EdgeBlock with family-node grouping (the container byte = the mixin/family node).

Verification

  • Byte contract checked end-to-end: the cockpit's read offsets match the Rust-written GUID byte-for-byte across organ→chamber→wall→tissue→cell; ceiling sentinel ([ff:ff]) intact.
  • Bake deterministic (95 nodes, 112 edges, 5176-byte asset); cockpit tsc clean.
  • Browser render not exercised in this environment.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TzqvDqbFRzyx17EkLKBoZF


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • FMA graph visualization now uses fixed tier-based positioning for more predictable and stable layouts, replacing physics-based simulation.
  • Improvements

    • Graph rendering performance enhanced with automatic view fitting and eliminated stabilization delays.
    • Node sizing and visual styling adjusted to align with the new positioning model.

claude added 2 commits June 23, 2026 21:07
Re-bake the FMA heart slice so each part-of node carries its Morton
(Z-order) tile path in the GUID identity field: one 4×4 level per
part-of step (heart → chamber quadrant → wall → tissue → cell), via
osint_bake::morton::descend. Depth == class, so the path is fully
recoverable from identity + class alone.

FmaGraph deinterleaves that path nibble-by-nibble into a fixed nested
tile centre (coarser tier → larger dot), pins every node (physics off),
and lines the cross-cutting global types up along the pole above the
body. /fma now renders as the literal nested tile pyramid the cascade
descends, instead of a force-directed blob — position() is decode().

The walk reconstructs (x,y) level by level rather than flat-decoding the
multi-level code (a flat decode spreads the per-level axis bits across
nibbles and lands out of range). Edges reference the SoA array index,
never the identity, so storing the Morton code there is layout-only and
cannot perturb topology. decodeSoa now exposes the raw identity field
(additive; OSINT ignores it).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TzqvDqbFRzyx17EkLKBoZF
…artonomy

Replace the synthetic Morton-in-identity scheme (which crammed a whole
multi-level tile path into one u16 and nibble-walked it back — bad
addressing) with the deterministic tier model: each HHTL tier is one 8:8
[container:identity] pair = [mixin-node : instance-on-it], 256×256 = 64k
per tier. The high byte names the KIND mixin node (Organ/Chamber/Wall/
Tissue/Cell — the family things attach on), the low byte the instance.

  HEEL [Organ:Heart]  HIP [Chamber:id]  TWIG [Wall:id]  LEAF [Tissue:id]
  family [Cell:id]

The non-zero tiers ARE the partonomy path, so the address says where a
node sits — no Morton decode, no edge lookup. This is the q2 Cascade
reading of OGAR PR quarto-dev#116's [container:member] tier model (OGAR's skeleton
is the Located/spatial sibling). Mirrors OGAR's [bodypart:bone] LeafTile
and supersedes the 12+4 EdgeBlock with family-node grouping (the
container byte = the mixin/family node). classid stays 0x0A01 =
anatomical_structure in OGAR's ConceptDomain::Anatomy.

decodeSoa now exposes the five tiers (heel/hip/twig/leaf/family);
FmaGraph lays out straight from them (tierPos: y = depth, x = nested
slot under the parent's instance) instead of the Morton treemap — so the
HHTL block is finally load-bearing, not write-only ornamentation.

Verified: the cockpit's read offsets match the Rust-written GUID byte
for byte across organ→chamber→wall→tissue→cell; ceiling sentinel intact;
cockpit tsc clean. Browser render not exercised (no browser here).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TzqvDqbFRzyx17EkLKBoZF
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@AdaWorldAPI AdaWorldAPI merged commit f770e8e into main Jun 23, 2026
3 of 4 checks passed
@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 24310468-ef3a-41ab-846b-00943b10682f

📥 Commits

Reviewing files that changed from the base of the PR and between 61772c7 and a860351.

📒 Files selected for processing (4)
  • cockpit/public/fma.soa
  • cockpit/src/FmaGraph.tsx
  • cockpit/src/OsintGraph.tsx
  • crates/osint-bake/src/bin/fma.rs

📝 Walkthrough

Walkthrough

Refactors FMA node addressing from a basin-local model to an 8:8 [container:identity] Cascade HHTL tier scheme. The Rust bake binary encodes tier GUIDs; the TypeScript SOA decoder gains per-node tier arrays (identity, heel, hip, twig, leaf, family); FmaGraph replaces force simulation with deterministic fixed positions derived from those tier values.

Changes

Cascade Tier Model: Encoding → Decoding → Fixed Layout

Layer / File(s) Summary
Cascade tier encoding in fma.rs
crates/osint-bake/src/bin/fma.rs
Changes CLASSID_FMA to 0x0000_0A01, adds MX_* mixin constants and a tier() packing helper, rewrites part_of_node to build GUIDs from HEEL/HIP/TWIG/LEAF/family tier pairs, updates build_heart() to iterate u8 instance ids per tier without basin values, and reformats the main() part-of-address output to [xx:yy] notation.
Soa interface and decodeSoa() tier arrays
cockpit/src/OsintGraph.tsx
Extends Soa with identity, heel, hip, twig, leaf, and family Uint16Array fields; allocates and fills them per-node in decodeSoa() alongside the existing ceiling sentinel check; includes the new arrays in the return object.
FmaGraph fixed-position layout
cockpit/src/FmaGraph.tsx
Adds layout constants (COL, ROW, POLE_Y), an inst() helper, and tierPos() mapping SOA tier bytes to deterministic (x, y) coordinates; disables vis-network physics; pins each node with fixed: {x, y}; places ceiling nodes as diamonds in a pole row ordered by index; replaces stabilizationIterationsDone callback with afterDrawing → fit({ animation: false }).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Poem

🐇 Hop, hop through the tiers we go,
Eight bits wide and eight bits deep,
No more physics making nodes creep—
Fixed in place like organs should be,
HEEL and HIP and TWIG, you see!
The cascade slots each chamber right,
A diamond heart glows in the light. 💎

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

2 participants