92 lines
10 KiB
Markdown
92 lines
10 KiB
Markdown
# Implementation Report: Spec 399 - Dashboard / Inbox / Table Contract Migration v1
|
|
|
|
## Selected Slice
|
|
|
|
- Runtime slice: Environment Dashboard recent operations widget, Workspace Overview recent operations section, Findings resource list, My Findings inbox, Findings Intake queue, Operations Hub, and the shared OperationRun table used by Operations Hub.
|
|
- Repo-inspected but not runtime-edited: Environment Dashboard summary/page builder and Governance Inbox. Existing structures did not require a bounded runtime edit in this pass beyond the shared recent-operations/table reductions and no Product Surface exception was needed.
|
|
- Deferred surfaces: secondary hot tables outside the selected files, detail/receipt pages, Customer Review Workspace, System Panel, Baseline Compare, Restore Preview, and Review Publication Resolution.
|
|
|
|
## Product Surface Gate
|
|
|
|
- No-legacy posture: no compatibility flags, alternate layouts, hidden legacy routes, or old table profiles were added.
|
|
- Product Surface exceptions: none.
|
|
- Page archetypes:
|
|
- Workspace Overview: Dashboard Page; recent operation detail is collapsed by default.
|
|
- Environment Dashboard recent operations: Dashboard widget/table; table defaults to product-surface pagination and no raw run link/identifier column.
|
|
- Findings resource/list and inboxes: Inbox/Search-Index surfaces; table cap is product-surface pagination and row actions are grouped under More where applicable.
|
|
- Operations Hub: Inbox Page with technical detail demoted; raw OperationRun detail remains deliberate technical/audit context.
|
|
- Table caps: `TablePaginationProfiles::productSurface()` returns `[8, 25, 50]` and is used by directly touched hot tables.
|
|
- Technical Annex / deep-link demotion:
|
|
- Recent Operations widget no longer shows the short OperationRun identifier or row-level OperationRun detail links by default.
|
|
- Workspace Overview recent operations remain available in a closed disclosure instead of default-open diagnostic content.
|
|
- Findings list keeps row click as the inspect path and moves related/workflow row actions into More.
|
|
- Operations Hub copy uses operation/product wording and "Detail path" / "Technical detail available" instead of default OperationRun/proof phrasing.
|
|
- Operations Hub default workbench payload/view no longer exposes the raw `Operation #<id>` badge; authorized run detail remains reachable only through deliberate detail paths.
|
|
- Action hierarchy:
|
|
- Findings resource: clickable row is primary inspect; row actions are grouped under More; bulk actions remain under existing `BulkActionGroup`.
|
|
- Operations Hub: existing OperationRunLinks/OperationRunResource primary action paths remain delegated; no local queued toast/link/event/dedupe/notification behavior added.
|
|
- Destructive/high-impact actions: no new destructive or high-impact action was introduced. Existing mutating Finding workflow actions remain capability-gated in their existing action callbacks and grouped under More.
|
|
- Asset strategy: no new assets. No `FilamentAsset` registration changes; deployment `filament:assets` requirement unchanged.
|
|
- Provider registration: no panel/provider changes. Laravel 11+/12 provider registration remains in `bootstrap/providers.php`.
|
|
- Livewire / Filament posture: Filament v5 code remains on Livewire v4; tests mount Filament Livewire page/widget components.
|
|
- Global search posture: no global-search configuration changed. Findings resource already has a View page for searchable record navigation; no new globally searchable resource added.
|
|
- Deployment impact: no migrations, env vars, queues, scheduler, storage, Graph scopes, provider contracts, or runtime services changed.
|
|
|
|
## Test Governance
|
|
|
|
- Lane assignment: Feature/Livewire table/action tests plus one focused Pest Browser smoke are the narrowest sufficient proof for this rendered Product Surface contract.
|
|
- Test family: added one focused Feature file, one focused Browser smoke file, and updated existing Feature assertions that encoded the old overloaded defaults.
|
|
- Fixture/helper cost: reused existing factories, `createUserWithTenant`, workspace session helpers, and local smoke browser patterns. No broad seed or factory behavior changed.
|
|
- Planned validation commands:
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact --filter=Spec399`
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec399DashboardInboxTableContractMigrationSmokeTest.php`
|
|
- targeted affected Feature tests for Filament table standards, Findings, and Operations Hub
|
|
- `cd apps/platform && ./vendor/bin/sail pint --dirty`
|
|
- `git diff --check`
|
|
|
|
## Proof Continuity
|
|
|
|
- Environment Dashboard recent operation links demoted: the dashboard widget no longer makes OperationRun detail the default row target; authorized operation detail remains available through Operations Hub and operation resource routes.
|
|
- Workspace Overview recent operation detail demoted: existing destinations remain inside the closed disclosure; default workspace landing no longer foregrounds diagnostic recency.
|
|
- Governance Inbox source/proof paths: no runtime edit in this slice; existing proof/source paths were not expanded.
|
|
- Findings technical/detail paths: row click still opens the Finding detail route; related record action remains available in More; technical operation IDs remain detail-only.
|
|
- Operations Hub technical paths: existing `OperationRunLinks` and `OperationRunResource` paths are preserved for deliberate detail access.
|
|
|
|
## Human Product Sanity
|
|
|
|
- Result: pass for the selected slice.
|
|
- Visible complexity outcome: fewer default rows, fewer primary links, no default raw run/proof language on touched Operations Hub surfaces, and Workspace Overview diagnostic recency collapsed by default.
|
|
- Dark mode/accessibility/Filament-native proof: Pest Browser smoke toggled dark mode on Operations Hub, proved native `<details>/<summary>` disclosure starts closed and expands on deliberate click, and passed JavaScript checks.
|
|
- Browser proof depth: Spec 399 smoke now proves a non-empty Governance Inbox lane with collapsed item detail, product-surface row caps on My Findings, Findings Intake, and Environment Findings, hidden source keys/raw payloads, hidden `Operation #` identifiers, and Operations Hub diagnostics collapsed by default.
|
|
- Integrated browser result: pass for Workspace Overview, Governance Inbox, My Findings, Findings Intake, Environment Findings, Environment Dashboard, and Operations Hub in the authenticated in-app browser session. Findings table row caps were verified against the primary Filament table because the local Laravel Debugbar adds its own request tables in development. Operations Hub diagnostics were verified closed by default and expandable through a direct in-app browser DOM click. One stale integrated-browser tab produced transient CDP navigation timeouts; a fresh in-app tab loaded the same authenticated routes successfully.
|
|
|
|
## Validation Results
|
|
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact --filter=Spec399`: passed, 6 tests / 116 assertions.
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec399DashboardInboxTableContractMigrationSmokeTest.php`: passed, 1 test / 49 assertions.
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec328OperationsHubProductizationSmokeTest.php tests/Browser/Spec391OperationsHubStabilitySmokeTest.php`: passed, 4 tests / 95 assertions.
|
|
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/TableDetailVisibilityTest.php tests/Feature/Filament/TableStandardsCriticalListsTest.php tests/Feature/Findings/FindingsListDefaultsTest.php tests/Feature/Findings/FindingsListFiltersTest.php tests/Feature/Findings/MyWorkInboxTest.php tests/Feature/Findings/FindingsIntakeQueueTest.php tests/Feature/Monitoring/OperationsHubProductizationTest.php tests/Feature/Monitoring/Spec391OperationsHubStabilityTest.php tests/Feature/Monitoring/OperationsHeaderHierarchyTest.php tests/Feature/Monitoring/OperationsDbOnlyTest.php tests/Feature/Monitoring/OperationsTenantScopeTest.php`: passed, 71 tests / 722 assertions.
|
|
- `cd apps/platform && ./vendor/bin/sail pint --dirty`: passed, 0 files changed.
|
|
- `git diff --check`: passed.
|
|
- Sail note: Docker Desktop context `desktop-linux` is available; stale orphaned Pest Browser/Playwright processes from earlier interrupted runs were cleaned before rerunning Sail validation.
|
|
- Intermediate validation findings fixed in-loop:
|
|
- Browser smoke asserted a fixture-specific Environment Dashboard recent-operations heading; narrowed to rendered default hierarchy and raw-payload absence.
|
|
- Browser smoke asserted any occurrence of `Proof`; narrowed to the legacy labels replaced by this spec.
|
|
- Existing Operations table standard expected at most seven visible columns; updated to the Spec 399 product-surface cap of eight.
|
|
- Final manual review findings fixed in-loop:
|
|
- Removed the default Operations Hub raw `Operation #<id>` workbench badge while preserving authorized OperationRun detail paths.
|
|
- Strengthened Spec 399 Feature and Browser proof for Governance Inbox non-empty lane behavior, table row caps, hidden technical identifiers, collapsed diagnostics, and disclosure expansion.
|
|
- Corrected `tasks.md` evidence paths so completed tasks reference the actual Spec 399 Feature/Browser files and existing affected tests.
|
|
- Stabilized the Spec 399 Pest Browser smoke by leaving the Operations Hub page after the final assertion and aligning terminal OperationRun fixtures with `completed_at`.
|
|
|
|
## Files Changed
|
|
|
|
- Runtime: `TablePaginationProfiles`, Recent Operations dashboard widget, Workspace Overview recent operations view, Findings resource/list tables, My Findings inbox, Findings Intake queue, Operations Hub page/view/stats, OperationRun resource table.
|
|
- Tests: Spec 399 Feature and Browser smoke coverage plus affected existing Filament/Findings/Monitoring tests.
|
|
- Docs: UI route inventory and design coverage matrix.
|
|
|
|
## Residual Risks
|
|
|
|
- Broader secondary hot tables remain intentionally outside this selected slice.
|
|
- Sail Browser validation is sensitive to orphaned Playwright server processes after interrupted runs; stale Spec 399 browser processes were cleaned before the final Sail validation.
|