Implemented the output contract and readiness semantics for review packs. Also added spec 348. Includes changes to ChooseEnvironment, CustomerReviewWorkspace, GenerateReviewPackJob and related blade views. Added comprehensive tests. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #419
2.6 KiB
2.6 KiB
Implementation Plan: Spec 348 - Choose Environment Enterprise Selector
Branch: 348-choose-environment-enterprise-selector | Date: 2026-06-02 | Spec: specs/348-choose-environment-enterprise-selector/spec.md
Summary
Productize the existing /admin/choose-environment selector so it behaves like an enterprise context-selection surface: stable layout, immediate secondary actions, search for larger workspaces, localized search states, and no raw technical badge overflow.
Technical Context
- Language/Version: PHP 8.4.15, Laravel 12.52.x.
- Primary Dependencies: Filament 5.2.x, Livewire 4.1.x, Tailwind CSS 4.x, Pest 4.x.
- Storage: PostgreSQL; no schema change.
- Testing: Pest Feature tests.
- Constraints: No provider calls during render, no new persistence, no new route, no destructive action.
Implementation Approach
- Extend
ChooseEnvironmentwith a localsearchproperty and a filtered collection helper. - Replace the dynamic card grid with a single-column selector layout that fits the Filament simple-layout container.
- Move
Add environmentandSwitch workspaceinto the top selector header as neutral secondary actions. - Add a localized search box, result count, clear action, and no-results state.
- Hide the default raw
managed_environmentkind label while preserving non-default short labels such asDEV. - Add stable test IDs for selector, filter, actions, result list, no-results state, and environment cards.
- Extend focused Feature coverage for markup and Livewire search behavior.
UI / Surface Guardrail Plan
- Affected surface:
UI-004/admin/choose-environment. - Native vs custom: existing custom Blade in a Filament Page; no new component family.
- Action hierarchy: environment card selection remains the primary page purpose; Add/Switch remain neutral secondary actions.
- Status semantics: lifecycle status remains a badge; status colors are not applied to buttons.
- Dangerous actions: none.
Validation Plan
- Run
cd apps/platform && ./vendor/bin/sail artisan test tests/Feature/Workspaces/ChooseEnvironmentPageTest.php --compact. - Run
cd apps/platform && ./vendor/bin/sail pint app/Filament/Pages/ChooseEnvironment.php tests/Feature/Workspaces/ChooseEnvironmentPageTest.php. - Run
git diff --check. - Verify in the in-app browser at
/admin/choose-environmentfor current, mobile, and desktop viewports.
Deployment Impact
- Env vars: none.
- Migrations: none.
- Queues / scheduler: none.
- Storage: none.
- Assets: no Filament asset registration; normal Vite/Tailwind build applies.
filament:assetsis not newly required by this change.