The JSON files in schema/ describe the protocol, and they disagree with the server on next. #214 lists the differences in schema/README.md under "Where the files differ from the server". Found so far:
a numeric reply's command holds the number, and there is no code field;
the 353 body;
MODE in params;
the JOIN body;
the PING token;
the TOPIC query;
PUBKEY, which the server answers with ERR_UNKNOWNCOMMAND (421);
KICK.json puts the kicked nick in params, but the server reads it from body;
message.json allows an object as body, but the server reads only arrays of strings;
NOTICE.json allows * as to, which the server answers with ERR_NOSUCHNICK (401);
TOPIC.json says an empty array clears the topic, but the server answers [] with ERR_NEEDMOREPARAMS (461) and [""] clears it.
Found by the rewrite for #190 and its review. The list in schema/README.md as merged is the one to work from.
By that issue's rule the code decides what is true, and nothing is described that is not built. Fix: change each schema file to match what the server sends and accepts, and delete schema/commands/PUBKEY.json, since there is no such command. Then remove the "Where the files differ from the server" section from schema/README.md and correct any sentence there that the change makes false, in short plain sentences. Change no server code.
Definition of done
Every file in schema/ matches the server's behaviour on next, checked against the handler code for each command and numeric reply.
No file describes a command the server does not have.
schema/README.md has no section listing differences, and every sentence in it is true.
One reviewed PR against next, cut after #214 has landed.
Model: opus-5-5
The JSON files in `schema/` describe the protocol, and they disagree with the server on `next`. https://git.eeqj.de/sneak/neoirc/pulls/214 lists the differences in `schema/README.md` under "Where the files differ from the server". Found so far:
- a numeric reply's `command` holds the number, and there is no `code` field;
- the `353` body;
- `MODE` in `params`;
- the `JOIN` body;
- the `PING` token;
- the `TOPIC` query;
- `PUBKEY`, which the server answers with `ERR_UNKNOWNCOMMAND` (421);
- `KICK.json` puts the kicked nick in `params`, but the server reads it from `body`;
- `message.json` allows an object as `body`, but the server reads only arrays of strings;
- `NOTICE.json` allows `*` as `to`, which the server answers with `ERR_NOSUCHNICK` (401);
- `TOPIC.json` says an empty array clears the topic, but the server answers `[]` with `ERR_NEEDMOREPARAMS` (461) and `[""]` clears it.
Found by the rewrite for https://git.eeqj.de/sneak/neoirc/issues/190 and its review. The list in `schema/README.md` as merged is the one to work from.
By that issue's rule the code decides what is true, and nothing is described that is not built. Fix: change each schema file to match what the server sends and accepts, and delete `schema/commands/PUBKEY.json`, since there is no such command. Then remove the "Where the files differ from the server" section from `schema/README.md` and correct any sentence there that the change makes false, in short plain sentences. Change no server code.
## Definition of done
1. Every file in `schema/` matches the server's behaviour on `next`, checked against the handler code for each command and numeric reply.
2. No file describes a command the server does not have.
3. `schema/README.md` has no section listing differences, and every sentence in it is true.
4. One reviewed PR against `next`, cut after https://git.eeqj.de/sneak/neoirc/pulls/214 has landed.
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.
The JSON files in
schema/describe the protocol, and they disagree with the server onnext. #214 lists the differences inschema/README.mdunder "Where the files differ from the server". Found so far:commandholds the number, and there is nocodefield;353body;MODEinparams;JOINbody;PINGtoken;TOPICquery;PUBKEY, which the server answers withERR_UNKNOWNCOMMAND(421);KICK.jsonputs the kicked nick inparams, but the server reads it frombody;message.jsonallows an object asbody, but the server reads only arrays of strings;NOTICE.jsonallows*asto, which the server answers withERR_NOSUCHNICK(401);TOPIC.jsonsays an empty array clears the topic, but the server answers[]withERR_NEEDMOREPARAMS(461) and[""]clears it.Found by the rewrite for #190 and its review. The list in
schema/README.mdas merged is the one to work from.By that issue's rule the code decides what is true, and nothing is described that is not built. Fix: change each schema file to match what the server sends and accepts, and delete
schema/commands/PUBKEY.json, since there is no such command. Then remove the "Where the files differ from the server" section fromschema/README.mdand correct any sentence there that the change makes false, in short plain sentences. Change no server code.Definition of done
schema/matches the server's behaviour onnext, checked against the handler code for each command and numeric reply.schema/README.mdhas no section listing differences, and every sentence in it is true.next, cut after #214 has landed.Model: opus-5-5