feat: Cards, Offene Aufgaben, Feed – Komplettumbau
TeamNetwork: Footer→Arrow, Current Task+Runtime inline Missions→Offene Aufgaben (TaskCard) mit +New Task, Iris/Bao-Quelle OperationsFeed: Text-Wrap, 5 Items, Mehr-Button→Tag-Navigation-Modal
This commit is contained in:
@@ -17,21 +17,19 @@ export interface AgentNodeData {
|
||||
thinkingStream?: Array<{ time: string; text: string }>
|
||||
}
|
||||
|
||||
export interface MissionData {
|
||||
export interface OpenTask {
|
||||
id: string
|
||||
name: string
|
||||
progress: number
|
||||
currentTask: string
|
||||
lastActivity: string
|
||||
remainingTasks: number
|
||||
status: 'healthy' | 'attention' | 'blocked' | 'paused'
|
||||
title: string
|
||||
detail: string
|
||||
source: 'bao' | 'iris'
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
export interface FeedEntry {
|
||||
time: string
|
||||
agent: string
|
||||
action: string
|
||||
timestamp: number
|
||||
timestamp: string
|
||||
}
|
||||
|
||||
export interface ChatMessage {
|
||||
@@ -226,56 +224,24 @@ export function useDashboardData() {
|
||||
},
|
||||
])
|
||||
|
||||
// Missions
|
||||
const missions = ref<MissionData[]>([
|
||||
{
|
||||
id: 'dungeon-system',
|
||||
name: 'Dungeon System',
|
||||
progress: 62,
|
||||
currentTask: 'Implement room generation',
|
||||
lastActivity: '3 min ago',
|
||||
remainingTasks: 8,
|
||||
status: 'healthy',
|
||||
},
|
||||
{
|
||||
id: 'dashboard-redesign',
|
||||
name: 'Dashboard Redesign',
|
||||
progress: 45,
|
||||
currentTask: 'AI Team Network layout',
|
||||
lastActivity: 'Just now',
|
||||
remainingTasks: 6,
|
||||
status: 'healthy',
|
||||
},
|
||||
{
|
||||
id: 'infra-optimization',
|
||||
name: 'Infra Optimization',
|
||||
progress: 30,
|
||||
currentTask: 'Optimize build caching',
|
||||
lastActivity: '12 min ago',
|
||||
remainingTasks: 4,
|
||||
status: 'attention',
|
||||
},
|
||||
{
|
||||
id: 'auth-system',
|
||||
name: 'Auth System',
|
||||
progress: 88,
|
||||
currentTask: 'Finalize refresh token flow',
|
||||
lastActivity: '45 min ago',
|
||||
remainingTasks: 2,
|
||||
status: 'healthy',
|
||||
},
|
||||
// Open Tasks
|
||||
const openTasks = ref<OpenTask[]>([
|
||||
{ id: 't1', title: 'Agent Thinking Panel visualisieren', detail: 'Live-Animation der Denkprozesse im AgentModal', source: 'iris', createdAt: '22:30' },
|
||||
{ id: 't2', title: 'CI/CD Pipeline Monitoring Dashboard', detail: 'Echtzeit-Status der Gitea Actions im Dashboard', source: 'iris', createdAt: '21:15' },
|
||||
{ id: 't3', title: 'Dungeon System Dokumentation', detail: 'API-Doku für Room-Generation-Endpunkte schreiben', source: 'bao', createdAt: '20:00' },
|
||||
])
|
||||
|
||||
// Feed
|
||||
const ts = (offset: number) => new Date(now + offset).toISOString()
|
||||
const feedEntries = ref<FeedEntry[]>([
|
||||
{ time: '20:42', agent: 'Developer', action: 'Created DungeonController endpoints', timestamp: now - 60000 },
|
||||
{ time: '20:38', agent: 'DevOps', action: 'Optimized Docker COPY order', timestamp: now - 300000 },
|
||||
{ time: '20:35', agent: 'Iris', action: 'Delegated room generation to Developer', timestamp: now - 540000 },
|
||||
{ time: '20:28', agent: 'Researcher', action: 'Documented WebSocket vs SSE analysis', timestamp: now - 780000 },
|
||||
{ time: '20:22', agent: 'Reviewer', action: 'Approved RoomValidator PR', timestamp: now - 900000 },
|
||||
{ time: '20:15', agent: 'DevOps', action: 'Added .dockerignore for node_modules', timestamp: now - 1200000 },
|
||||
{ time: '20:08', agent: 'Iris', action: 'Broke down Dungeon System tasks', timestamp: now - 1500000 },
|
||||
{ time: '19:55', agent: 'Developer', action: 'Defined dungeon schema models', timestamp: now - 1800000 },
|
||||
{ time: '22:50', agent: 'Developer', action: 'Created DungeonController endpoints', timestamp: ts(-120000) },
|
||||
{ time: '22:46', agent: 'DevOps', action: 'Optimized Docker COPY order for layer caching', timestamp: ts(-360000) },
|
||||
{ time: '22:42', agent: 'Iris', action: 'Delegated room generation to Developer with spec', timestamp: ts(-600000) },
|
||||
{ time: '22:35', agent: 'Researcher', action: 'Documented WebSocket vs SSE analysis results', timestamp: ts(-960000) },
|
||||
{ time: '22:28', agent: 'Reviewer', action: 'Approved RoomValidator PR with minor fixes', timestamp: ts(-1200000) },
|
||||
{ time: '22:18', agent: 'DevOps', action: 'Added .dockerignore for node_modules and build artifacts', timestamp: ts(-1500000) },
|
||||
{ time: '22:08', agent: 'Iris', action: 'Broke down Dungeon System tasks into sub-tasks', timestamp: ts(-1800000) },
|
||||
{ time: '21:55', agent: 'Developer', action: 'Defined dungeon schema models with validation', timestamp: ts(-2400000) },
|
||||
])
|
||||
|
||||
// Chat
|
||||
@@ -324,7 +290,7 @@ export function useDashboardData() {
|
||||
|
||||
return {
|
||||
agents,
|
||||
missions,
|
||||
openTasks,
|
||||
feedEntries,
|
||||
chatMessages,
|
||||
irisBusy,
|
||||
|
||||
Reference in New Issue
Block a user