Skip to content

Segunda tela com mensagem na fila perde o fim do turno que roda #136

Open

Description

@JoaoLuisQuirino

Contexto

Uma segunda tela abre um chat com turno rodando e manda uma mensagem com mode: "queue" antes de o socket dela saber que há turno. A sessão se acha livre e a mensagem vira abertura (openingAwaitsStart). Esse sinal só cai com o stepStart dela, que demora porque ela está na fila. Enquanto isso, cada frame do turno que roda (de outra mensagem) é lembrado como turno encerrado, e o stepFinish dele é descartado: a tela nunca emite turnEnd desse turno, e um Stop dela dá "Agent turn cancellation was not acknowledged before the safety timeout".

Visto em produção e reproduzido na dev com a box viva, nas versões 0.3.3, 0.3.4 e 0.3.5 do #122.

Correção

Um stepStart que nomeia outra mensagem com a abertura esperando significa que há um turno rodando à frente dela: a abertura para de esperar, e os frames desse turno passam a ser do turno que roda.

Prova

Teste: sessão aberta por taskId, send(x, { mode: "queue" }), depois stepStart de outra mensagem, textDelta e stepFinish stop desse turno. Espera turnEnd do turno; sem a correção, nenhum.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions