From 4ccadb0b38d85a546cd01592d875cc5154d7a2ee Mon Sep 17 00:00:00 2001 From: rcourtman Date: Fri, 12 Jun 2026 16:03:34 +0100 Subject: [PATCH] Register shared form textarea governance --- .../v6/internal/subsystems/agent-lifecycle.md | 5 + .../v6/internal/subsystems/alerts.md | 7 ++ .../v6/internal/subsystems/cloud-paid.md | 5 + .../subsystems/frontend-primitives.md | 8 ++ .../scripts/shared-template-registry.json | 85 +++++++++++++++ .../Alerts/EmailProviderSelect.test.tsx | 9 ++ .../components/Alerts/EmailProviderSelect.tsx | 43 ++++---- .../Alerts/IncidentTimelinePanel.tsx | 8 +- ...holdsTableDockerIgnoredPrefixesSection.tsx | 8 +- .../components/Alerts/WebhookConfigForm.tsx | 43 ++++---- .../Infrastructure/ReportMergeModal.tsx | 23 ++-- .../Settings/AgentProfilesPanel.tsx | 27 ++--- .../SelfHostedCommercialRecoverySection.tsx | 38 +++---- .../Settings/SuggestProfileModal.tsx | 11 +- .../__tests__/ProLicensePanel.test.tsx | 2 + .../components/shared/FormTextarea.test.tsx | 81 ++++++++++++++ .../src/components/shared/FormTextarea.tsx | 82 ++++++++++++++ .../SharedPrimitives.guardrails.test.ts | 100 ++++++++++++++++++ .../AlertAppriseDestinationsSection.tsx | 32 +++--- 19 files changed, 504 insertions(+), 113 deletions(-) create mode 100644 frontend-modern/src/components/shared/FormTextarea.test.tsx create mode 100644 frontend-modern/src/components/shared/FormTextarea.tsx diff --git a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md index c2ab3936d0..70b6adae3f 100644 --- a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md +++ b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md @@ -482,6 +482,11 @@ Agent profile management tables follow that same presentation boundary: profile and assignment columns, but embedded table framing must route through `PulseDataGrid`'s shared frame variants instead of lifecycle-local `overflow-x-auto` or side-border wrappers. +Agent profile prompt and description textareas follow the same shared primitive +boundary. `AgentProfilesPanel.tsx` and `SuggestProfileModal.tsx` may own agent +profile lifecycle behavior and API mutations, but multi-line form controls in +those surfaces must compose `FormTextarea` instead of local raw `