Observation-class finding from the axis-③ liveness audit (ledger claims vs measured objectui readers). Filed unassigned for triage; ledger/tombstone verdict vs measured objectui producer disagree — this card does not prescribe which side is right (acknowledging the producer in the ledger row vs dropping the seed/type in the facets is triage's fork).
Audited revisions (E24)
- objectstack
origin/main @ 4ac12ef4cfe4a1925fb7e950c56d7aff0bbc5381
- objectui
origin/main @ 5bfaabde05c3876c9604a2aa47f4822f9e6de8b5
Both read via git fetch + git archive of origin/main, not working trees.
The ledger claim
packages/spec/liveness/permission.json → props.rowLevelSecurity.children.priority (status: "dead", verifiedAt: "2026-07-30"):
evidence: "packages/spec/src/security/rls.zod.ts (retiredKey tombstone — authored values REJECT with the prescription; z.input types the key never)"
note: "REMOVED 2026-07-30 … Not merely unimplemented: under OR-combination the promised 'conflict resolution' semantics cannot exist, so it went straight to the #3715/#3950 remove disposition inside the v17 breaking window."
Measured reality at objectui @5bfaabd
packages/app-shell/src/views/metadata-admin/PermissionAdvancedFacets.tsx:
:49 — the local policy shape still carries the key:
interface RlsPolicy {
name?: string;
object?: string;
operation?: string;
using?: string;
check?: string;
enabled?: boolean;
priority?: number;
}
:368 — the "Add policy" button seeds it on every new policy:
setPolicies([
...policies,
{ name: '', object: '*', operation: 'all', using: '', enabled: true, priority: 0 },
])
:30-39 docblock says the facets are "persisted by the editor's existing whole-record Save" and that "Shapes mirror the framework spec (sampled from live data): RLS policies {name,object,operation,using,check,enabled,priority}" — a mirror sampled before the 2026-07-30 removal. No priority strip was found on the facets' save path (grep for priority in the file yields only the three sites above; a scrub elsewhere on the save pipeline was not measured).
Why it matters
The tombstone's contract is "authored values REJECT". The Studio facets author the key on every policy added through the UI, so a permission saved after using the structured RLS editor carries a parse-rejected key. This is the same producer/tombstone shape as the axis-③ specimen objectui#3901, but on the write path rather than a dormant read.
Dedup
- Org-wide open-issue searches for
rowLevelSecurity priority and PermissionAdvancedFacets return nothing.
- The ledger's own 2026-07-30 correction pass looked at these facets (the sibling
rls.label row cites "PermissionAdvancedFacets edits policies") but recorded no verdict on the priority: 0 seed.
- objectui#3901 is a different key/file; not a dup.
Suggested lane
Cross-lane: spec/security ledger row + objectui metadata-admin (Studio) editor.
Provenance: cross-repo read-only audit, session https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk
Observation-class finding from the axis-③ liveness audit (ledger claims vs measured objectui readers). Filed unassigned for triage; ledger/tombstone verdict vs measured objectui producer disagree — this card does not prescribe which side is right (acknowledging the producer in the ledger row vs dropping the seed/type in the facets is triage's fork).
Audited revisions (E24)
origin/main@4ac12ef4cfe4a1925fb7e950c56d7aff0bbc5381origin/main@5bfaabde05c3876c9604a2aa47f4822f9e6de8b5Both read via
git fetch+git archiveoforigin/main, not working trees.The ledger claim
packages/spec/liveness/permission.json→props.rowLevelSecurity.children.priority(status: "dead",verifiedAt: "2026-07-30"):Measured reality at objectui @5bfaabd
packages/app-shell/src/views/metadata-admin/PermissionAdvancedFacets.tsx::49— the local policy shape still carries the key::368— the "Add policy" button seeds it on every new policy::30-39docblock says the facets are "persisted by the editor's existing whole-record Save" and that "Shapes mirror the framework spec (sampled from live data): RLS policies{name,object,operation,using,check,enabled,priority}" — a mirror sampled before the 2026-07-30 removal. Noprioritystrip was found on the facets' save path (grep forpriorityin the file yields only the three sites above; a scrub elsewhere on the save pipeline was not measured).Why it matters
The tombstone's contract is "authored values REJECT". The Studio facets author the key on every policy added through the UI, so a permission saved after using the structured RLS editor carries a parse-rejected key. This is the same producer/tombstone shape as the axis-③ specimen objectui#3901, but on the write path rather than a dormant read.
Dedup
rowLevelSecurity priorityandPermissionAdvancedFacetsreturn nothing.rls.labelrow cites "PermissionAdvancedFacets edits policies") but recorded no verdict on thepriority: 0seed.Suggested lane
Cross-lane: spec/security ledger row + objectui metadata-admin (Studio) editor.
Provenance: cross-repo read-only audit, session https://claude.ai/code/session_018ffcE95NaMJcL9XJ9VDYgk