Leitura
hansa chat messages list --channel general --limit 50
hansa chat messages get --message <message-id>
hansa chat messages search --query "standup notes" --channel general
--limit aceita 1–100. Em vez de páginas, navega por números de sequência do
canal, que se mantêm estáveis:
hansa chat messages list --channel general --before-sequence 120
hansa chat messages list --channel general --after-sequence 100
hansa chat messages list --channel general --around-message <message-id>
A resposta inclui meta com o cursor seguinte (next_before_sequence ou
next_after_sequence) para que os scripts possam percorrer o histórico de
forma fiável.
Envio
hansa chat messages send --channel general --text "Deploy finished."
O texto simples torna-se automaticamente no formato de documento avançado do workspace. Para um controlo mais fino, pode passar o JSON do documento diretamente:
hansa chat messages send --channel general --content-json '{"type":"doc","content":[…]}'
hansa chat messages send --channel general --content-file message.json
Opções adicionais: --parent <message-id> para uma resposta, --mention <user-id>
(repetível) para mencionar pessoas e --file <file-id> (repetível) para anexar
ficheiros carregados (ver convites e carregamentos de ficheiros).
O envio deliberadamente não é idempotente. Cada invocação cria uma nova mensagem — executar o comando duas vezes envia duas mensagens. É isto que os scripts que publicam notificações normalmente querem; todo o resto na CLI converge para o estado pretendido.
Edição e eliminação
hansa chat messages edit --message <id> --text "Deploy finished successfully."
hansa chat messages delete --message <id>
Editar o mesmo conteúdo duas vezes é um no-op da segunda vez, e eliminar uma
mensagem já eliminada termina sem alterações. Ambos esperam até que a alteração
esteja visível através da API; acrescente --no-wait para regressar
imediatamente com o comando aceite.
Reações
hansa chat reactions set --message <id> --emoji "👍" --present=true
hansa chat reactions set --message <id> --emoji "👍" --present=false
A CLI só chama o backend quando a presença pedida difere do estado atual, por isso comandos repetidos são seguros.