docs: fully document draft/channel-rename (RENAME syntax, permissions, PART/JOIN fallback, registered-channel rule) + a notable-capabilities section
This commit is contained in:
parent
a3525411ca
commit
93811d40df
2 changed files with 52 additions and 1 deletions
|
|
@ -31,7 +31,7 @@ require `+o` and may be further restricted by your oper type (see [Operators](/d
|
|||
| `INVITE` / `UNINVITE` | Invite or revoke a pending invite |
|
||||
| `KNOCK` | Request an invite to an invite-only channel |
|
||||
| `CYCLE` | Part and immediately rejoin |
|
||||
| `RENAME` | Rename a channel (op+) |
|
||||
| `RENAME` | Rename a channel in place (op+) — see [Channel rename](/docs/ircv3#channel-rename) |
|
||||
| `TBAN` | Set a temporary, auto-expiring channel ban |
|
||||
| `NAMES` | List channel members |
|
||||
| `MODE` | Query or change channel/user modes |
|
||||
|
|
|
|||
|
|
@ -47,4 +47,55 @@ SASL mechanism list, enabled sub-features) to CAP-302 clients.
|
|||
| `draft/filehost` | Advertise an external file-host + signed upload links |
|
||||
| `no-implicit-names` | Suppress the automatic NAMES burst on JOIN |
|
||||
|
||||
## Notable capabilities
|
||||
|
||||
A few of these do more than the one-line table can show.
|
||||
|
||||
### Channel rename
|
||||
|
||||
The `draft/channel-rename` capability lets a channel **operator** rename a channel in place, keeping
|
||||
its membership, modes, topic, bans and timestamp:
|
||||
|
||||
```text
|
||||
RENAME <#old> <#new> [<reason>]
|
||||
```
|
||||
|
||||
Members whose client negotiated the capability get a single `RENAME` message and stay in the channel
|
||||
seamlessly. Members without it are moved with an automatic **PART + JOIN** (topic and names
|
||||
preserved), so their client follows the channel too. A change that only alters the *case* of the name
|
||||
needs no move at all.
|
||||
|
||||
The server enforces a few rules:
|
||||
|
||||
- you must be a channel **operator** (or an IRC operator);
|
||||
- the channel **prefix** can't change (`#foo` → `&foo` is refused);
|
||||
- the new name must be valid and **not already in use**, and can't be `CBAN`'d (operators bypass that);
|
||||
- a **registered (`+r`) channel** is owned by services — a client can't rename it; ask ChanServ
|
||||
(`/msg ChanServ RENAME <#channel> <#newname>`), which does it over the server link. Operators may
|
||||
rename registered channels directly.
|
||||
|
||||
Failures come back as standard replies, e.g. `FAIL RENAME CANNOT_RENAME …` or
|
||||
`FAIL RENAME CHANNEL_NAME_IN_USE …`.
|
||||
|
||||
### Message history
|
||||
|
||||
`draft/chathistory` replays a channel's or DM's recent messages from the server's per-conversation
|
||||
store (the `CHATHISTORY` command). With `draft/event-playback` the replay also carries
|
||||
JOIN/PART/QUIT/NICK/MODE/TOPIC/KICK events, so a reconnecting client rebuilds the whole picture.
|
||||
|
||||
### Multiline messages
|
||||
|
||||
`draft/multiline` sends a message that spans several lines as one logical message, wrapped in a
|
||||
`BATCH`; the advertised `max-bytes` / `max-lines` limits are configurable.
|
||||
|
||||
### Web Push
|
||||
|
||||
`draft/webpush` registers an RFC 8291 / 8292 subscription (the `WEBPUSH` command) so a highlight or
|
||||
private message reaches a client whose tab is backgrounded or away — even when it isn't connected.
|
||||
|
||||
### STS
|
||||
|
||||
`sts` advertises a strict-transport-security policy on the plaintext port so capable clients upgrade
|
||||
to TLS and pin it for a configured duration.
|
||||
|
||||
For SASL mechanisms, see [Accounts & SASL](/docs/accounts).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue