Drop the four deleted-page entries (Ceph, Infrastructure, Recovery,
Workloads) from REQUIRED_PAGE_HEADERS since those pages were retired
in the rc.6 IA revert.
Add PlatformSectionTabs to HEADER_PRIMITIVES. The post-rc.6
platform-shaped top-level pages (Proxmox, Docker, Kubernetes,
TrueNAS, Vmware, Standalone) use PlatformSectionTabs from
features/platformPage/sharedPlatformPage as their canonical chrome
rather than PageHeader; the audit was missing this recognition,
causing Docker/Kubernetes/Standalone/TrueNAS to fail with 'must use
at least one shared header primitive' while Proxmox and Vmware
passed only by accidentally reaching SectionHeader through their
WorkloadsSurface->WorkloadsTable->ErrorBoundary import chain.
Adds canonical-platform-table/no-legacy-align-helper to
canonical-platform-audit.mjs: any platform table file that calls the
legacy `getPlatformTableHeadClass(<align>)` or
`getPlatformTableCellClass(<align>)` helper now fails the audit (which
runs in the pre-push hook). Authors are pointed at the kind-based
wrappers and the canonical column-kind file.
Two intentional allowlist entries:
- sharedPlatformPage.tsx: the kind-based wrappers internally delegate
to the align-based helpers; that's the one legitimate call site.
- KubernetesClustersTable.tsx: another agent has this file
mid-staged in their working tree. Removing this entry is part of
that file's migration commit (drop the entry whenever the file
moves to the *ForKind wrappers).
To support per-rule exemptions cleanly, the audit's inner loop now
honours an optional `allowFiles: Set<string>` on each HELPER_RULE
entry. Existing rules are unchanged; only the new rule uses it.
The platformOverviewLayout.guardrails.test.ts assertions are updated
to match the kind-based forms (regex match on the new
getPlatformTableHeadClassForKind('<kind>') ... <label> shape) for the
migrated files. The two Kubernetes Clusters assertions continue to
match the legacy form until that file migrates.
Workspace-level CLAUDE.md and AGENTS.md (at /Volumes/Development/pulse/,
outside this git repo) also got a one-paragraph entry pointing at the
canonical source-of-truth file and the audit rule, so every agent
session that reads those bootstrap files at startup picks up the
convention.
Remove local upgrade-metrics API registration, settings payload wiring, startup store migration, and backend conversion recorder hooks from the normal product runtime.
Delete the retired conversion/funnel and metering packages from compiled licensing code, and extend diagnostics boundary audits and governance contracts so maintainer commercial analytics cannot return through Settings or diagnostics.