Skip to content

feat(send): fila de 1 mensagem despachada no próximo turno - #65

Merged
4ndreello merged 3 commits into
mainfrom
feat/send-queue
Sep 8, 2026
Merged

feat(send): fila de 1 mensagem despachada no próximo turno#65
4ndreello merged 3 commits into
mainfrom
feat/send-queue

Conversation

@4ndreello

Copy link
Copy Markdown
Owner

Busy session.send enfileira (last-wins, queued:true) em vez de SESSION_BUSY; tail do stream despacha via tryDispatch sob sessionLocks. stop/release limpam em todas as saídas; open nunca enfileira. Inclui evento message.queued, validação daemon-side (INVALID), UI/CLI, migração de DB e spec em .specs/features/send-queue/spec.md. Suite: 75 arquivos, 892 testes verdes.

Busy session.send persists pendingMessage/pendingAt (last-wins) and
returns queued:true instead of SESSION_BUSY; the stream tail dispatches
it via lock-guarded tryDispatch. stop/release clear the slot on every
exit; open sessions never queue. Adds message.queued event, daemon-side
validation (INVALID), web/CLI surfacing, migration for existing DBs.
…int, tail tests

- tryDispatch returns with slot intact when no native id resolves
- session.send returns SESSION_BUSY behind lifecycle locks instead of
  queueing; stop re-clears pending on success exit
- canvas clears detailPending on terminal session events
- tail-dispatch coverage: exactly-once turn start, quiet no-native
  leave, failure restore with honest event
@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

@4ndreello
4ndreello merged commit 09c22b4 into main Sep 8, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant