feat: Replace initiative card N+1 queries with server-computed activity indicator
listInitiatives now returns an activity object (state, activePhase, phase counts) derived server-side from phases, eliminating per-card listPhases queries. Initiative cards show a StatusDot with pulse animation + label instead of a static StatusBadge. Removed redundant View and Spawn Architect buttons from cards. Added variant override prop to StatusDot.
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
export type { AppRouter } from './trpc.js';
|
||||
export type { Initiative, Phase, Task, Agent, Message, PendingQuestions, QuestionItem, SubscriptionEvent, Project, ChangeSet, ChangeSetEntry } from './types.js';
|
||||
export type { Initiative, Phase, Task, Agent, Message, PendingQuestions, QuestionItem, SubscriptionEvent, Project, ChangeSet, ChangeSetEntry, InitiativeActivityState, InitiativeActivity } from './types.js';
|
||||
export { sortByPriorityAndQueueTime, topologicalSortPhases, groupPhasesByDependencyLevel, type SortableItem, type PhaseForSort, type DependencyEdge, type PipelineColumn } from './utils.js';
|
||||
|
||||
@@ -2,6 +2,23 @@ export type { Initiative, Phase, Task, Agent, Message, Page, Project, Account, C
|
||||
export type { PendingQuestions, QuestionItem } from '../../../apps/server/agent/types.js';
|
||||
|
||||
export type ExecutionMode = 'yolo' | 'review_per_phase';
|
||||
|
||||
export type InitiativeActivityState =
|
||||
| 'idle' // Active but no phases
|
||||
| 'planning' // All phases pending (no work started)
|
||||
| 'ready' // Phases approved, waiting to execute
|
||||
| 'executing' // At least one phase in_progress
|
||||
| 'pending_review' // At least one phase pending_review
|
||||
| 'blocked' // At least one phase blocked (none in_progress/pending_review)
|
||||
| 'complete' // All phases completed
|
||||
| 'archived'; // Initiative archived
|
||||
|
||||
export interface InitiativeActivity {
|
||||
state: InitiativeActivityState;
|
||||
activePhase?: { id: string; name: string };
|
||||
phasesTotal: number;
|
||||
phasesCompleted: number;
|
||||
}
|
||||
export type PhaseStatus = 'pending' | 'approved' | 'in_progress' | 'completed' | 'blocked' | 'pending_review';
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user