For #145, against the API as README.md and internal/handlers define it.
/mode +m and /mode +o nick send the change in body. /mode alone sends the query, and the 324 reply is printed.
Numeric replies are matched on code. 353 names are hostmasks; the nick is the part before !.
The member list takes @ and + from isOperator and isVoiced.
A 401 on the poll reloads the page. The reload's /state probe gets 401 and shows the login form.
The token code is gone. The page always probes /state on load to resume a session.
How each item was checked, in headless Chromium against make build with the bundle from web/build.sh:
/mode +v bob, /mode +m, then /mode, reading the Server tab.
/list, /who, /whois bob, reading the Server tab.
The member list after +v bob, and again with /channels/*/members blocked so only 353 fills it.
PASS, a second client logged in with curl sends QUIT, then the first page is watched.
Request headers and localStorage keys recorded across login and a reload.
Disclosures:
Judgement call: the 401 path reloads the page, as /quit does, rather than resetting state by hand.
Further bug fixed: WHOIS 313 and 317 printed only their body. 311 now also shows user@host.
Not fixed, elsewhere: a MODE change sent to members prints only its body (+m).
Not fixed, elsewhere: saved channels are overwritten with [] on every page load, so a new session never rejoins them.
Model: opus-5-5
For https://git.eeqj.de/sneak/neoirc/issues/145, against the API as `README.md` and `internal/handlers` define it.
- `/mode +m` and `/mode +o nick` send the change in `body`. `/mode` alone sends the query, and the 324 reply is printed.
- Numeric replies are matched on `code`. 353 names are hostmasks; the nick is the part before `!`.
- The member list takes `@` and `+` from `isOperator` and `isVoiced`.
- A 401 on the poll reloads the page. The reload's `/state` probe gets 401 and shows the login form.
- The token code is gone. The page always probes `/state` on load to resume a session.
How each item was checked, in headless Chromium against `make build` with the bundle from `web/build.sh`:
1. `/mode +v bob`, `/mode +m`, then `/mode`, reading the Server tab.
2. `/list`, `/who`, `/whois bob`, reading the Server tab.
3. The member list after `+v bob`, and again with `/channels/*/members` blocked so only 353 fills it.
4. PASS, a second client logged in with curl sends QUIT, then the first page is watched.
5. Request headers and localStorage keys recorded across login and a reload.
Disclosures:
- Judgement call: the 401 path reloads the page, as `/quit` does, rather than resetting state by hand.
- Further bug fixed: WHOIS 313 and 317 printed only their body. 311 now also shows `user@host`.
- Not fixed, elsewhere: a `MODE` change sent to members prints only its body (`+m`).
- Not fixed, elsewhere: saved channels are overwritten with `[]` on every page load, so a new session never rejoins them.
Model: opus-5-5
The web client was written against an older shape of the API.
MODE now carries its change in `body`, so /mode sets modes; /mode
alone queries them and the 324 reply is shown. Numeric replies are
matched on `code`, so /list, /who and /whois print their lines, and
353 names are read as hostmasks. The member list takes @ and + from
`isOperator` and `isVoiced`. A 401 on the poll reloads the page, which
shows the login screen, where it used to retry for ever. The token
code is gone: no Authorization header, nothing stored, and the page
always asks /state whether it can resume a session.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
For #145, against the API as
README.mdandinternal/handlersdefine it./mode +mand/mode +o nicksend the change inbody./modealone sends the query, and the 324 reply is printed.code. 353 names are hostmasks; the nick is the part before!.@and+fromisOperatorandisVoiced./stateprobe gets 401 and shows the login form./stateon load to resume a session.How each item was checked, in headless Chromium against
make buildwith the bundle fromweb/build.sh:/mode +v bob,/mode +m, then/mode, reading the Server tab./list,/who,/whois bob, reading the Server tab.+v bob, and again with/channels/*/membersblocked so only 353 fills it.Disclosures:
/quitdoes, rather than resetting state by hand.user@host.MODEchange sent to members prints only its body (+m).[]on every page load, so a new session never rejoins them.Model: opus-5-5
PASS
Model: opus-5-5