{{- /* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial */ -}} {{- /* SPDX-FileCopyrightText: 2025-2026 Christian Galo */ -}} {{ if .Error }} {{ end }} {{ template "pageHeader" .Header }} {{ if .Policy.ClaimWindow }} {{ template "sectionHeader" .PolicyHeader }}

Name policy governs carving inside operator roots only: reserved, blocked, and premium labels are seed data with no settings page. External claims are governed separately, by verification and the abuse apparatus these numbers describe.

Verification window
{{ .Policy.ClaimWindow }}
Pending claims per organization
{{ .Policy.PendingCap }}
New claims per organization per day
{{ .Policy.InitiationBudget }}
Abandonment scope budget
{{ .Policy.AbandonBudget }}
Abandonment window
{{ .Policy.AbandonWindow }}
Abandonment scope width (labels)
{{ .Policy.ScopeLabels }}

Abandonments count against the whole scope root and everything beneath it. Verifying a name clears only that name's own subtree.

{{ end }} {{ if eq (len .Claims) 0 }} {{ if .Nav.Filtered }} {{ template "listControls" .Nav }} {{ template "listNoMatch" .Nav }} {{ else }} {{ template "emptyState" .NoClaims }} {{ end }} {{ else }} {{ template "listControls" .Nav }}
{{ range .Claims }} {{ end }}
Domain Kind Status Organization Age Placements Actions
{{ .Root }} {{ template "statusBadge" .KindBadge }} {{ template "statusBadge" .StatusBadge }} {{ .OrgName }} {{ .Age }} {{ .Placements }} {{ if .Releasable }} {{ end }} {{/* A placed claim gets no button: the registry's placement guard would refuse the release (a name in use is freed by removing its sites, not from here), and a control the server always refuses is a dead-end affordance. It gets no text either: the Placements column already carries the count that says why (chrome-conventions "A verb-less row leaves its Actions cell empty"; the "in use" note left 2026-09-19). The operator-root row (neither releasable nor placed via a member claim) likewise gets no filler text (maintainer, sheet pass: "Domains: same ['operator root']" as Grants' empty Actions cells): the Kind column already carries that fact. */}}
{{ template "listPager" .Nav }} {{ end }} {{ template "sectionHeader" .PlacementsHeader }} {{ if eq (len .Placements) 0 }} {{ template "emptyState" .NoPlacements }} {{ else }}
{{ range .Placements }} {{ end }}
Name Provider Resource State
{{ .Name }} {{ .Provider }} {{ .ResourceRef }} {{ template "statusBadge" .StateBadge }}
{{ end }} {{ template "sectionHeader" .HistoryHeader }} {{ if eq (len .TerminalClaims) 0 }} {{ template "emptyState" .NoHistory }} {{ else }}
{{ range .TerminalClaims }} {{ end }}
Domain Kind Status Organization Age Evidence Outcome
{{ .Root }} {{ template "statusBadge" .KindBadge }} {{ template "statusBadge" .StatusBadge }} {{ .OrgName }} {{ .Age }} {{ if .Evidence }}{{ template "statusBadge" .EvidenceBadge }} {{ else }}{{ end }} {{ if .Outcome }}{{ .Outcome }} {{ else }}{{ end }}
{{ end }}