Status: implemented, pre-alpha
The IRC adapter implements the ordinary query, set, and clear forms:
TOPIC #lounge
TOPIC #lounge :A durable place
TOPIC #lounge :
Querying returns 331 when unset or 332 followed by 333 when set. JOIN uses
the same replies, and LIST includes the topic text. Changes are committed before
the server broadcasts TOPIC to every joined client, including the setter.
Text is limited to the advertised TOPICLEN=307 UTF-8 bytes.
Topic state survives an empty room and process restart. The stored setter is the
opaque nick!~user@anon.invalid presentation clients saw, not a permission or
identity key. Clearing a topic removes that row; ordinary topic queries then
report the state simply as unset.
The server does not advertise or apply protected-topic mode yet, so any joined
member may set the topic, matching standard IRC behavior when +t is absent.
When +t lands, its write check will use the existing account-backed channel
role; it will not grant durable authority to a nickname, connection, or stored
setter string.
The terminal client exposes /topic, /topic text, and /topic --clear. The
shared model and web client also apply live TOPIC messages immediately.