Skip to content

Electric-outage cascade on the full 16-bit-per-tier spatial key (leaf/family/identity = HEEL/HIP/TWIG)#605

Merged
AdaWorldAPI merged 2 commits into
mainfrom
claude/jirak-math-theorems-harvest-rfii13
Jun 24, 2026
Merged

Electric-outage cascade on the full 16-bit-per-tier spatial key (leaf/family/identity = HEEL/HIP/TWIG)#605
AdaWorldAPI merged 2 commits into
mainfrom
claude/jirak-math-theorems-harvest-rfii13

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

Re-wires the electric-outage (Spain-blackout) perturbation cascade onto a CascadeKey whose three 16-bit roles — family / leaf / identity — are perfectly aligned with the cascade tiers HEEL / HIP / TWIG. The OGAR production form the existing hhtl::HhtlKey defers (its doc note: binary-Cheeger "fills only the low bit per tier… not that full encoding").

Grounded on OGAR P0 canon (256×256 centroid tile / Morton / 3×4) + ndarray guid-prefix-shape-routing.md §4. Each tier = a full 16-bit 256×256 centroid tile (nibble-interleaved splat::morton2) from the bus's basin::spectral_embedding position ("topology IS the key", not geography). Three tiers ⇒ 24-bit-per-axis Morton; min-max norm ⇒ nibble prefix = quad-tree quadrant (the 256=4⁴ ancestry condition).

One key, six lenses (proven in 5 tests + examples/spain_cascade.rs):

  • location — tile() decodes key → spectral tile
  • math — cascade_distance = 3 − shared_prefix_tiers, O(1) Morton containment
  • representation — to_guid_tiers() IS the canonical (HEEL,HIP,TWIG)
  • substrate — three u16 = NodeGuid cascade tiers (bytes 4..10); morton48() = packed SoA key
  • learning + thinking — blackout epicentre is prefix-local: measured mean cascade-distance 1.000 vs 2.561 random baseline; the footprint learns the basin tree, the cascade traverses the same key

cargo test … cascade_key 5/5; clippy -D warnings clean; fmt-clean (pre-existing chaoda_surge_epicenter.rs drift untouched). Zero-dep, deterministic; the Spain artifact extended additively, never deleted.

Fences: spectrally-symmetric clique buses collide at the finest tier (degenerate eigenvectors); locality is a single-probe figure (cite Jirak n^(p/2−1), per I-NOISE-FLOOR-JIRAK).

Board: AGENT_LOG cont.³⁸ + EPIPHANIES E-CASCADE-KEY-IS-THE-SPATIAL-ADDRESS. Commit 8d044e1f is unsigned (signing server 503; commit.gpgsign=false per ada-docs workaround).

🤖 Generated with Claude Code


Generated by Claude Code

@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.

@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@AdaWorldAPI, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 33 minutes and 4 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: be6fe6dd-2213-4246-9cdd-6a0e17df9777

📥 Commits

Reviewing files that changed from the base of the PR and between 98c7ca9 and 4fd8a30.

📒 Files selected for processing (5)
  • .claude/board/AGENT_LOG.md
  • .claude/board/EPIPHANIES.md
  • crates/perturbation-sim/examples/spain_cascade.rs
  • crates/perturbation-sim/src/cascade_key.rs
  • crates/perturbation-sim/src/lib.rs

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.

AdaWorldAPI pushed a commit that referenced this pull request Jun 24, 2026
Adopt q2's V3 addressing (V3_SOA_WIRING.md / converge.rs) for the Spain
electric-outage cascade: each 16-bit HHTL tier is an 8:8 split — high byte =
part_of (PLACE/where, mereology), low byte = is_a (TISSUE/what, taxonomy). Two
orthogonal prefix-routable hierarchies in one key; no layout change (an
interpretation of the locked 3x u16 tiers, the 6-group NodeGuid).

