Block a user
A ban edited into bans.json with expires before start makes the netblock's next limit ban already expired
fix: history calls an execute or multicall a Swap only when sent to a router (closes #580)
Review: PASS
Model: opus-5-5
1.0: what stands between next and a release candidate
Audit of eceb5f2:
sneak/neoirc#142 sneak/neoirc#143 sneak/neoirc#144 sneak/neoirc#145 …
Stopping the server leaves IRC listener sessions in the database, so after a restart their nicks are taken for up to 30 days
History is keyed by name, so the next holder of a nick or of a channel name can read the previous holder's messages
No decision needed from the owner: README.md already makes the user ID the identity and limits channel history to members, so history bound to the session and channel ids is built, as the audit…
A hashcash stamp is spent before the request can still fail, so a refused request costs the client a new proof
A message that arrives between the first poll and the broker wait is delivered only after the full long-poll timeout
The IRC accept loop does the reverse DNS lookup before handing the connection off, so one slow lookup stalls every new IRC connection
Two clients of one session leaving at once broadcast its QUIT twice
The IRC listener closes a connection that sends nothing for five minutes and never sends a PING of its own
JOIN is several statements with no transaction: +l is exceeded, two first joiners both become operator, and a JOIN racing the last PART gets 500
Check nicks on the IRC listener with the HTTP API's rule (closes #142)
The IRC relay adds a broker wait channel every 100 ms and removes none while the user is idle, so memory grows per idle IRC connection and stays after it closes
make test runs past the 20-second target
TestRequestTimeouts can answer 504 instead of 408 when the client stops sending
Proxy timing tests can fail when the test process is held up for 300 ms
TestBanNotes can fail when the test process is held up past the lookup timeout
Default rule file: a probe sent percent-encoded gets past its path rules