## 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
73 lines
3.6 KiB
Markdown
73 lines
3.6 KiB
Markdown
# 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
|
|
|
|
1. Start the local stack:
|
|
|
|
```bash
|
|
vendor/bin/sail up -d
|
|
```
|
|
|
|
2. Work on branch `170-system-operations-surface-alignment`.
|
|
|
|
## Implementation Steps
|
|
|
|
1. Update the three list pages:
|
|
- `app/Filament/System/Pages/Ops/Runs.php`
|
|
- `app/Filament/System/Pages/Ops/Failures.php`
|
|
- `app/Filament/System/Pages/Ops/Stuck.php`
|
|
2. Remove the `retry`, `cancel`, and `mark_investigated` table actions from each list page.
|
|
3. Keep `recordUrl()` row-click navigation intact for each list page.
|
|
4. Update visible navigation labels, headings, empty-state copy, and page CTA behavior so the changed surfaces use `Operations` / `Operation` vocabulary.
|
|
5. Update each list page's `actionSurfaceDeclaration()` explanation text so it reflects detail-owned triage rather than row-level triage.
|
|
6. Update `app/Filament/System/Pages/Ops/ViewRun.php` and `resources/views/filament/system/pages/ops/view-run.blade.php` so the detail page keeps triage ownership, uses `Operation #...` copy, and exposes `Show all operations`.
|
|
7. Leave `app/Services/SystemConsole/OperationRunTriageService.php` unchanged unless a small refactor is needed to support the page move without changing behavior.
|
|
|
|
## Tests To Update
|
|
|
|
1. `tests/Feature/System/Spec114/OpsTriageActionsTest.php`
|
|
- Replace row-action execution assertions on `Runs` with detail-page action visibility/execution assertions on `ViewRun`.
|
|
- Keep view-only versus manage-capable separation explicit.
|
|
- Add assertions for visible `Operations` / `Operation` copy and the `Show all operations` return path.
|
|
2. `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 to `SystemOperationRunLinks::view($run)`.
|
|
- Assert the list CTA behavior and canonical Operations naming on the changed surfaces.
|
|
3. Keep the existing page-access tests for failures/stuck passing.
|
|
|
|
## Focused Verification
|
|
|
|
Run the smallest relevant test set first:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
vendor/bin/sail bin pint --dirty --format agent
|
|
```
|
|
|
|
## Manual Review Checklist
|
|
|
|
1. The `Runs`, `Failures`, and `Stuck` tables still navigate by row click.
|
|
2. None of the three lists exposes inline triage actions.
|
|
3. The changed system surfaces use `Operations` / `Operation` as the visible noun.
|
|
4. The Operations list exposes `Go to runbooks`, while Failed operations and Stuck operations expose `Show all operations` as the single header and empty-state CTA.
|
|
5. The system operation detail page still shows `Retry`, `Cancel`, and `Mark investigated` only for manage-capable operators and exposes `Show all operations` as the return path.
|
|
6. `Cancel` still requires confirmation.
|
|
7. Retry still produces the existing queued toast with a `View run` link. |