Skip to content

feat(proto): canonical Issue/PullRequest type family + SubscribeEvents variant (SEA-1727 S1a) - #145

Merged
mattwilkinsonn merged 1 commit into
mainfrom
compass-repo-1727-issue-pr-model
Aug 5, 2026
Merged

feat(proto): canonical Issue/PullRequest type family + SubscribeEvents variant (SEA-1727 S1a)#145
mattwilkinsonn merged 1 commit into
mainfrom
compass-repo-1727-issue-pr-model

Conversation

@seal-agent

@seal-agent seal-agent commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

SEA-1727 — S1a proto: canonical Issue/PullRequest type family + SubscribeEvents variant (read contract)

Proto half of S1 of the frozen compass-issue-model record (#1018, Active), reconciled by the two Active sibling amendments (compass-server-ownership-layer-amendment: single canonical wire family, no raw forge shape on the wire; compass-attribution-simplification: attribution is a plain display fact). The forge/tracker integration contract for the dogfood cut. Gates S1b (compass-server, SEA-1728) and S1c (compass-ui, SEA-1729) on the read path.

Proto-only. Authored by compass-repo (sole proto writer).

Scope note — write path deferred (Matt, 2026-08-04)

This PR ships the read contract only. Matt ruled the issue-state write model is agent-primary: the UI is read-only for issue state, agents drive the board lifecycle, and users change issue state via the issue tracker, not Compass. That amends the frozen record's DL-031 (board was human-primary) and DL-032 (tracker was a downstream projection) and is pending a design amendment before any write surface ships. So the UpdateIssueState RPC that the frozen record specified is NOT in this PR — it is held for the amendment (which will place an agent-facing lifecycle path on AgentGateway, not CompassService, since egress-sealed agents cannot reach CompassService). The type family + read path here are needed under any write model, so they land now to unblock S1b/S1c.

What's in it

proto/compass/v1/compass.proto:

  • Canonical type family: Issue (18 fields), PullRequest (15), IssueState enum (UNSPECIFIED..ARCHIVED, 0-8), AgentAttribution, ForgeProvider/ForgeRef, ChecksSummary/Check, ChangedStats, TrackerRef, Review/ReviewThread/Comment.
  • Issue issue = 16 variant on the SubscribeEventsResponse oneof — the read/delivery surface; canonical objects reach the UI as snapshot + live fan-out off the server projection (design.md:349-450). Only Issue (PRs nest in Issue.prs = 17).
  • AgentAttribution is the slimmed shape per compass-attribution-simplification (DL-094): { string agent_handle = 1; reserved 2, 3; reserved "owner_handle", "verified"; }.
  • Field numbers/names/types byte-faithful to the frozen design.md as amended; ledger ids cited in comments (DL-032/033/050/051/069/091/094).

Verification

  • compass-proto:ci 5-green: buf lint (STANDARD; ENUM_ZERO_VALUE_SUFFIX armed — both enums carry _UNSPECIFIED = 0), buf breaking (additive-only), gen drift (regen matches committed), gen-fence (canonical types are public — correctly unfenced).
  • compass-go:test all packages OK (no classifier tripwire — no new RPC on the gated services).
  • compass-client:ci (22 pass + typecheck), compass-agent:typecheck green.
  • Review loop (skill://review): clean pass on the type family, 0 high / 0 medium.

Sequencing

S1a (this, read contract) → S1b (SEA-1728, server ingestion/projection over the read types) → S1c (SEA-1729, UI reads the board). The agent-primary write path follows in a design amendment.

Refs SEA-1727.

@linear-code

linear-code Bot commented Aug 4, 2026

Copy link
Copy Markdown

SEA-1727

@seal-agent
seal-agent force-pushed the compass-repo-1727-issue-pr-model branch from 377af56 to 6588bb4 Compare August 5, 2026 00:58
@seal-agent seal-agent changed the title feat(proto): canonical Issue/PullRequest type family + UpdateIssueState RPC (SEA-1727) feat(proto): canonical Issue/PullRequest type family + SubscribeEvents variant (SEA-1727 S1a) Aug 5, 2026
…s variant (SEA-1727)

S1a read contract: the canonical Issue/PullRequest type family, IssueState enum, and the SubscribeEventsResponse.issue oneof variant. Per Matt (2026-08-04) the issue-state WRITE path is agent-primary (UI read-only), pending a design amendment, so no UpdateIssueState RPC ships here.

Refs SEA-1727
@seal-agent
seal-agent force-pushed the compass-repo-1727-issue-pr-model branch from 6588bb4 to 8f4a276 Compare August 5, 2026 01:25
@mattwilkinsonn
mattwilkinsonn merged commit abdb412 into main Aug 5, 2026
1 check passed
@mattwilkinsonn
mattwilkinsonn deleted the compass-repo-1727-issue-pr-model branch August 5, 2026 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants