## Summary - implement Spec 192 across the targeted Filament record, detail, and edit pages with explicit action-surface inventory and guard coverage - add the focused Spec 192 browser smoke, feature tests, and spec artifacts under `specs/192-record-header-discipline` - improve unhandled promise rejection diagnostics by correlating 419s to the underlying Livewire request URL - disable panel-wide database notification polling on the admin, tenant, and system panels and cover the mitigation with focused tests ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/DatabaseNotificationsPollingTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/DatabaseNotificationsPollingTest.php tests/Feature/Filament/UnhandledRejectionLoggerAssetTest.php tests/Feature/Filament/FilamentNotificationsAssetsTest.php tests/Feature/Workspaces/ManagedTenantsLivewireUpdateTest.php tests/Feature/Filament/AdminSmokeTest.php` - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - manual integrated-browser verification of the Spec 192 surfaces and the notification-polling mitigation ## Notes - Livewire v4 / Filament v5 compliance remains unchanged. - Provider registration stays in `bootstrap/providers.php`. - No Global Search behavior was expanded. - No destructive action confirmation semantics were relaxed. - The full test suite was not run in this PR. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #226
6.2 KiB
6.2 KiB
Quickstart: Record Page Header Discipline & Contextual Navigation
Goal
Bring the in-scope record/detail/edit surfaces under one bounded header-action discipline: one clear next step on standard pages, contextual navigation near related content and outside the header, grouped secondary actions for non-navigation actions, separated danger, and one explicit workflow-heavy exception.
Implementation Sequence
-
Confirm the in-scope inventory in code.
- Map each in-scope page class to the Spec 192 classification.
- Confirm which pages are remediation-required, minor-alignment only, compliant reference, or workflow-heavy special type.
-
Remediate the standard pages first.
- Refactor
ViewBaselineProfileto expose only one visible primary action based on snapshot readiness. - Refactor
ViewEvidenceSnapshotso run and review-pack navigation move to contextual placement outside the header andExpire snapshotremains separated. - Refactor
ViewFindingExceptionso navigation moves to contextual placement outside the header,Renew exceptionmay remain primary, andRevoke exceptionstays isolated. - Refactor
ViewTenantReviewso only one lifecycle action is primary, navigation becomes contextual outside the header, and infrequent lifecycle actions stay grouped. - Refactor
EditTenantso the header stops competing with the edit task and view/onboarding links move into contextual tenant-meta placement.
- Refactor
-
Tighten the explicit exception and minor-alignment pages.
- Audit
ViewTenantas the workflow-heavy special type and order its grouped actions deliberately. - Review
ViewProviderConnectionandViewFindingfor minor alignment only, and change them only if the audit proves real header noise. - Confirm that
ViewBaselineSnapshot,ViewBackupSet,ViewReviewPack,ViewAlertDestination,ViewPolicyVersion, andViewWorkspaceremain valid references.
- Audit
-
Add regression protection.
- Extend the existing action-surface guard or exemption mapping with Spec 192 expectations.
- Add focused Livewire/Pest page tests for remediated surfaces.
- Add one browser smoke suite covering the remediated pages, the explicit special-type exception, and a no-regression baseline over the compliant reference set.
- Add explicit regression checks that this feature does not force Spec 133 body-layout rollout and does not expand confirmation depth, reason capture, or provider-dispatch semantics.
-
Run focused verification.
- Run the guard tests, the remediated page tests, the browser smoke suite, and formatting through Sail.
Suggested Source Files
apps/platform/app/Filament/Resources/BaselineProfileResource/Pages/ViewBaselineProfile.phpapps/platform/app/Filament/Resources/EvidenceSnapshotResource/Pages/ViewEvidenceSnapshot.phpapps/platform/app/Filament/Resources/FindingExceptionResource/Pages/ViewFindingException.phpapps/platform/app/Filament/Resources/TenantReviewResource/Pages/ViewTenantReview.phpapps/platform/app/Filament/Resources/TenantResource/Pages/EditTenant.phpapps/platform/app/Filament/Resources/TenantResource/Pages/ViewTenant.phpapps/platform/app/Filament/Resources/ProviderConnectionResource/Pages/ViewProviderConnection.phpapps/platform/app/Filament/Resources/FindingResource/Pages/ViewFinding.phpapps/platform/app/Support/Ui/ActionSurface/ActionSurfaceValidator.phpapps/platform/app/Support/Ui/ActionSurface/ActionSurfaceExemptions.php
Suggested Test Files
apps/platform/tests/Feature/Guards/ActionSurfaceContractTest.phpapps/platform/tests/Feature/Guards/ActionSurfaceValidatorTest.phpapps/platform/tests/Feature/Guards/FilamentTableStandardsGuardTest.phpapps/platform/tests/Feature/Filament/BaselineProfileCaptureStartSurfaceTest.phpapps/platform/tests/Feature/Filament/BaselineProfileCompareStartSurfaceTest.phpapps/platform/tests/Feature/Filament/TenantViewHeaderUiEnforcementTest.phpapps/platform/tests/Browser/Spec174EvidenceFreshnessPublicationTrustSmokeTest.phpapps/platform/tests/Browser/Spec190BaselineCompareMatrixSmokeTest.phpapps/platform/tests/Browser/Spec192RecordPageHeaderDisciplineSmokeTest.php
Minimum Verification Commands
Run all commands through Sail from apps/platform.
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceContractTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceValidatorTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/BaselineProfileCaptureStartSurfaceTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/BaselineProfileCompareStartSurfaceTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/TenantViewHeaderUiEnforcementTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec192RecordPageHeaderDisciplineSmokeTest.php
cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent
Manual Acceptance Checklist
- Open each remediated standard page and confirm the header shows at most one visible primary action.
- Confirm pure navigation is no longer presented as an equal-weight peer to the primary mutation on remediated pages and now lives in contextual placement outside the header.
- Confirm rare administrative actions live in a grouped secondary structure instead of a flat peer row.
- Confirm destructive or governance-sensitive actions remain visually separated and keep confirmation.
- Confirm the tenant edit page still reads as an edit surface first.
- Confirm the tenant admin resource view stays grouped and ordered as an explicit workflow-heavy exception.
- Confirm compliant reference pages do not regress or receive unnecessary cosmetic churn.
- Confirm browser smoke checks show no JavaScript errors on the remediated pages, the workflow-heavy exception page, and the compliant reference baseline pages.
Deployment Notes
- No migration is expected.
- No new provider registration is expected; Laravel 11+ provider registration remains in
bootstrap/providers.php. - No new asset registration is expected. Existing deploy handling of
cd apps/platform && php artisan filament:assetsremains sufficient.