feat(frontend): queue custom CLI messages while agent is busy and add Final/latest-message navigation — #352 (QA verte)
Custom CLI composer stays active during busy turns: submitting while the agent works enqueues the message instead of sending it. Local FIFO queue scoped per cell (projectId+agentId+layoutId+nodeId), entries carry id, text, attachments snapshot and createdAtMs; single in-flight transmission, entry removed at send time, auto-drain only on final chunk, queue preserved on error/Stop with 'Relancer l'agent' action on stopped cells. 'En attente · N' panel anchored above the composer: order, 2-line preview, per-entry edit/delete with transient undo, clear all with confirmation; main button switches Send / 'Mettre en attente' with live announcement; layout contract updated (CLI visible while busy, textarea enabled, Stop available). Chat navigation: round up-arrow under the agent bar jumps to previous Final, round down-arrow above the composer appears when not at bottom to jump to latest message, auto-scroll suspended while reading history, prefers-reduced-motion and 44px a11y targets respected. Ports unchanged (AgentGateway send/cancel/reattach, restartCellAgentRuntime). QA verte reconfirmée par Git: targeted suites 115/115 (CustomAgentChatView/LayoutGrid/LayoutGrid.chat), git diff --check; QA: npm run typecheck OK, npm run build OK. Réserves documentées: queue renderer-local (non persistée après restart complet), validation visuelle cellules très étroites restante. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -23,6 +23,9 @@ export { ResumeProjectPanel } from "./ResumeProjectPanel";
|
||||
export type { ResumeProjectPanelProps } from "./ResumeProjectPanel";
|
||||
export { useResumeProject } from "./useResumeProject";
|
||||
export type { ResumeProjectViewModel } from "./useResumeProject";
|
||||
export { CustomAgentChatView } from "./CustomAgentChatView";
|
||||
export {
|
||||
CustomAgentChatView,
|
||||
customAgentChatQueueCount,
|
||||
} from "./CustomAgentChatView";
|
||||
export type { CustomAgentChatViewProps } from "./CustomAgentChatView";
|
||||
export { isCustomAgentCliAvailable } from "./customCliEligibility";
|
||||
|
||||
Reference in New Issue
Block a user