Reproducible Hemera source for BAO

Serves: owner's Kadek phase-1 closure · Radio/soft3 · prerequisite for bounded BAO verification in Kadek foundation row 4. Dependency-only task; bounded root reduction, no_std API, slice parsing and authenticated particle/root association remain separate dependent work. No production change has been made.

Owned worktree: /Users/master/cyber/radio-bao-bounded-root, branch feat/bao-hemera-pin, parent Radio a11d342594949d4ea542b26366f71d56ef21662d. The worktree was created clean from that commit; its initial branch was renamed before any edit. Shared Radio and Hemera working trees are not inputs. Fresh git ls-remote origin HEAD returned that Radio revision and Hemera d5f0a09539360934fb32db9b2e15a91995607db6.

Source and dependency facts

Radio has no committed root/cyber-bao AGENTS.md or CLAUDE.md at this parent. The supplied parent AGENTS.md and cyberia/dev.md apply; engineering, quality, projects, documentation, refinement and fathership were read. Repository gates come from Makefile.toml and .github/workflows/{ci.yml,tests.yaml,docs.yaml}. No formatter, source, manifest, lock, specification, version or release edit is included in this research.

Eight root-workspace members use a sibling Hemera path:

Manifest directory Current Hemera features
cyber-bao default → std; serde forwarded when selected
iroh-blobs default → std, serde
iroh-docs default → std
iroh-gossip default → std
iroh-relay default → std; additionally declares version 0.3
iroh-willow default → std
particle default → std
radio-cli default → std

They all spell path="../../hemera/rs". Root Cargo.lock records the resulting cyber-hemera 0.3.1 without a source revision. The hosted PR36 receipt audit/2026-10-11-empty-status/hosted-checks.md records missing sibling Hemera; that receipt is historical evidence, not a newly run gate. Merely publishing a local source-archive pin does not make the production dependency consumable.

Changing only cyber-bao to another source splits the concrete Hash type shared with these consumers. Examples: iroh-blobs/src/hash.rs:17–20 returns a Hemera Hash from PreOrderMemOutboard; particle/src/main.rs parses a Hemera Hash for cyber-bao decode; radio-cli/src/main.rs does the same. A source-wide Cargo identity must be consistent. A same-version Git, registry and path package are different Cargo identities even when their bytes happen to match.

iroh-ffi/Cargo.toml is a separate workspace containing iroh-js. Its Hemera path and registry iroh/iroh-blobs dependencies are outside the root-workspace closure; it declares no local cyber-bao dependency. It remains unchanged. The root integration package and excluded iroh-js separately request registry Hemera 0.1; root Cargo.lock resolves 0.1.2 with checksum 7b69554ac12fa0b19bb85f1d1965b0682ae4c71fa737d3d66d532ba2c8f35e4d. Their manifests and distinct dependency identities remain unchanged.

Why the existing registry release does not preserve the input

The cached published cyber-hemera-0.3.1.crate has SHA-256 ebcf7ffcd69170adde7e792826d7cececda962ea220b9834c6535bbc71e5a6df, matching Kadek's exact registry lock. A fresh extraction, not the mutable registry source directory, supplied comparison input. Its .cargo_vcs_info.json names 23f3bbcf. Current d5f0a095 includes new arithmetic/backend/kernel modules, optimized tree batching, Hasher::new_secret/hash_secret and constant-time secret/keyed mode state. These are implementation/API changes, even where published hash vectors remain equal. Substituting the registry version would roll back those current inputs.

/tmp/radio-bao-hemera-pin-research/published-comparison.json compares the current rs manifest and src tree: 24 paths, 13 byte-identical, 11 different or added. Every path carries both available SHA-256s. An initial Ruby comparison mixed UTF-8 and binary strings, yielding false inequality for equal non-ASCII bytes; its inconclusive JSON is retained, and the final comparison explicitly uses binary bytes. No Cargo command was rerun for that harness correction.

Git dependency resolution measured

At 2026-10-11T20:03:19Z–20:03:22Z, actual Rustup1.95 Cargo metadata resolved a standalone research manifest with git="https://github.com/cyberia-to/hemera", exact revision d5f0a095, default-features=false and features=["std"]. Exit 0. The empty research target contains no implementation; this was dependency metadata, not a build/test.

Exact argv/environment/cwd and untouched streams are /tmp/radio-bao-hemera-pin-research/git-metadata.{json,stdout,stderr}; manifest, empty target and generated lock are in its probe/. Cargo's source ID includes the exact requested and resolved revision. Its checkout's 30 tracked rs package files were compared byte-for-byte against Git d5f0a095 in git-package-source-verification.json; all matched. Metadata reports only std enabled for that standalone probe and no active transitive dependency. This is not the full Radio feature closure. Hemera's optional production dependency is serde; dev dependencies must not be inferred as downstream production inputs.

An unchanged Radio Git archive plus the exact Hemera archive then resolved with cargo metadata --format-version 1 --offline --locked, default/none/all feature variants: each exit 0. Temporarily moving only this isolated sibling away yielded exit101, ending failed to read .../baseline/hemera/rs/Cargo.toml / No such file or directory (os error 2). All seven metadata invocations/14 raw streams are retained. These are source-delivery observations, not algorithm tests.

The baseline 0.3.1 package has features default+serde+std in all three workspace variants. An initially empty-lock Git std+serde probe selected serde1.0.229; retain that diagnostic without treating it as the intended candidate closure. A distinct probe seeded with Radio's exact Cargo.lock resolved the Git Hemera while retaining serde1.0.228 and its locked dependencies. metadata-summary.json records the actual baseline IDs/edges and independent Git probes. Full candidate workspace graph parity remains a post-approval gate; no production manifest has been replaced to manufacture that observation.

Proposed source boundary

Use one root workspace Hemera declaration with the immutable Git revision and default-features=false. Each of the eight inheritors explicitly enables std; iroh-blobs also keeps serde, and cyber-bao's serde forwarding remains unchanged. Hemera's pinned default consists only of std; no source cfg(feature="default") was found in its rs/src. This removes only the default feature marker while preserving actual current cfg behavior. The later no_std task can independently change cyber-bao's feature forwarding without remigrating every manifest.

The extended tracked-package scan also checks CARGO_FEATURE_DEFAULT, the entire rs tree/root workspace manifest, build declarations and build.rs/.cargo paths; no default-marker consumer or build script was found. Cargo's exact Git package metadata has no custom-build target. Full scan argv, exits and empty output will be frozen with the PLAN, rather than inferring the absence from src alone.

The exact Git source determines version 0.3.1; root inheritance replaces relay's redundant floating 0.3 selector as well as its path. No component version changes. Git-only delivery is intentional. This task does not make a crates.io release, change pins in another repository, publish or tag anything.

Other production sources remain pinned by the committed lock: willow-rs at 12d29767cf3dedfaba7f03e14eaaf4c4cca5b438 and willow-store at b1c1bb90aa6c1b732be10c7071d10f0e3c6a195d; registry checksums and versions stay fixed. Quinn/nettools path dependencies resolve inside the exact Radio tree. Gate preparation must confirm this closure with Cargo metadata, not substitute similarly named registry packages. The only planned lock change is the new Git source on the existing 0.3.1 package; any additional resolution change is a stop for explanation, not permission to update dependencies indiscriminately.

Blast radius and verification boundary

The first cached registry input was soft3 18fd6b22; fresh origin inspection and an exact-object fetch advance this inventory to 44824e6cf64f5b0b1d7443eea412001e74c5f32e. It still declares Radio part_of=soft3, Hemera part_of=nox and Kadek part_of=cyb. No release pin changes are included: phase1.toml still pins older Radio db1d62e2 and Hemera 23f3bbcf. This is ordinary source development, not a release candidate or pin-drift fix.

reverse-consumers.json inventories committed Cargo manifests in the 52 registry-listed repositories: 50 have readable cached origin-default inputs; kern is unavailable and the original Nu Git directory is broken. A separate exact Nu clone at 1e58416e is then included in reverse-fresh.json, without altering or claiming to repair the original. Unrefreshed refs and missing kern limit any external-consumer absence claim. The fresh follow-up pins soft3, cybergraph 42fc2512, foculus 4ae1a79b, tade c7d404aa, cyb 4e4711f1 and evy a194311a to recorded live origins; its full manifests and selected callers are retained. These are source inspections, not successful product builds.

Neither current soft3 Cargo manifest directly depends on Radio. Its product crate uses registry Hemera and path cybergraph/foculus; conformance uses path Hemera and stack siblings. Current cybergraph and foculus also use path Hemera; foculus's optional transport is upstream registry iroh 0.96, not cyber-radio. Tade has no Radio/Hemera dependency. Cyb's separate crates/cyb manifest actually depends on registry cyber-radio 0.1 and registry Hemera 0.3; wire.rs uses Endpoint and copies Hemera results to [u8;32], with no concrete Radio Hash exchange found. Evy's evy_radio is its own channel wrapper, without a Radio crate dependency. Thus no concrete path-Radio plus path-Hemera exchange was found in these inspected current consumers. Registry membership still requires ring-1 product and kelvin checks; source inventory does not discharge them.

Public Hash identity nevertheless changes from path to Git. A downstream consumer that keeps its independent path Hemera declaration cannot pass that Hash into the newly pinned Radio APIs. This is an intentional source-identity compatibility boundary, even with identical Rust bytes or a green rustdoc check. After approval a legacy-path consumer probe must distinguish parent success from candidate type mismatch; full current consumers must retain their source declarations for comparison. Any new dependent failure belongs to this change unless the exact unchanged parent reproduces it; a broad historical red cannot hide it. No external manifest or registry/FFI dependency is silently migrated.

Current Radio's prior audited gates include broad format/Clippy/docs/policy and all-feature compilation/runtime failures. Keep the committed PR36 receipt as history; rerun the appropriate candidate/current-parent commands on this unit's own exact inputs before assigning its status. Hosted source-delivery progress does not certify platforms, fleet, kelvin, full product closure or row 4.

Inspection commands: exact git show <revision>:<path>; git grep -n for hemera/cyber-bao/path declarations in tracked Cargo.toml files, excluding nettools/target, audit and .claude; exact Cargo metadata invocation above; binary package comparisons and source hashes retained in the research directory. The earlier BAO boundary handoff is /tmp/kadek-bao-bounded-research-20261011/, with its 38-file input manifest and findings. No algorithm/performance result is new.

Homonyms

cyber/research
open research areas and theoretical foundations for the cyber protocol see sub-pages for individual research topics
species/research
cyberia/research
research working research packs for cyberia — each folder is one project with a `README.md` index. | project | what | |---------|------| | genome-protocol | attested genome / kinship proofs without a central registry | | migration-market | status currencies, funnel, and nomad awareness model | |…
plants/research
soft3/soma/research
research
cyb/honeycrisp/.claude/tasks/nebu-package-identity/research
nebu package identity — research 2026-10-09 · serves: Kadek foundation row 6 native storage, via unimem's required full-workspace gates; discovered from `unimem-block-creation`. `git ls-remote --symref origin HEAD` pins honeycrisp main to `9593c7218e14e2b5b816d9008b45ab60b9580cf3` and strata main…
soft3/radio/.claude/tasks/kadek-export-pairs/research
BAO exporter pair width 2026-10-09. Source-only preparation; no build, new panic reproduction or gate. Serves: kadek foundation row 4 · radio proof provider · current Hemera pair wire. Discovered from kadek's committed `16b53f7b85640be5a68a07787815a44ec6559377`,…
soft3/nox/.claude/tasks/hemera-no-std/research
Hemera feature propagation Stage: active research. Serves the owner's Kadek phase-1 foundation closure, through nox's declared `no_std + alloc` mode and Kadek foundation row 7's real scalar kernels. Discovered from Kadek private FLAC header audit, PR 60, merged as…
cyb/honeycrisp/.claude/tasks/unimem-block-access/research
Raw Block access — research 2026-10-09/10 · serves Kadek foundation row6's native ownership prerequisite and unimem's raw CPU access contract. No production edits or candidate gates. Initial source research is followed by explicitly delegated exact-parent gates below.…
soft3/radio/.claude/tasks/bao-bounded-traversal/research
Bounded BAO traversal research Owner: mov_pcm_resume, handed off by root; stage active, finite source observations measured. Serves the owner's Kadek phase-1 closure, foundation row 4 and `specs/runtime.md` verified source ranges. Discovered from the proof-provenance and bounded-reducer tasks. The…
soft3/radio/.claude/tasks/kadek-memstore-pairs/research
In-memory BAO parent-pair storage Status: research / proposed PLAN, 2026-10-10; no implementation or new gate run. Serves: Kadek phase-1 foundation row 4, authenticated-range transport prerequisite; radio's existing Hemera BAO import/storage contract. Discovered from PR32/PR33. Pinned inputs and…
soft3/radio/.claude/tasks/kadek-slice-traversal/research
Sync slice traversal research Status: fresh Opus plan APPROVE received; implementation source frozen for code review. Serves: owner's phase-1 completion · radio verified streaming · kadek foundation closure row 4 authenticated slice-proof dependency. Parent/discovered-from: [kadek…
cyb/honeycrisp/.claude/tasks/unimem-block-creation/research
Checked Block creation — research 2026-10-09 · source-only · serves: kadek foundation row 6 retained unimem storage, with row 3 admission; upstream unimem spec § Layer 1 / error model. No builds, gates, production edits or allocation experiments ran in this task. Authority and checkout Read…
soft3/radio/audit/2026-10-12-bao-proof-research/task/research
Bounded BAO proof research Serves Kadek foundation row 4 through Radio (declared part of soft3) and a future Kadek adapter in Cyb. Stage: research complete; PLAN proposed, not approved. Owned branch research/bao-bounded-proof; no production changes, commit, push or vendor dispatch. Original…
soft3/radio/.claude/tasks/bao-bounded-proof/research
Bounded BAO proof research Serves Kadek foundation row 4 through Radio (declared part of soft3) and a future Kadek adapter in Cyb. Stage: research complete; PLAN proposed, not approved. Owned branch research/bao-bounded-proof; no production changes, commit, push or vendor dispatch. Original…
warriors/erga/.claude/tasks/rtable-owner/research
RTable owner research Stage draft; research/PLAN only. Serves Kadek foundation row 6 native ownership; discovered-from Honeycrisp PR14 and Erga PR1's remaining RTable diagnostics. This unit covers the table, its concrete GPU probe and rtable CLI. Mine ownership, native Image, performance and…
soft3/radio/.claude/tasks/bao-root-policy/research
BAO canonical ROOT policy before bounded proof admission Draft v3 research and plan candidate, 2026-10-10. Serves: Kadek phase 1, foundation-closure row 4, runtime provenance and unchanged decoder state on failed authentication. Source-only findings; no candidate implementation or gates.…
warriors/erga/.claude/tasks/mine-owner/research
Mine owner research Stage draft; research/PLAN only. Serves Kadek foundation row 6 native ownership; discovered-from Honeycrisp PR14 and Erga PR2's remaining mine consumer errors. The next concrete unit is the benchmark's read-only table binding, private GPU output/texture, and sole CLI. Native…
warriors/erga/.claude/tasks/blake-batch-owner/research
Blake benchmark owner research Stage draft; no production authorization. Serves Kadek foundation row6 native Image ownership prerequisite; discovered-from Honeycrisp PR14 raw Block boundary repair and its reverse-dependent audit. This unit repairs a concrete Erga owner; it does not close Kadek…
soft3/radio/.claude/tasks/bao-empty-status/research
Fs synthetic empty status — current-origin research Stage: active. Serves Kadek phase 1 foundation row 4, authenticated transport. Discovered from `bao-empty-root`; current-origin amendment supersedes its unmerged five-file implementation. Owner: root, executor: radio_resume. No production change…
soft3/radio/.claude/tasks/bao-bounded-reducer/research
Bounded BAO prerequisite: read-only handoff Serves Kadek foundation row 4. This is source exploration, not an approved implementation plan, gate result, or proof of cold partial provenance. Exact inputs Fresh `git ls-remote origin HEAD` reported Radio `a11d342594949d4ea542b26366f71d56ef21662d` and…
soft3/nox/.claude/tasks/exact-tag-api-baseline/research
Restore an executable exact-tag API baseline Stage: blocked; evidence: measured. Discovered-from: [Hemera no_std repair](/soft3/nox/.claude/tasks/hemera-no-std/research). Serves nox release/API conformance under cyberia/dev § rings. Blocks: clean last-tag gate and any claim of clean release…
soft3/radio/.claude/tasks/audit-cargo-packaging/research
Archived Cargo manifest discovery Status: measured; packaging repair remains proposed. Serves Kadek foundation row 4 through Radio; discovered from the committed strict-proof consumer. Exact Radio parent is `ce0fb312faa8770e80efe9afa864106ae6b51552` (PR40). This worktree is clean at that parent…

Graph