docs(server): ManagerResolver nearest-ancestor contract + proto role-comment sweep (RIG-3080) - #805
Merged
mattwilkinsonn merged 2 commits intoAug 31, 2026
Conversation
|
Compass engineering docs preview: https://compass-server-rig-3080-mana.compass-eng-docs.pages.dev Deployed from |
…comment sweep (RIG-3080) Taxonomy T7 from the frozen manager-role-taxonomy record (RIG-3066). Two doc/spec surfaces drift under the three-role taxonomy and are corrected here before an implementer codes against them; both are comment-only and regen-neutral. - `go/internal/linearagent/routing.go`: the `ManagerResolver` seam doc said the tree walk goes "up parent_agent_id to a role=\"manager\" agent". Under the taxonomy that is wrong twice — a `manager`-only filter skips an `owner` parent (routing a domain-owned artifact past its owning tier), and every tree node is now Manager-class so the filter is vestigial. Reworded to the nearest tree ancestor (any Manager-class role). Only the interface + test fakes exist today (`NewResolver` is called only from tests), so this prevents a future implementer hardcoding `role==\"manager\"`. - `proto/compass/v1/compass.proto`: the `role` field comment said "operator-set role". After T1 the label is spawner-selected from the closed taxonomy and server-validated; the provision field stays server-authoritative (populated from the stored role, overwrites client-supplied). Swept the comment to match the T1 invariant. Verified: gofmt clean; go build ./internal/linearagent/... exit 0; go test ./internal/linearagent/... ok (routing fakes green); proto diff is comment-only (regen-neutral, confirmed no non-comment line changed). Refs RIG-3080 Co-authored-by: Matt Wilkinson <matt@rigel.build> jj-hooks: autofixes for compass-server/rig-3080-managerresolver-contract
Review-loop polish on the ProvisionAgentWorkspaceRequest.role doc comment (three low-severity findings): reflow so "INVALID_ARGUMENT on an unknown label" is not split mid-phrase; use the Connect-canonical INVALID_ARGUMENT spelling instead of the Go-flavored CodeInvalidArgument (the comment generates into both Go and TS clients); and spell out that a role is required at spawn while the provision wire field stays optional (an empty stored role yields the default block-0), reconciling with the trailing "empty" clause. Comment-only + regen across all gen trees; no wire/field change. Refs RIG-3066 Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-server/rig-3080-managerresolver-contract
branch
from
August 31, 2026 20:35
2845fb9 to
48a26e3
Compare
mattwilkinsonn
approved these changes
Aug 31, 2026
mattwilkinsonn
deleted the
compass-server/rig-3080-managerresolver-contract
branch
August 31, 2026 21:00
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.
This PR is part of a stack containing 2 PRs:
mainTaxonomy T7 from the frozen manager-role-taxonomy record (RIG-3066). Two
doc/spec surfaces drift under the three-role taxonomy and are corrected here
before an implementer codes against them; both are comment-only and
regen-neutral.
go/internal/linearagent/routing.go: theManagerResolverseam doc saidthe tree walk goes "up parent_agent_id to a role="manager" agent". Under
the taxonomy that is wrong twice — a
manager-only filter skips anownerparent (routing a domain-owned artifact past its owning tier), and every tree
node is now Manager-class so the filter is vestigial. Reworded to the nearest
tree ancestor (any Manager-class role). Only the interface + test fakes exist
today (
NewResolveris called only from tests), so this prevents a futureimplementer hardcoding
role==\"manager\".proto/compass/v1/compass.proto: therolefield comment said"operator-set role". After T1 the label is spawner-selected from the closed
taxonomy and server-validated; the provision field stays server-authoritative
(populated from the stored role, overwrites client-supplied). Swept the
comment to match the T1 invariant.
Verified: gofmt clean; go build ./internal/linearagent/... exit 0; go test
./internal/linearagent/... ok (routing fakes green); proto diff is comment-only
(regen-neutral, confirmed no non-comment line changed).
Refs RIG-3080
Co-authored-by: Matt Wilkinson matt@rigel.build
jj-hooks: autofixes for compass-server/rig-3080-managerresolver-contract