Repository navigation
Authority scopes that pass validation compile to no authority_scope_addresses #1503
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Problem
Validation and compilation resolve a behavior's authority_scope_refs through different indexes, and the compiler drops any ref it cannot resolve to exactly one address without a diagnostic (dev a4357f9a):
_runtime_addresses_for_refs(raes_processor/compiler/alias_index.py:139-149) keeps a ref only whenaddressable_ref_indexmaps it to exactly one address (:147-148). Refs with no match or with several matches are skipped._compile_behavior_specificationsuses it forauthority_scope_addresses(raes_processor/compiler/participant_behaviors.py:295-298)._add_node_aliases(alias_index.py:29-43) gives a node a bare alias (:32) and gives each of its services a bare alias too (:41). When nodewebdeclares a service namedweb, the bare refwebmaps to two addresses and is dropped. The declaration index that validation uses gives service names no bare alias, so validation resolveswebto the node and accepts it._runtime_addressable_ref_index(alias_index.py:83-89) deliberately omits semantic-only anchors, so an authority scope that names a participant, an organization or a relationship (agents.blue,entities.organdrelationships.linkin the feat!: make reference eligibility explicit per purpose and align the editor with validation #1446 test fixture) validates, stays in the compiledauthority_scope_refs, and yields noauthority_scope_addresses.
In both cases the scenario passes validation and compiles with no diagnostic, and the runtime receives a narrower authority scope than the author wrote. #1446 (for #1339) records both as pre-existing gaps, unchanged from dev. #220 covers cross-stage participant conformance in general terms but names neither case.
Scope
- Make validation and compilation agree on the bare-name case: validation refuses a bare authority scope that the compiler finds ambiguous, or the compiler resolves it as validation does.
- For participant, organization and relationship scopes, either report at validation or compilation that they yield no runtime address, or record in
specs/sdl/references.mdthat such a scope constrains only the semantic record and has no runtime address. - Report an authority scope ref that compiles to no address instead of dropping it silently, unless the reference catalog records that it has none.
Done when
- A scenario with node
weband servicewebeither fails validation for the bare authority scopeweb, or compiles it to the address validation resolved. - Participant, organization and relationship authority scopes are either reported or documented as carrying no runtime address, and a test pins the chosen behavior.
- No validated authority scope ref is dropped from
authority_scope_addresseswithout a diagnostic or a documented rule.
Related
- Make target eligibility explicit and align editor suggestions #1339, feat!: make reference eligibility explicit per purpose and align the editor with validation #1446 (noted the gap)
- Complete participant conformance coverage, including identity boundaries (ASR-507) #220 (participant conformance coverage)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
fix(processor): compile authority scopes from the declaration validat…
chore(research): record research captures for issue #1503