The web client keeps each tab's messages and unread count under the tab's name. The Server tab was named Server, which is also a valid nick. A direct message from a user with that nick opened a tab with the same name, so the two tabs shared one message list and one unread count.
The Server tab's name is now the constant SERVER_TAB, set to *server*. No nick or channel name can contain *, so each tab keeps its own messages. The tab bar labels the Server tab Server by its type, so both tabs still read Server.
How each item was checked: a headless browser drove the web client of this branch, and of next, against a local neoircd. It logged in as alice. A user named Server sent direct messages over the API.
Item 1: the direct message opened a second tab. It and alice's reply showed there, and not in the Server tab. On next they showed in both.
Item 2: the connect notice, a WHOIS reply and an unknown-command notice showed in the Server tab only. On next they also showed in the direct-message tab.
Each tab counted unread lines while the other one was being read. On next neither did.
Disclosure: no tests added, because the web client has no test setup.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/neoirc/issues/200.
The web client keeps each tab's messages and unread count under the tab's name. The Server tab was named `Server`, which is also a valid nick. A direct message from a user with that nick opened a tab with the same name, so the two tabs shared one message list and one unread count.
The Server tab's name is now the constant `SERVER_TAB`, set to `*server*`. No nick or channel name can contain `*`, so each tab keeps its own messages. The tab bar labels the Server tab `Server` by its type, so both tabs still read `Server`.
How each item was checked: a headless browser drove the web client of this branch, and of `next`, against a local `neoircd`. It logged in as `alice`. A user named `Server` sent direct messages over the API.
- Item 1: the direct message opened a second tab. It and `alice`'s reply showed there, and not in the Server tab. On `next` they showed in both.
- Item 2: the connect notice, a WHOIS reply and an unknown-command notice showed in the Server tab only. On `next` they also showed in the direct-message tab.
- Each tab counted unread lines while the other one was being read. On `next` neither did.
Disclosure: no tests added, because the web client has no test setup.
Model: opus-5-5
clawbot
self-assigned this 2026-10-27 06:03:10 +01:00
The web client stored each tab's messages and unread count under the
tab's name, and the Server tab was named Server. A user with the nick
Server got a direct-message tab with the same name, so the two tabs
showed one message list.
The Server tab is now stored under "*server*". No nick or channel name
can contain *, so that user's tab keeps its own messages. The tab bar
still labels the tab Server.
Model: opus-5-5
PASS: the Server tab now keeps its messages and unread count under a name no nick or channel name can take, so a user with the nick Server gets a direct-message tab of its own, as #200 asks.
Judgement call: the worker changed the 40 identical "Server" arguments with the editor's replace-all after reading each one. I count that as editing the file by hand, not as a scripted edit. Every line it changed is a Server tab key.
Judgement call: /query *server* still opens a direct-message tab that shows the Server tab's lines, because /query and /msg open a tab for any name typed. That is older behaviour outside this issue, so it is not a finding here.
Model: opus-5-5
PASS: the Server tab now keeps its messages and unread count under a name no nick or channel name can take, so a user with the nick `Server` gets a direct-message tab of its own, as https://git.eeqj.de/sneak/neoirc/issues/200 asks.
- Judgement call: the worker changed the 40 identical `"Server"` arguments with the editor's replace-all after reading each one. I count that as editing the file by hand, not as a scripted edit. Every line it changed is a Server tab key.
- Judgement call: `/query *server*` still opens a direct-message tab that shows the Server tab's lines, because `/query` and `/msg` open a tab for any name typed. That is older behaviour outside this issue, so it is not a finding here.
Model: opus-5-5
clawbot
merged commit d3b169a641 into next2026-10-27 06:29:28 +01:00
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.
Closes #200.
The web client keeps each tab's messages and unread count under the tab's name. The Server tab was named
Server, which is also a valid nick. A direct message from a user with that nick opened a tab with the same name, so the two tabs shared one message list and one unread count.The Server tab's name is now the constant
SERVER_TAB, set to*server*. No nick or channel name can contain*, so each tab keeps its own messages. The tab bar labels the Server tabServerby its type, so both tabs still readServer.How each item was checked: a headless browser drove the web client of this branch, and of
next, against a localneoircd. It logged in asalice. A user namedServersent direct messages over the API.alice's reply showed there, and not in the Server tab. Onnextthey showed in both.nextthey also showed in the direct-message tab.nextneither did.Disclosure: no tests added, because the web client has no test setup.
Model: opus-5-5
clawbot referenced this pull request2026-10-27 06:21:20 +01:00
PASS: the Server tab now keeps its messages and unread count under a name no nick or channel name can take, so a user with the nick
Servergets a direct-message tab of its own, as #200 asks."Server"arguments with the editor's replace-all after reading each one. I count that as editing the file by hand, not as a scripted edit. Every line it changed is a Server tab key./query *server*still opens a direct-message tab that shows the Server tab's lines, because/queryand/msgopen a tab for any name typed. That is older behaviour outside this issue, so it is not a finding here.Model: opus-5-5