feat(web): Phase 1-UX frontend — DiffPanel agent badges + resumed/new-session chip
DiffPanel renders a per-row agent badge (icon+label; null -> 'manual') + a 'Changes from X, Y' note when the pending set spans >1 agent. AgentComposerBar gains an optional sessionId prop -> resumed/history/new-session chip beside the Provider picker (gated, so BooChat callers are unchanged), driven by a new useAgentSessions hook (refetch on message-complete). providerIcon extracted to shared components/coder/providerIcons.tsx; api.coder gains agentSessions(sessionId); PendingChange type gains agent. web tsc clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,17 @@ import type {
|
||||
WorkspaceState,
|
||||
} from './types';
|
||||
|
||||
// v2.6 Phase 1-UX §9b: chat-scoped agent-session rows. Returned by
|
||||
// GET /api/coder/sessions/:id/agent-sessions; drives the AgentComposerBar
|
||||
// resumed/new-session chip via useAgentSessions. `has_session` is true when a
|
||||
// resumable backend session id exists for that agent in the chat.
|
||||
export interface AgentSessionInfo {
|
||||
agent: string;
|
||||
status: string;
|
||||
has_session: boolean;
|
||||
last_active_at: string | null;
|
||||
}
|
||||
|
||||
export class ApiError extends Error {
|
||||
constructor(
|
||||
public status: number,
|
||||
@@ -363,6 +374,11 @@ export const api = {
|
||||
request<CoderMessageWire[]>(
|
||||
`/api/coder/sessions/${sessionId}/messages${chatId ? `?chat_id=${encodeURIComponent(chatId)}` : ''}`,
|
||||
),
|
||||
// v2.6 Phase 1-UX §9b: per-(chat,agent) backend-session state for the
|
||||
// resumed/new-session chip. Chat-scoped (NOT foldable into the project-level
|
||||
// provider snapshot). Proxied to boocoder at /api/sessions/:id/agent-sessions.
|
||||
agentSessions: (sessionId: string) =>
|
||||
request<AgentSessionInfo[]>(`/api/coder/sessions/${sessionId}/agent-sessions`),
|
||||
skillInvoke: (
|
||||
sessionId: string,
|
||||
paneId: string,
|
||||
|
||||
Reference in New Issue
Block a user