Skip to content

OSINT cockpit: wire the full 11-dim V3 stacked cascade + runtime bake#68

Merged
AdaWorldAPI merged 4 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv
Jul 1, 2026
Merged

OSINT cockpit: wire the full 11-dim V3 stacked cascade + runtime bake#68
AdaWorldAPI merged 4 commits into
mainfrom
claude/v3-substrate-migration-review-o0yoxv

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Jul 1, 2026

Copy link
Copy Markdown
Owner

What

Wires the OSINT cockpit to stack all used AIRO/VAIR properties as the V3 6×(8:8) cascade — not just the original 6 dual-use axes — and bakes the scene at runtime from the enriched harvest so it's testable on Railway without regenerating the pre-baked asset.

Why

The spread · OSINT cockpit was rendering ~1 of 12 dimensions wired (type only, the rest islands). Coverage measured on the real 611-node harvest: only type/stakeholder filled, seven dims at 0%. This completes the stack.

Changes

crates/cockpit-server/src/osint_gotham.rs — the bake

  • Value tenant: add bytes 7..=11 (currentStatus, type, output, impact, stakeholder) completing the 6×(8:8) cascade. Bytes 1..=6 unchanged → client + committed asset stay compatible.
  • The tier pairs are odd:even orthogonal: currentStatus:type · militaryUse:civicUse · MLTask:MLType · purpose:capacity · output:impact · stakeholder:airo:type.
  • Facet edges: add rel 16..20 + FACET_AXES entries so every stacked dim is a traversable entity → SchemaValue edge (a toggleable layer), not just a hot tenant byte.
  • 5 new closed codebooks from aiwc.ods (+ observed values).

crates/cockpit-server/src/main.rs — serving

  • OSINT_SOA now bakes at startup from the on-disk enriched harvest (LazyLock, CARGO_MANIFEST_DIR-anchored path) via the extended osint_soa_bytes, with a fallback to the committed asset if the harvest is absent. No pre-baked-asset regen needed for Railway.

cockpit/public/aiwar_graph.json — data

  • Enriched via a 15-agent sweep constrained to the aiwc.ods controlled vocab: currentStatus/type/stakeholder/airo:type now 100%, +1133 filled cells. Islands collapse into prefix-adjacency.

Test on Railway

Deploy this branch → /osint3d. The scene bakes fresh at boot (tracing::info!("osint: baked N nodes … 11-dim V3 stacked cascade")); all 11 dimension facets/chips populate; the dual-use (militaryUse:civicUse) and other orthogonal pairs cluster by shared prefix.

Note

Could not cargo-verify locally (this session's cargo fetch is network-gated); edits mirror the existing working osint-bake patterns and are structurally balanced. Railway's build is the verification. The standalone V3 SoA artifacts (osint_v3.soa + codebook + NARS spread) are on this branch under data/osint-v3/.

🤖 Generated with Claude Code


Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Added support for a richer OSINT V3 output format, including expanded facet coverage and updated encoded data definitions.
    • Added a new reference guide for the OSINT V3 bake output and file layout.
  • Bug Fixes

    • Improved startup handling for OSINT data so the service can load available source data dynamically and fall back safely when it is missing or invalid.
    • Updated the OSINT endpoint to serve the latest generated data at runtime.

AdaWorldAPI and others added 4 commits July 1, 2026 11:08
…:is_a cascade

- osint_v3.soa: 611 records x 36B (row_id u32 | GUID1 16B | GUID2 16B), classid 0x1000_0700/0701
- codebook from aiwc.ods controlled vocab (12 AIRO dims + McClelland); max cardinality 30 -> u8
- 45 dual-use HIP basins emerge from militaryUse:civicUse prefix (islands collapse to adjacency)
- 133 persons carry McClelland GUID2; NARS reasoning spread rewired over the baked edges (nars_spread.json)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
…heories, NARS deduction+revision)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLBnPuScZy6w9di2QEjsXM
Stack ALL used AIRO/VAIR properties, not just the original 6 dual-use axes:
- value tenant (osint_gotham): add bytes 7..=11 — currentStatus, type, output,
  impact, stakeholder — completing the 6x(8:8) cascade (odd:even orthogonal
  pairs: currentStatus:type, militaryUse:civicUse, MLTask:MLType,
  purpose:capacity, output:impact, stakeholder:airo:type). Bytes 1..=6 unchanged
  (client + committed asset stay compatible).
- facet EDGES: add rel 16..20 + FACET_AXES entries so every stacked dim is a
  traversable entity->SchemaValue edge (toggleable layer), not just a hot tenant.
- 5 new closed codebooks from aiwc.ods (+ observed values).
- main.rs: OSINT_SOA now bakes at startup from the on-disk enriched harvest
  (LazyLock, CARGO_MANIFEST_DIR-anchored path) with a committed-asset fallback,
  so Railway serves the fully-wired scene without a pre-baked asset regen.
