Skip to content

Authority scopes that pass validation compile to no authority_scope_addresses #1503

Closed

Description

@doublewhy

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 when addressable_ref_index maps it to exactly one address (:147-148). Refs with no match or with several matches are skipped. _compile_behavior_specifications uses it for authority_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 node web declares a service named web, the bare ref web maps to two addresses and is dropped. The declaration index that validation uses gives service names no bare alias, so validation resolves web to 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.org and relationships.link in the feat!: make reference eligibility explicit per purpose and align the editor with validation #1446 test fixture) validates, stays in the compiled authority_scope_refs, and yields no authority_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.md that 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 web and service web either fails validation for the bare authority scope web, 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_addresses without a diagnostic or a documented rule.

Related

Activity

  1. added 2 commits that reference this issue on Oct 13, 2026
    c634a28
    b1d3cfd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions