Commit Graph

66 Commits

Author SHA1 Message Date
rcourtman 5f9f3b0cbf Allow i18n catalog in platform audit 2026-06-12 23:54:04 +01:00
rcourtman 3e05c537f8 Converge loading spinners on shared primitive 2026-06-12 23:51:01 +01:00
rcourtman ffb80c805b Converge settings callouts on shared primitive 2026-06-12 22:38:16 +01:00
rcourtman 5c338862f0 Converge metadata badges on shared primitive 2026-06-12 22:22:27 +01:00
rcourtman 1708db68a0 Canonicalize Patrol badge primitives 2026-06-12 21:23:02 +01:00
rcourtman 94a2b7dc37 Canonicalize Patrol run-history badges 2026-06-12 21:01:20 +01:00
rcourtman 131cc2702b Canonicalize organization metadata badges 2026-06-12 20:45:27 +01:00
rcourtman 3f63266964 Canonicalize upgrade action links 2026-06-12 20:24:46 +01:00
rcourtman 480076609e Canonicalize compact settings buttons 2026-06-12 19:54:57 +01:00
rcourtman 36f9cf11c4 Canonicalize reporting success buttons 2026-06-12 19:41:01 +01:00
rcourtman 39585aa65a Canonicalize ResourcePicker controls 2026-06-12 19:22:05 +01:00
rcourtman e6e323c342 Canonicalize inline detail sections 2026-06-12 19:04:12 +01:00
rcourtman e27b981701 Canonicalize copy value controls 2026-06-12 18:37:07 +01:00
rcourtman efdf6acd13 Canonicalize settings action buttons 2026-06-12 18:16:15 +01:00
rcourtman 4d5ee10ef7 Canonicalize command copy buttons 2026-06-12 18:02:23 +01:00
rcourtman c57993adb9 Canonicalize settings dialog close buttons 2026-06-12 17:48:28 +01:00
rcourtman ce2cc8948b Canonicalize compact settings row actions 2026-06-12 17:40:28 +01:00
rcourtman 60f153611b Broaden shared Button settings governance 2026-06-12 17:31:46 +01:00
rcourtman bbdd590a82 Register shared Button primitive governance 2026-06-12 17:13:29 +01:00
rcourtman 6d27522ce4 Broaden shared form select governance 2026-06-12 16:50:40 +01:00
rcourtman 6e81424a59 Register shared status indicator badge governance 2026-06-12 16:35:40 +01:00
rcourtman 7b251f5651 Register shared toggle governance 2026-06-12 16:15:09 +01:00
rcourtman 4ccadb0b38 Register shared form textarea governance 2026-06-12 16:03:34 +01:00
rcourtman 6ca91d47e6 Register shared form select governance 2026-06-12 15:46:56 +01:00
rcourtman 87e19f5101 Register shared status dot governance 2026-06-12 15:25:25 +01:00
rcourtman b4a3fb868d Register shared search control governance 2026-06-12 15:07:50 +01:00
rcourtman 527514fd85 Register table card shell governance 2026-06-12 14:51:14 +01:00
rcourtman 23e65040cc Register filter button group governance 2026-06-12 14:38:43 +01:00
rcourtman 36af6620d3 Register selection card group governance 2026-06-12 14:24:56 +01:00
rcourtman 52928706d9 Register column picker template governance 2026-06-12 14:17:33 +01:00
rcourtman 40af69bdb8 Register chart visibility toggle governance 2026-06-12 14:11:59 +01:00
rcourtman c5afa2e52f Register grouped table mode control governance 2026-06-12 14:06:19 +01:00
rcourtman 77134632e2 Register platform section tabs governance 2026-06-12 14:01:39 +01:00
rcourtman 51ac42870c Canonicalize platform error states 2026-06-12 13:52:53 +01:00
rcourtman 0109361296 Register platform loading template governance 2026-06-12 13:38:05 +01:00
rcourtman f90ae48814 Register FilterBar template governance 2026-06-12 13:29:25 +01:00
rcourtman 1e634709a2 Canonicalize platform table empty states 2026-06-12 13:08:40 +01:00
rcourtman 97bb7035d9 Canonicalize inline detail table rows 2026-06-12 12:55:56 +01:00
rcourtman 43bb0184ba Canonicalize node header web interface links 2026-06-12 12:31:31 +01:00
rcourtman ddb5bd5e1a Canonicalize Proxmox web interface links 2026-06-12 12:22:20 +01:00
rcourtman 2169d94b41 Canonicalize platform row detail toggles 2026-06-12 12:11:50 +01:00
rcourtman d221640086 Retire platform table frame allowlist 2026-06-12 11:36:18 +01:00
rcourtman 6dc931aac6 Migrate host tables onto PlatformTableShell 2026-06-12 11:07:14 +01:00
rcourtman 048db1c91c Enforce shared template registry for platform tables 2026-06-12 10:44:11 +01:00
rcourtman 93420753aa Enforce shared templates for web interface links
Refs #1276
2026-06-12 10:06:01 +01:00
rcourtman 74def6b9ad Canonicalize workload type badges 2026-06-01 11:12:28 +01:00
rcourtman 58a24eeb77 Update header audit for platform-shaped IA
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.
2026-05-27 16:29:06 +01:00
rcourtman ecd44945bc Enforce canonical platform table alignment in pre-push audit
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.
2026-05-20 11:18:29 +01:00
rcourtman 7d7b83bf45 Fix header audit after Dashboard retirement 2026-05-01 20:40:36 +01:00
rcourtman 99129d0c09 Retire product upgrade metrics runtime
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.
2026-04-30 12:24:22 +01:00