Stabilize schema-backed Dance invocation and loader UX for Issue 652 and Issue 653 - #654
Merged
evomimic merged 2 commits intoAug 20, 2026
Conversation
- update Dance schema to use DanceName, RequestType, InvocationSource, and affording-holon based resolution - make DanceAffordedBy the declared affordance relationship and AffordsDance its inverse - remove obsolete synthetic Commit/Delete dance paths from command runtime tests - expose dance and command affordance lookup helpers on ReadableHolon - regenerate Dance and Query-Dance schema imports - update Sweettest expectations for renamed relationships and new generated counts - improve JSON uploader handling for duplicate schema filenames and directory uploads - show qualified relative paths for directory-selected schema files - harden loader result display for load-error responses
Rename the shared AffordedBy inverse relationship used by Core value operators and Validation rule operators into distinct schema-backed names: ValueTypeAffordedBy and ValidationRuleAffordedBy. This avoids ambiguous inverse relationship traversal on OperatorType while preserving the existing forward AffordsOperator relationship name in both schemas. Also update the CoreRelationshipTypeName enum, OperatorDescriptor::afforded_by(), regenerate the JSON imports, and add regression coverage for resolving both operator inverse affordance names independently.
This was
linked to
issues
Aug 20, 2026
Owner
Author
ApproveReviewed PR #654 at The revised #652 scope matches the implementation: name-addressed Dance invocation, generic schema-backed Dance affordances, effective-descriptor lookup APIs, and deferred structural validation. Issue #653’s source-qualified operator inverse names, generated imports, value-oriented lookup, and ambiguity regression coverage are also complete. All CI checks are passing ( |
8 tasks
evomimic
deleted the
652-dance-pr2-cut-over-to-name-addressed-schema-backed-invocation
branch
August 20, 2026 13:34
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.
Summary
This PR implements the smaller Dance-schema slice for #652 and folds in the corpus fix for #653.
The main outcome is a clean cutover toward name-addressed, schema-backed invocation without expanding this PR into the full DAHN → TS SDK → Commands → Dance vertical slice. Commands and TS SDK vertical-slice work remain separable, while the schema/runtime foundations are now aligned for Dances and Commands to be discovered and invoked by schema-backed names.
Changes
#652: Dance schema-backed invocation foundation
#653: Qualify operator affordance inverse names
AffordedByinverse relationship used by two differentAffordsOperatordeclarations:ValueTypeAffordedBy.ValidationRuleAffordedBy.AffordsOperatorin both schemas.CoreRelationshipTypeNamevariants for the new inverse names.OperatorDescriptor::afforded_by()to followValueTypeAffordedBy.Testing
npm test: nominal.npm start: nominal.npm run map-schema:compile:coreschemanpm run map-schema:check:coreschemacargo test --manifest-path tools/map-schema/Cargo.toml --libcargo test --manifest-path shared_crates/holons_core/Cargo.toml --libcargo test --manifest-path shared_crates/type_system/type_names/Cargo.toml --libgit diff --checkNotes for reviewers
schema-src/; they were not hand-edited.