Implement ShadowRunQueue.vue using KBX Foundation v60 components:
- T06 Queue template for job list display
- KbxScreenFrame wrapper with breadcrumb/title
- KbxSummaryBar showing job statistics (running/completed/failed)
- KbxTemplateStateBoundary for async state (loading/error/empty)
- Filter bar (search, status dropdown)
- Job items with progress bars, status tags, error messages
- Actions per job (view details, export, retry)
- Dark mode & responsive layout support
New files:
- features/shadow-run/pages/ShadowRunQueue.vue (page component)
- features/shadow-run/composables/useShadowRunJobs.ts (data fetch)
- features/shadow-run/types/index.ts (type definitions)
Updated:
- features/shadow-run/registry.ts (import ScreenDefinition from @kbx/contracts)
Demo data: 3 sample jobs (running, completed, failed) with realistic states.
Ready for API integration and production use.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add composables for API integration with TanStack Query:
1. useShadowRuns.ts (shadow-run feature)
- useShadowRunsList() with pagination & filtering
- useShadowRunDetail() for detail view
- useCreateShadowRun() mutation
- useRefreshShadowRuns() for manual refresh
- shadowRunQueryKeys factory for cache management
2. useModels.ts (models feature)
- useModelsList() with filtering by phase/active
- useModelDetail() for detail view
- useActivateModel() / useDeactivateModel() mutations
- useTransitionPhase() for lifecycle transitions
- modelQueryKeys factory
3. Updated pages (ShadowRunList, ShadowRunDetail, ModelsList, ModelDetail)
- Replace mock data with useQuery hooks
- Auto-refetch on filter changes
- Optimistic updates (activate/deactivate/transition)
- Computed state management (idle/pending/ready/error/empty)
- Cache invalidation on mutations
Features:
- Stale time: 5 minutes, garbage collection: 10 minutes
- Query key factories for cache management
- Mock API client (replace with real HTTP endpoints)
- Support for pagination, filtering, sorting
- Keyboard shortcuts still functional
Mock API client provides realistic data for testing.
Replace apiClient.* functions with actual HTTP calls in next phase.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Removed entire kbx-foundation-v36 directory as it's been replaced by
the new KBX Foundation v4 patterns implemented in this session:
- Registry-driven screen definitions
- Density-aware UI adapter components
- Feature module templates (ShadowRun, Models)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>