622 constrain or retire create path to holon node - #640
Merged
evomimic merged 2 commits intoAug 17, 2026
Conversation
27 tasks
owleyeview
force-pushed
the
622-constrain-or-retire-create_path_to_holon_node
branch
from
August 17, 2026 19:35
c2473f5 to
92b19c0
Compare
evomimic
approved these changes
Aug 17, 2026
evomimic
left a comment
Owner
There was a problem hiding this comment.
Thanks for re-basing an reconciling merge conflicts, @owleyeview
Approved.
PR 640 satisfies #622: it retires the generic production ingress, replaces its sole supported use with the typed storage-owned LocalHolonSpace writer, preserves Integrity coverage through narrow test probes, and keeps canonical setup on production paths. The required authoritative documentation has now landed in map-dev-docs PR #10.
CI passed on the reviewed head. Manual verification also passed for happ and host builds, npm test, and npm start.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Retire generic
create_path_to_holon_nodeproduction ingressCloses #622. Also documentation updates in map-dev-docs PR
#10.
Summary
create_path_to_holon_nodeaccepted a caller-selectedPath,LinkTypesvalue, and targetActionHashand calledcreate_linkdirectly. Its one production caller always supplied the samethree fixed values, so this replaces it with a typed, storage-owned
LocalHolonSpacewrite and movesthe remaining raw authoring — which only Integrity tests need — into
holons_test_probes.Its
legacy_ingressclassification was compliant, so this is not policy remediation. It is retiredbecause the supported write contract is narrower than the authority it exposed and no supported
external caller needed the difference.
What changed
Typed writer. New
persistence_layer/local_holon_space.rswithindex_local_holon_space(&LocalId)— fixes the canonical path, link type, and empty tag internally, mirroring
holon_storage::index_under_all_holon_nodes. No#[hdk_extern], so it adds no WASM export and nocoordinator-surface row.
guest_shared_objects::holon_service::create_local_pathis deleted andGuestHolonService::create_local_space_holoncalls the new operation directly.Extern retired.
CreatePathInputandcreate_path_to_holon_noderemoved frompersistence_layer/holon_node.rs; its[[export]]row removed fromcoordinator-surface.toml. Noreplacement production ingress accepts caller-selected path, link-type, action-hash, or tag values.
Integrity unchanged in strength. Validation logic, rejection variants, and message strings are
byte-identical. Only the rationale on
validate_all_holon_nodes_createchanged: it no longer rests onthe removed extern, since peers author infrastructure links directly and the canonical base and
lineage-root target are DHT invariants regardless of the local write surface.
Probes. Two new narrow externs in
holons_test_probes, each fixed to one Integrity rule andstructurally unable to author a valid canonical link: the noncanonical-base probe refuses a path equal
to the selected type's canonical path, and the update-target probe refuses any target that is not an
Update. They share a closed two-variantRootIndexLinkTypeand a private link-authoring helper.all_holon_nodes_delete_for_testwas narrowed from a caller-supplied create-link hash to a semanticroot
LocalId, resolving the canonical link itself.Tests. Canonical behavior now comes from production paths: a new
bootstrap_local_holon_spaceharness helper drives a real unanchored dance through
dance_adapter, and the bootstrap test assertsthe link is created, resolves through the canonical path getter, is reused by a second unanchored
session, and deletes cleanly. Canonical
AllHolonNodescreation is proven throughholon_storage_persist(PublishRoot). The rejection tests moved to the probe conductor and were renamedto say they prove peer-authored Integrity enforcement rather than public-ingress behavior. The
AllHolonNodesdelete test's setup now comes fromPublishRoot, not raw authoring.Not changed.
get_holon_node_by_pathkeeps its behavior and itslegacy_ingressclassification;its disposition is a separate read-contract decision. LocalHolonSpace uniqueness, conflict,
replacement, discovery, and newest-link selection are untouched.
Rebased onto post-SL5
main#636 and #637 landed first, so this branch was rebased onto them. Two resolutions are worth calling out
for reviewers:
guest_holon_service.rsimport block — 630 -Storage SL4 — Retire the legacy SmartLink facade #636 rewrote the same block for its retrieval changes.Purely textual; the two sets of body edits do not overlap.
HolonNodeUpdatescoverage was deleted, not migrated. 631 - SL5 - retire revision indexes #637 removed the variant fromLinkTypesand left behind a test that proved the type's unreachability by naming it at thecreate_path_to_holon_nodeingress. Once no production ingress accepts a caller-selectedLinkTypes,there is no wire surface left to refuse the retired name, so that property is unstatable as a runtime
test. It is now proven structurally instead — the variant is absent from the enum, and the artifact
audit proves no export accepts one. The test, this branch's
holon_node_updates_author_create_for_testprobe, and its manifest row all went with it.
Because #637 renumbered
LinkTypes, the DNA hash changed; artifacts are rebuilt on this branch.Testing
Verified on the rebased branch:
npm run fmt:check,npm run check, andcargo check --manifest-path tests/sweetests/Cargo.toml --all-targets.The Nix-gated suite —
npm run test:unit,npm run build:happ,npm run build:probes -w map-happ,npm run check:happ-artifacts,npm run sweetest— is being re-run post-rebase.The artifact audit is the real proof of removal: the manifest row is gone, so a surviving export would
fail its bidirectional inventory diff as unexpected, and it reads WASM out of the packed DNA and hApp
rather than a Cargo target.