## Summary - add conditional polling support for the tenantless operation run viewer and tenant review pack card - add focused Pest coverage for active vs terminal polling behavior and related review pack access regressions - add the full Spec Kit artifacts for Spec 123, including spec, plan, research, data model, contracts, quickstart, tasks, and checklist ## Testing - `vendor/bin/sail artisan test --compact tests/Feature/OpsUx/RunDetailPollingStopsOnTerminalTest.php tests/Feature/Operations/TenantlessOperationRunViewerTest.php tests/Feature/ReviewPack/ReviewPackWidgetTest.php tests/Feature/ReviewPack/ReviewPackGenerationTest.php tests/Feature/ReviewPack/ReviewPackRbacTest.php` - `vendor/bin/sail bin pint --dirty --format agent` ## Notes - Manual QA task `T014` in the Spec Kit checklist remains to be completed outside this automated flow. - Livewire v4.0+ compliance is unchanged. - No panel provider changes were made; provider registration remains in `bootstrap/providers.php`. - No global-search behavior was changed. - No destructive actions were added or modified. - No new Filament assets were introduced; existing deployment expectations for `php artisan filament:assets` remain unchanged. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #149
56 lines
1.7 KiB
YAML
56 lines
1.7 KiB
YAML
schema_version: 1
|
|
feature: operations-auto-refresh-pass
|
|
contracts:
|
|
- name: tenantless-operation-run-viewer
|
|
kind: ui-surface
|
|
surface_class: App\Filament\Pages\Operations\TenantlessOperationRunViewer
|
|
host_route: /admin/operations/{run}
|
|
method: GET
|
|
authorization:
|
|
scope: workspace-canonical monitoring view
|
|
unchanged_from_existing: true
|
|
polling:
|
|
source_of_truth: App\Support\OpsUx\RunDetailPolling::interval
|
|
active_states:
|
|
- queued
|
|
- running
|
|
terminal_states:
|
|
- succeeded
|
|
- partial
|
|
- failed
|
|
cadence:
|
|
- age_lt_10s: 1s
|
|
- age_lt_60s: 5s
|
|
- steady_state: 10s
|
|
suppression_conditions:
|
|
- browser_tab_hidden
|
|
- filament_actions_mounted
|
|
response_shape:
|
|
content_type: text/html
|
|
behavior: renders run detail and emits polling only while the run remains active
|
|
|
|
- name: tenant-review-pack-card
|
|
kind: ui-component
|
|
surface_class: App\Filament\Widgets\Tenant\TenantReviewPackCard
|
|
host_route: intentionally reusable tenant-scoped embedded widget surfaces (component-scoped; no standalone route is owned by the widget itself)
|
|
method: GET
|
|
authorization:
|
|
scope: tenant-scoped review pack surface
|
|
unchanged_from_existing: true
|
|
polling:
|
|
source_of_truth: latest ReviewPack status for current tenant
|
|
active_states:
|
|
- queued
|
|
- generating
|
|
terminal_states:
|
|
- ready
|
|
- failed
|
|
- expired
|
|
cadence:
|
|
- steady_state: 10s
|
|
suppression_conditions:
|
|
- no_review_pack_exists
|
|
response_shape:
|
|
content_type: text/html
|
|
behavior: renders widget state and emits polling only while review pack generation is active
|