Additive to the V1/V2 CascadeKey (#605, spatial-only):
- IsaPath { class, kind, sub } — the is_a low-byte taxonomy chain
- CascadeKeyV3 { heel, hip, twig } — each tier (place<<8)|tissue
  + place_chain / tissue_chain / part_of_distance / is_a_distance / to_guid_tiers
- cascade_keys_v3(grid, alive, &[IsaPath]) — place = 24-bit Morton spectral cell
  (3 octets, coarse->fine), tissue = the per-bus is_a taxonomy

For the grid this is the better representation: a part_of prefix selects "which
region blacked out", an is_a prefix selects "all generators / all loads" — two
orthogonal queries on ONE key (V1/V2 spatial-only could not). EdgeBlock in-family
= part_of/connected_to siblings = the lines the cascade propagates along.

+4 V3 tests (9 total green): 8:8 packing, axis-independence, blackout
part_of-locality + is_a source/sink separability, isa-count guard.
examples/spain_cascade.rs extended with the V3 dual-query. clippy -D warnings
clean, fmt-clean.

Consumer-awareness (reported in PR/board, not actioned — other session's
surface): lance-graph canonical_node lacks an 8:8 accessor (additive
opportunity); q2 osint-bake/fma.rs's NodeGuid::new_v2(...LEAF...) is a 7-group
API absent from canonical_node (I-LEGACY-API-FEATURE-GATED) — V3 is the
6-group-compatible resolution that sidesteps it.

Board: AGENT_LOG cont.39 + EPIPHANIES E-V3-PART-OF-IS-A-TILE.
(q2 docs fetched via raw.githubusercontent + GH_TOKEN — api.github.com pygithub
is org-app-gated 403.)

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

Copy link
Copy Markdown
Owner Author

Follow-up commit 690b2c74 lands the V3 (part_of:is_a) 8:8 tile for the electric grid on this branch (additive to the V1/V2 CascadeKey above), per q2's V3_SOA_WIRING.md / OGAR_CONSUMER_INTEGRATION.md.

V3: each 16-bit HHTL tier = high byte part_of (PLACE/where) : low byte is_a (TISSUE/what). For the grid: part_of (place) = the 24-bit Morton spectral cell, is_a (tissue) = bus role (source/sink/transfer → BusKind). A part_of prefix selects "which region blacked out"; an is_a prefix selects "all generators/loads" — two orthogonal queries on one key, which the V1/V2 spatial-only form can't express. EdgeBlock in-family = part_of/connected_to siblings = the lines the cascade propagates along. No ENVELOPE_LAYOUT_VERSION bump — it's an interpretation of the locked 3×u16 tiers (the 6-group NodeGuid, not the 7-group LEAF new_v2).

Added: IsaPath, CascadeKeyV3, cascade_keys_v3, {place,tissue}_chain, {part_of,is_a}_distance. +4 tests (9 total green), example extended, clippy -D warnings + fmt clean.

Consumer V1/V2→V3 awareness (flagged, not actioned — other session's surface):

  • lance-graph canonical_node has no 8:8 (part_of/is_a) byte accessor — additive, layout-preserving opportunity (the canonical surface every consumer would read).
  • contract::soa_graph / graph_render could split place/tissue on render.
  • Live blocker: q2 osint-bake/fma.rs calls NodeGuid::new_v2(... LEAF ...) — a 7-group API absent from canonical_node (I-LEGACY-API-FEATURE-GATED). V3 is the 6-group-compatible resolution that sidesteps the LEAF reclaim entirely.

(q2 docs fetched via raw.githubusercontent + GH_TOKENapi.github.com/pygithub is org-app-gated, 403.)


Generated by Claude Code

claude added 2 commits June 24, 2026 17:36
…r-tier spatial key

Re-wire the Spain-blackout perturbation cascade onto a CascadeKey whose three
16-bit roles — family / leaf / identity — are perfectly aligned with the cascade
tiers HEEL / HIP / TWIG. This is the OGAR production form the existing
hhtl::HhtlKey explicitly defers ("binary-Cheeger fills only the low bit per
tier, NOT that full encoding").

Grounded on OGAR P0 canon (256x256 centroid tile / Morton / 3x4) + ndarray
guid-prefix-shape-routing.md §4 ("the key selects the grid"). Each tier is a
full 16-bit 256x256 centroid tile (two byte-axes, nibble-interleaved
splat::morton2) built from the bus's basin::spectral_embedding position
(electrical coords — "topology IS the key", not geography). Three tiers => a
24-bit-per-axis Morton address; min-max normalization makes a nibble prefix a
quad-tree quadrant (the 256 = 4^4 ancestry condition).

One key, six lenses (proven in tests + examples/spain_cascade.rs):
- location:       tile() decodes the key back to its spectral tile
- math:           cascade_distance = 3 - shared_prefix_tiers, O(1) containment
- representation: to_guid_tiers() IS the canonical (HEEL,HIP,TWIG) triple
- substrate:      three u16 = the NodeGuid cascade tiers (bytes 4..10);
                  morton48() is the packed SoA key
- learning+thinking: the blackout epicentre is prefix-local — measured mean
                  cascade-distance 1.000 vs 2.561 random baseline; the footprint
                  learns the basin tree and the cascade traverses the same key

+5 tests, all green; clippy -D warnings clean; fmt-clean (pre-existing
chaoda_surge_epicenter.rs drift left untouched). Zero-dep, deterministic. The
Spain perturbation artifact is extended additively, never deleted.

Board: AGENT_LOG cont.38 + EPIPHANIES E-CASCADE-KEY-IS-THE-SPATIAL-ADDRESS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
Adopt q2's V3 addressing (V3_SOA_WIRING.md / converge.rs) for the Spain
electric-outage cascade: each 16-bit HHTL tier is an 8:8 split — high byte =
part_of (PLACE/where, mereology), low byte = is_a (TISSUE/what, taxonomy). Two
orthogonal prefix-routable hierarchies in one key; no layout change (an
interpretation of the locked 3x u16 tiers, the 6-group NodeGuid).

Additive to the V1/V2 CascadeKey (#605, spatial-only):
- IsaPath { class, kind, sub } — the is_a low-byte taxonomy chain
- CascadeKeyV3 { heel, hip, twig } — each tier (place<<8)|tissue
  + place_chain / tissue_chain / part_of_distance / is_a_distance / to_guid_tiers
- cascade_keys_v3(grid, alive, &[IsaPath]) — place = 24-bit Morton spectral cell
  (3 octets, coarse->fine), tissue = the per-bus is_a taxonomy

For the grid this is the better representation: a part_of prefix selects "which
region blacked out", an is_a prefix selects "all generators / all loads" — two
orthogonal queries on ONE key (V1/V2 spatial-only could not). EdgeBlock in-family
= part_of/connected_to siblings = the lines the cascade propagates along.

+4 V3 tests (9 total green): 8:8 packing, axis-independence, blackout
part_of-locality + is_a source/sink separability, isa-count guard.
examples/spain_cascade.rs extended with the V3 dual-query. clippy -D warnings
clean, fmt-clean.

Consumer-awareness (reported in PR/board, not actioned — other session's
surface): lance-graph canonical_node lacks an 8:8 accessor (additive
opportunity); q2 osint-bake/fma.rs's NodeGuid::new_v2(...LEAF...) is a 7-group
API absent from canonical_node (I-LEGACY-API-FEATURE-GATED) — V3 is the
6-group-compatible resolution that sidesteps it.

Board: AGENT_LOG cont.39 + EPIPHANIES E-V3-PART-OF-IS-A-TILE.
(q2 docs fetched via raw.githubusercontent + GH_TOKEN — api.github.com pygithub
is org-app-gated 403.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
@AdaWorldAPI AdaWorldAPI force-pushed the claude/jirak-math-theorems-harvest-rfii13 branch from 690b2c7 to 4fd8a30 Compare June 24, 2026 17:36
@AdaWorldAPI AdaWorldAPI merged commit 1b848a8 into main Jun 24, 2026
6 checks passed
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