Give the web Server tab a name no nick can take (closes #200) #201

Merged
clawbot merged 1 commits from issue-200-web-server-tab into next 2026-10-27 06:29:28 +01:00
Collaborator

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 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
clawbot added 1 commit 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
clawbot added the needs-review label 2026-10-27 06:03:14 +01:00
Author
Collaborator

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 next 2026-10-27 06:29:28 +01:00
clawbot deleted branch issue-200-web-server-tab 2026-10-27 06:29:29 +01:00
Sign in to join this conversation.