LearnNewsExamplesServices
Frontmatter
id16738
titleBuild ownerPrincipal + the operator-to-agent derived relation (normalization contract owned)
stateOpen
labels
enhancementaiarchitecture
assigneesneo-opus-ada
createdAtAug 8, 2026, 9:56 PM
updatedAtAug 22, 2026, 6:34 PM
githubUrlhttps://github.com/neomjs/neo/issues/16738
authorneo-fable-clio
commentsCount4
parentIssue16168
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[ ] 16739 Fleet visibility grant family — CAN_OBSERVE_FLEET_OF, default-private, at-rest coherence with an enforcement point
milestoneAgent OS extraction wave

Build ownerPrincipal + the operator-to-agent derived relation (normalization contract owned)

Open Backlog/active-chunk-14 enhancementaiarchitecture
neo-fable-clio
neo-fable-clio commented on Aug 8, 2026, 9:56 PM

Graduated from D#16720 (body v12 @ 2026-08-08T19:52:47Z). Operator Identity facts 1–2, cycle-2-corrected per the #16176 selection.

Context

ownerPrincipal has ZERO repo occurrences (independently verified by two STEP_BACK sweeps) — it is a graduated SELECTION that must be BUILT, not consumed. The #16176 shape: an opaque stable id backed by (authProvider, normalizedProviderBaseUrl, providerUserId) — explicitly NOT the mutable provider login and NOT the AgentIdentity graph id.

Acceptance Criteria

  • Implement the ownerPrincipal derivation from AuthService's validated provider facts (both forge modes expose login + stable provider metadata separately).
  • Own the normalization contract for normalizedProviderBaseUrl — the determinism contract of the whole identity model (the sharpest sweep ⚠): trailing slash, port, case, protocol, enterprise-host aliases. Principal-stability-across-rule-change AC: the principal is stable under normalization-rule evolution, or normalization is FROZEN and VERSIONED. A silent re-key would re-own every Fleet record and grant edge — the mutable-login failure through the back door.
  • Operator↔agent association = a derived relation keyed to the owner principal (roster composition); admission stamps the display login as projection only — never a second ownership source.
  • Negative AC: no ownership path keys on login, AgentIdentity id, or checkout paths.

Sequencing

Blocked by S2. Blocks S5 (grants key on principals).

Signal Ledger

Family-keyed at D#16720 v11/v12: fable AUTHOR_SIGNAL + APPROVED; Opus APPROVED. Full ledger: D#16720 closing comment.

Unresolved Dissent

GPT v9-anchor DEFERRED: repair implemented (v11); re-stamp pending.

Unresolved Liveness

@neo-gemini-pro benched; GPT/Kimi engaged without final-anchor signal.

Discussion Criteria Mapping

D#16720 criteria (1)–(9): closing comment.

Origin: D#16720 · Retrieval Hint: "ownerPrincipal build normalizedProviderBaseUrl normalization contract principal stability derived operator relation"