refactor(agent): model finalized publish author selection explicitly - #2541
Open
branarakic wants to merge 16 commits into
Open
refactor(agent): model finalized publish author selection explicitly#2541branarakic wants to merge 16 commits into
branarakic wants to merge 16 commits into
Conversation
…1-upstream # Conflicts: # packages/agent/README.md
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.
VM publish options could combine an authoritative author override with a caller hint or resident-author selection. The exported
PublishAuthorSelectionmakes those choices exclusive for the nested SDK API and is shared by immediate publishing, queued intents, and daemon routes.Omitting the selection uses the node identity as the caller hint. Deprecated flat options remain supported, including optional-string annotations and released empty-field behavior. Conflicting nested/flat combinations fail before lookup. An authoritative override conflicts with any supplied resident selector, including empty or null values.
A pure compatibility parser snapshots the public identity fields into a typed plan. Exhaustive resolution chooses the authoritative author, caller-preferred resident author, or explicit resident author and returns the enqueue caller separately. The released deep resolver adapts its legacy fields into the same typed resident-selection contract. One canonical store resolver owns candidate discovery and selection; malformed selectors retain the existing not-resident error and candidate list.
Enqueue captures the subgraph before lookup and uses that same coordinate for seal/head validation and request construction. Later option mutations cannot change the queued author, caller, or scope. Explicit resident publishing fails when the coordinate is not finalized; the released deep resolver preserves its undefined result for invalid names.
Normalization and canonical resolution remain behind the blocked
dist/internal/*package boundary. The released deep resolver reads only its declared legacy fields. Daemon routes emit nested selections and retain the caller separately through registration retries. The README documents the additive migration.Closes #1781.
Validation: