Reply editor prefills the AI disclaimer instead of the draft answer
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
Direzione di ricerca
Inizia in packages/outpost/queue/src/handlers/ai-response.ts intorno alle righe 158-172, quindi esamina apps/web/src/components/.../reply-editor.tsx per confermare come viene usato suggestedResponse. Verifica che l’editor riceva pipelineResult.response non formattato, aggiungi la copertura per il caso soppresso e assicurati che le condizioni di accettazione siano soddisfatte senza modificare la risposta pubblicata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The agent-facing reply editor prefills with the AI disclaimer instead of the draft answer.
Where
packages/outpost/queue/src/handlers/ai-response.ts:172
await prisma.ticket.update({
where: { id: ticket.id },
data: {
suggestedResponse: pipelineResult.formatted.text,
},
});
formatted.text is the published form of the reply: platform formatting, footer, and — for anything below HIGH confidence — a leading disclaimer block:
> ⚠️ This is an AI-generated response. We've escalated this to our engineering team — someone will follow up in this thread shortly.
apps/web/src/components/.../reply-editor.tsx:59 prefills the agent's reply box with that string verbatim. So a human picking up an escalation opens their editor and finds a draft that opens by declaring itself AI-generated and announcing an escalation — text that makes no sense coming from them, and that they have to delete before writing anything.
The raw draft is already persisted one call earlier as Message.content (ai-response.ts:158) and is available as pipelineResult.response. That's the right source for an editor.
Fix
- suggestedResponse: pipelineResult.formatted.text,
+ suggestedResponse: pipelineResult.response,
Worth checking whether any other consumer depends on suggestedResponse carrying the formatted text before flipping it — as of #143's review, reply-editor.tsx is its only reader and it's human-driven, so nothing auto-posts it.
Why it's filed separately
Raised by @jerelvelarde in review of #143 and deliberately not fixed there: the line is pre-existing, isn't in that PR's diff, and #143 only makes it reachable more often.
It gets worse, though, with the always-answers work that's in progress (retrieval fan-out across all four MCP corpora + the no-answer reply). Under that change, a suppressed ungrounded draft has its formatted.text replaced with the no-answer copy:
I couldn't find an answer to this in the CopilotKit or AG-UI documentation or source code, so I don't want to guess. I've escalated this to our team — someone will follow up in this thread.
So the human's editor prefills with the apology, and the actual draft they were meant to work from lives only in Message.content, which the editor never reads. The stated justification for suppressing rather than discarding a draft — "a human can edit and send it" — stops being true.
Should land with, or before, that PR.
Acceptance
-
suggestedResponseholds the unformatted draft (pipelineResult.response), disclaimer-free - Reply editor prefills text an agent can send without deleting a preamble
- A suppressed draft still reaches the editor as the draft, not as the no-answer copy
- Test covering the suppressed case, since that's the path where the two diverge
- Lingua principale
- TypeScript
- Stelle
- 8
- Fork
- 4
- Merge medio
- 3g 19h
- PR unite (30g)
- 10
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CopilotKit/outpost
-
area: docs area: security roadmap: now
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
CopilotKit/outpost#277 ·
I maintainer di solito rispondono entro 3 giorni
-
area: infrastructure roadmap roadmap: later
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
CopilotKit/outpost#179 ·
I maintainer di solito rispondono entro 3 giorni
-
area: integrations priority: low roadmap roadmap: later
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
CopilotKit/outpost#124 · 3 commenti ·
I maintainer di solito rispondono entro 3 giorni
-
area: integrations priority: low roadmap roadmap: later
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
CopilotKit/outpost#123 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
-
area: infrastructure bug priority: low roadmap roadmap: later
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
CopilotKit/outpost#120 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di CopilotKit/outpost
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
supabase/agent-skills#611 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
polka-codes/test#345 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
GoogleChromeLabs/project-sesame#217 ·
I maintainer di solito rispondono entro 12 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
solana-foundation/solana-com#2202 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100