Overhaul Models tab UX: action feedback, post-training flow, guided navigation
CI / build-and-push (push) Successful in 29s

- Lift modelsTab state into Zustand store so actions can navigate tabs
- Add toast notifications + auto-tab-switch to all 10 model actions
  (train, configure SFT/alignment, distill, fine-tune, quantize, eval, deploy, open-source)
- Add actionable toast buttons with navigation (e.g., "Go to Families" on training complete)
- Fix post-training config: remove 50% deadline, show until pretraining completes,
  always-visible warning prompt outside card expand, engine reminder at 75%
- PostTrainingConfig now hides already-configured sections independently
- Add tab badges: pulsing dot for active jobs, count for undeployed models, warning for no deployment
- Replace empty states with actionable buttons guiding next steps
- Stage bars show "(skip)" in warning color for unconfigured SFT/Alignment stages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-25 10:20:00 -04:00
parent fdedd6f4d0
commit 775c6a4fa5
6 changed files with 436 additions and 270 deletions
+3 -1
View File
@@ -23,6 +23,7 @@ export interface TickNotification {
title: string;
message: string;
type: 'info' | 'success' | 'warning' | 'danger';
action?: { label: string; page?: string; modelsTab?: string };
}
let cachedAchievementDefs: AchievementDefinition[] | null = null;
@@ -45,8 +46,9 @@ export function processTick(state: GameState): Partial<GameState> {
for (const completed of modelResult.completedModels) {
notifications.push({
title: 'Training Complete',
message: `${completed.name} is ready! Capability: ${completed.rawCapability.toFixed(1)}/100`,
message: `${completed.name} is ready! Capability: ${completed.rawCapability.toFixed(1)}/100. Deploy it to start earning revenue.`,
type: 'success',
action: { label: 'Go to Families', page: 'models', modelsTab: 'models' },
});
}
notifications.push(...modelResult.notifications);