Příkazy pro kanály nejprve načtou aktuální stav a poté dospějí do stavu, který
požadujete: opakování příkazu, který již nabyl účinku, uspěje s changed: false
místo selhání nebo duplikace.
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
Vytváření a změna kanálů
# 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
Odkazy používají slug nebo ID z backendu, nikdy porovnávání zobrazovaného názvu. Všimněte si, že přejmenování kanálu změní jeho slug — ve skriptách odkazujte na kanál podle ID, nebo jej po přejmenování vyřešte znovu.
Členství
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
Přímé zprávy
hansa chat channels dm --member 42
Vrátí existující přímý kanál s daným uživatelem, případně jej vytvoří; backend považuje tuto operaci za idempotentní.
Stav přečtení
Čtení kanálů a zpráv nikdy nemění to, co se počítá jako přečtené. Jediný příkaz, který to dělá, je:
hansa chat channels mark-read --channel general
Členové workspace
hansa chat members list --query igor # search members by text
hansa chat members get --member 42 # one member by user ID