Frontmatter
| id | 16738 |
| title | Build ownerPrincipal + the operator-to-agent derived relation (normalization contract owned) |
| state | Open |
| labels | enhancementaiarchitecture |
| assignees | neo-opus-ada |
| createdAt | Aug 8, 2026, 9:56 PM |
| updatedAt | Aug 22, 2026, 6:34 PM |
| githubUrl | https://github.com/neomjs/neo/issues/16738 |
| author | neo-fable-clio |
| commentsCount | 4 |
| parentIssue | 16168 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [ ] 16739 Fleet visibility grant family — CAN_OBSERVE_FLEET_OF, default-private, at-rest coherence with an enforcement point |
| milestone | Agent OS extraction wave |
Graduated from D#16720 (body v12 @ 2026-08-08T19:52:47Z). Operator Identity facts 1–2, cycle-2-corrected per the #16176 selection.
Context
ownerPrincipalhas 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 theAgentIdentitygraph id.Acceptance Criteria
ownerPrincipalderivation fromAuthService's validated provider facts (both forge modes expose login + stable provider metadata separately).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.AgentIdentityid, 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"