I comandi dei canali leggono prima lo stato corrente e convergono su ciò che viene
richiesto: ripetere un comando che ha già avuto effetto riesce con
changed: false invece di fallire o duplicare.
hansa chat channels list # your channels
hansa chat channels browse # public channels you have not joined
hansa chat channels get --channel general # one channel by slug or ID
Creare e modificare i canali
# Return "Marketing" and create it only if it does not exist yet
hansa chat channels ensure --name Marketing --type public
# Rename or change the type; a no-op when nothing changes
hansa chat channels set --channel marketing --name Marketing EU --type private
# Archive a channel (idempotent)
hansa chat channels archive --channel marketing
I riferimenti usano lo slug o l’ID del backend, mai la corrispondenza sul nome visualizzato. Si noti che rinominare un canale ne cambia lo slug: faccia riferimento al canale per ID negli script, oppure risolva di nuovo lo slug dopo una rinomina.
Appartenenza
hansa chat channels join --channel general # no-op when already a member
hansa chat channels leave --channel general # no-op when not a member
hansa chat channels members --channel general # list channel members
hansa chat channels invite --channel general --member 42
Messaggi diretti
hansa chat channels dm --member 42
Restituisce il canale diretto esistente con quell’utente oppure lo crea; il backend tratta questa operazione come idempotente.
Stato di lettura
Leggere canali e messaggi non cambia mai ciò che conta come letto. L’unico comando che lo fa è:
hansa chat channels mark-read --channel general
Membri del workspace
hansa chat members list --query igor # search members by text
hansa chat members get --member 42 # one member by user ID