feat: add live task progress updates across chat frontends#556
Conversation
PR Overview: Live Task Progress Updates Across Chat FrontendsSummaryThis PR introduces a live task progress update system that provides real-time status updates to users during long-running AI tasks across Slack, Telegram, and Teams frontends. The system posts a "working on it" placeholder message and periodically updates it with AI-generated progress summaries based on execution traces, then replaces it with the final answer when complete. Files Changed AnalysisNew Core Files (4)
New Infrastructure (1)
Modified Core Files (4)
Frontend Integration (7 files)
Configuration & Tests (8 files)
Build Infrastructure (3 files)
Total: 30 files changed, +2514/-154 lines Architecture & Impact AssessmentWhat This PR Accomplishes
Key Technical Changes1. TaskLiveUpdateManager Core Flow2. Sink Patterninterface TaskLiveUpdateSink {
readonly kind: string;
start(): Promise<{ref?} | null>;
update(text: string): Promise<{ref?} | null>;
complete(text: string): Promise<{ref?} | null>;
fail(text: string): Promise<{ref?} | null>;
}Each platform implements this interface:
3. Configuration Schematask_live_updates:
enabled: true
interval_seconds: 10 # update frequency
model: gemini-3.1-flash-lite-preview
provider: google
prompt: "..." # custom system prompt
initial_message: "" # placeholder text
max_trace_chars: 12000
frontends:
slack: { enabled: true }
telegram: { enabled: true }
teams: { enabled: true }Affected System Components
Component Relationshipsgraph TB
subgraph "Task Execution"
TE[trackExecution] --> TLM[TaskLiveUpdateManager]
TE --> Engine[StateMachineExecutionEngine]
end
subgraph "Progress Pipeline"
TLM --> TS[serializeTraceForPrompt]
TS --> SA[summarizeTaskProgress]
SA --> Probe[ProbeAgent LLM]
end
subgraph "Platform Sinks"
TLM --> SlackSink[SlackTaskLiveUpdateSink]
TLM --> TeamsSink[TeamsTaskLiveUpdateSink]
TLM --> TelegramSink[TelegramTaskLiveUpdateSink]
end
subgraph "Client APIs"
SlackSink --> SlackClient[SlackClient chat.update/delete]
TeamsSink --> TeamsClient[TeamsClient updateMessage/deleteMessage]
TelegramSink --> TelegramClient[TelegramClient editMessageText/deleteMessage]
end
subgraph "Trace Backends"
TS --> Grafana[Grafana Tempo]
TS --> Jaeger[Jaeger]
TS --> Local[Local NDJSON Files]
end
Scope Discovery & Context ExpansionDirect Impact
Related Systems (Not Modified But Relevant)
Configuration Impact
Testing Coverage
Potential Follow-up Work
ReferencesCore Implementation
Integration Points
Client Enhancements
Frontend Behavior
Configuration
Tests
Infrastructure
Metadata
Powered by Visor from Probelabs Last updated: 2026-03-21T17:04:42.077Z | Triggered by: pr_updated | Commit: 6802d49 💡 TIP: You can chat with Visor using |
✅ Security Check PassedNo security issues found – changes LGTM. Architecture Issues (10)
Quality Issues (26)
Powered by Visor from Probelabs Last updated: 2026-03-21T16:59:26.471Z | Triggered by: pr_updated | Commit: 6802d49 💡 TIP: You can chat with Visor using |
Summary
Testing