## Summary - align the system-panel Operations, Failed operations, and Stuck operations pages to the read-only registry contract by removing inline row triage and keeping row-click inspection - keep retry, cancel, and mark-investigated behavior on the canonical system operation detail page while adding the explicit `Show all operations` return path and updated `Operations / Operation` copy - add and update focused Pest and Livewire coverage for list CTA behavior, detail-owned triage, and view-only versus manage-capable platform access - add Spec 170 implementation artifacts plus the follow-on Spec 171 and Spec 172 packages ## Testing - `vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsTriageActionsTest.php` - `vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceContractTest.php` - `vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsFailuresViewTest.php` - `vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsStuckViewTest.php` - integrated browser smoke on `/system/ops/runs`, `/system/ops/failures`, `/system/ops/stuck`, empty states via search filter, and detail-page retry confirmation visibility ## Notes - branch pushed from `170-system-operations-surface-alignment` - latest commit: `64b4d741 feat: align system operations surfaces` Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #201
3.6 KiB
3.6 KiB
Quickstart: System Operations Surface Alignment
Goal
Bring the system-panel Operations surfaces into conformance with the declared read-only registry contract by removing inline triage from the list rows, standardizing visible naming to Operations / Operation, adding explicit list CTAs, and keeping triage on the canonical operation detail page.
Prerequisites
- Start the local stack:
vendor/bin/sail up -d
- Work on branch
170-system-operations-surface-alignment.
Implementation Steps
- Update the three list pages:
app/Filament/System/Pages/Ops/Runs.phpapp/Filament/System/Pages/Ops/Failures.phpapp/Filament/System/Pages/Ops/Stuck.php
- Remove the
retry,cancel, andmark_investigatedtable actions from each list page. - Keep
recordUrl()row-click navigation intact for each list page. - Update visible navigation labels, headings, empty-state copy, and page CTA behavior so the changed surfaces use
Operations/Operationvocabulary. - Update each list page's
actionSurfaceDeclaration()explanation text so it reflects detail-owned triage rather than row-level triage. - Update
app/Filament/System/Pages/Ops/ViewRun.phpandresources/views/filament/system/pages/ops/view-run.blade.phpso the detail page keeps triage ownership, usesOperation #...copy, and exposesShow all operations. - Leave
app/Services/SystemConsole/OperationRunTriageService.phpunchanged unless a small refactor is needed to support the page move without changing behavior.
Tests To Update
tests/Feature/System/Spec114/OpsTriageActionsTest.php- Replace row-action execution assertions on
Runswith detail-page action visibility/execution assertions onViewRun. - Keep view-only versus manage-capable separation explicit.
- Add assertions for visible
Operations/Operationcopy and theShow all operationsreturn path.
- Replace row-action execution assertions on
tests/Feature/Guards/ActionSurfaceContractTest.php- Replace the three expectations for direct row triage with expectations that the row action set is empty while
recordUrl()still points toSystemOperationRunLinks::view($run). - Assert the list CTA behavior and canonical Operations naming on the changed surfaces.
- Replace the three expectations for direct row triage with expectations that the row action set is empty while
- Keep the existing page-access tests for failures/stuck passing.
Focused Verification
Run the smallest relevant test set first:
vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsTriageActionsTest.php
vendor/bin/sail artisan test --compact tests/Feature/Guards/ActionSurfaceContractTest.php
If implementation touches other platform-ops behavior, add the page access tests:
vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsFailuresViewTest.php
vendor/bin/sail artisan test --compact tests/Feature/System/Spec114/OpsStuckViewTest.php
Formatting
After code changes, run:
vendor/bin/sail bin pint --dirty --format agent
Manual Review Checklist
- The
Runs,Failures, andStucktables still navigate by row click. - None of the three lists exposes inline triage actions.
- The changed system surfaces use
Operations/Operationas the visible noun. - The Operations list exposes
Go to runbooks, while Failed operations and Stuck operations exposeShow all operationsas the single header and empty-state CTA. - The system operation detail page still shows
Retry,Cancel, andMark investigatedonly for manage-capable operators and exposesShow all operationsas the return path. Cancelstill requires confirmation.- Retry still produces the existing queued toast with a
View runlink.