- cockpit/public/aiwar_graph.json: enriched (15-agent sweep vs aiwc.ods vocab) —
  currentStatus/type/stakeholder/airo:type now 100%, +1133 filled cells.

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

coderabbitai Bot commented Jul 1, 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: a172a05f-4177-45ce-a629-96626e6005f3

📥 Commits

Reviewing files that changed from the base of the PR and between d888761 and dda56d8.

📒 Files selected for processing (8)
  • cockpit/public/aiwar_graph.json
  • crates/cockpit-server/src/main.rs
  • crates/cockpit-server/src/osint_gotham.rs
  • data/osint-v3/OSINT_V3_BAKE_README.md
  • data/osint-v3/nars_spread.json
  • data/osint-v3/osint_v3.soa
  • data/osint-v3/osint_v3_codebook.json
  • data/osint-v3/osint_v3_nodes.json

📝 Walkthrough

Walkthrough

Updates OSINT SoA serving to load aiwar_graph.json at runtime via a LazyLock<Vec<u8>>, falling back to a compiled-in asset on failure. Extends the dual-use facet tenant with five new dimensions (status/type/output/impact/stakeholder) and matching schema edges. Adds new OSINT-V3 data files: README, NARS spread config, and codebook.

Changes

OSINT V3 runtime bake and facet completion

Layer / File(s) Summary
Runtime SoA bake with fallback
crates/cockpit-server/src/main.rs
Replaces compile-time include_bytes! with a LazyLock<Vec<u8>> that searches for aiwar_graph.json, loads enrichment/cypher data, derives SoA bytes, and falls back to a committed asset on failure; /osint.soa handler now returns from this buffer.
Dual-use facet tenant completion
crates/cockpit-server/src/osint_gotham.rs
Adds five new facet byte indices and codebooks (currentStatus, type, output, impact, stakeholder), updates write_facet_tenant to populate them, adds rel codes 16..=20, and extends FACET_AXES accordingly.
OSINT-V3 data artifacts
data/osint-v3/OSINT_V3_BAKE_README.md, data/osint-v3/nars_spread.json, data/osint-v3/osint_v3_codebook.json
Adds bake documentation, a NARS theory configuration seeded with US covering stakeholder/deployment relations, and a codebook defining GUID tiers plus AIRO/McClelland vocabularies.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • AdaWorldAPI/q2#44: Extends the same osint_gotham.rs facet-tenant and FACET_AXES wiring that this PR further builds on with five additional facet dimensions.

Poem

A rabbit dug through JSON deep,
Found graphs where old bytes used to sleep. 🐰
Now facets bloom, five dimensions strong,
Status, type, and impact along.
If the harvest's gone, fear not the loss—
A fallback hops in as the boss! 🥕

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

@AdaWorldAPI AdaWorldAPI merged commit 650d2a5 into main Jul 1, 2026
3 of 4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dda56d82b6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +68 to +69
concat!(env!("CARGO_MANIFEST_DIR"), "/../../cockpit/public/aiwar_graph.json"),
"cockpit/public/aiwar_graph.json",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Prefer the enriched bake over the base public graph

In a source checkout like this one, cockpit/public/aiwar_graph.json exists, has only the 221 base nodes, and there is no cockpit/cypher; because these public-graph candidates are tried before the enriched harvest paths or the committed 920-node fallback asset, /osint.soa now runtime-bakes the base graph and silently drops the enriched scene the route used to serve. This affects any deployment that ships the repo/public files alongside the binary.

Useful? React with 👍 / 👎.

"osint: baked {} nodes from {path} (11-dim V3 stacked cascade)",
graph.nodes.len()
);
osint_gotham::osint_soa_bytes(&graph, &rounds)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve tenant bytes in the runtime SoA bake

When a runtime graph candidate is found, this returns osint_soa_bytes, but that serializer stops after the label tail and does not append the nodeCount * 6 tenant bytes that the existing assets/osint_scene.soa contains. In that path cockpit/src/OsintGraph.tsx decodes tenants as null, so the facet-lens buttons are shown but cannot recolor or produce legends; append the tenant tail here or keep serving a bake that includes it.

Useful? React with 👍 / 👎.

Comment on lines +1006 to +1010
(&["currentStatus", "currentStatus:airo"], REL_FACET_STATUS),
(&["type"], REL_FACET_TYPE),
(&["output", "output:airo"], REL_FACET_OUTPUT),
(&["impact", "impact:vair"], REL_FACET_IMPACT),
(&["stakeholder"], REL_FACET_STAKEHOLDER),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep new facet rels in the dimension layer

These new rel codes 16–20 are described as toggleable facet edges, but the UI still classifies only 8 and 10..15 as facet/dimension rels while rendering every r >= 2 in the semantic graph. As soon as V3 data emits currentStatus, type, output, impact, or stakeholder edges, they stay visible even when the “family concepts”/dimension layer is hidden and are labeled as generic related, cluttering the default entity graph.

Useful? React with 👍 / 👎.

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