feat(waker): l'esito del runner non e' piu' un turno dell'utente (chat.send + provenance) #16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/wake-chatsend"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problema
Il wake di fine task via hook (
GW_WAKE_MODE=cli/http) accoda un system event. OpenClaw non lo rende come messaggio di ruolosystem: lo antepone al body del turno successivo (prependEventsinbuildReplyPromptBodies), e il set disystemNoticedella Control UI e' chiuso e non include i wake dei hook.Risultato: in chat il report del runner sembra scritto dall'utente.
Fix
Nuovo trasporto
GW_WAKE_MODE=chatsend:chat.sendsul Gateway WS di OpenClaw (ws://127.0.0.1:18789) consystemInputProvenance:kind: inter_session-> il messaggio arriva al modello marcato[Inter-session message] ... isUser=false.sourceTooldi defaultagent_harness_task: e' uno dei source tool che OpenClaw riconosce come completion report (isCompletionReportInputProvenance), quindishouldHideProjectedHistoryMessagelo nasconde dalla cronologia proiettata eshouldPreserveUserFacingSessionStateForInputProvenancelascia intatto lo stato user-facing della sessione. In chat resta solo la risposta dell'agente, come per le completion dei subagent. Con unsourceToolfuori da quella lista (es.soltea_agent_runner) il messaggio resta visibile, marcato come inter-sessione.E' lo stesso meccanismo del bridge ACP di OpenClaw.
Ripieghi (meglio un esito attribuito male che un esito perso)
chat.sendrifiutato per scope (system provenance fields require admin scope) -> retry stessa idempotency key senza provenance, con warning.GW_WAKE_HTTP_URLvalorizzato -> ripiego suhttp.Config
GW_WAKE_WS_URLws://127.0.0.1:18789GW_WAKE_WS_TOKENoperator.adminGW_WAKE_SOURCE_TOOLagent_harness_taskGW_WAKE_SOURCE_CHANNELsoltea-agent-gatewayGW_WAKE_MODErestanonedi default: nessun cambiamento di comportamento senza intervento sull'env.Test
11 test nuovi (handshake + scope + params di provenance, retry senza provenance, ripiego http, frame estranei ignorati). Suite: 94 passed.
Deploy (dopo il merge)
/etc/soltea-gateway/gateway.envsu srv20:GW_WAKE_MODE=chatsend+GW_WAKE_WS_TOKEN=<token operator OpenClaw con admin scope>, lasciandoGW_WAKE_HTTP_URLdov'e' come fallback. Poisystemctl restart soltea-gateway.