Commit Graph
147 Commits
Author SHA1 Message Date
SalastilandClaude Sonnet 5.5 ccf86fe5ec Stoat: a read told soon after another is told when the wait is up, not dropped; the spoiler mark in the file tray; the probe; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 18:19:35 -04:00
SalastilandClaude Sonnet 5.5 9a6ece71be Stoat: a link to a server is drawn as a card to join it (the invite card), joined from the card; the probe covers it; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 10:21:49 -04:00
SalastilandClaude Sonnet 5.5 229baf122c Stoat: Focus in the status menu with its dot, a status line for Stoat, Idle and Invisible offered; probes; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 10:01:20 -04:00
SalastilandClaude Sonnet 5.5 d90669cb1e Stoat (#32): the probe checks reaction counts; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 09:27:00 -04:00
SalastilandClaude Sonnet 5.5 657d01a986 Stoat (#32): the probe covers an emoji from another server; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-24 09:18:16 -04:00
SalastilandClaude Sonnet 5.5 d7c4e8767e Stoat (#32): avatars and server icons were refused by the window's media protocol and never fetched again; the probe now checks they load
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 23:43:10 -04:00
SalastilandClaude Sonnet 5.5 96ea7e7623 Stoat (#32): who is in a voice channel, listed under it; a spoilered picture is covered; probes
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 23:30:53 -04:00
SalastilandClaude Sonnet 5.5 1731674530 Stoat (#32): the window for the rest - settings page, own profile, a server's settings, search, pins, mutes, rings, blocks; probes; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 23:25:27 -04:00
Salastil 1d674edfe6 wip 2026-10-23 22:05:23 -04:00
SalastilandClaude Sonnet 5.5 0e1e6f38ed Stoat (#32): emoji in the box and the messages, member menu roles and moderation, an invite link on the server menu; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 19:59:01 -04:00
SalastilandClaude Sonnet 5.5 120fb10134 Stoat (#32): join panel (invite, friend), friend requests on the invitations tile, a self-contained local probe; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 19:33:52 -04:00
SalastilandClaude Sonnet 5.5 66a680167b Stoat (#32): the local-instance probe and helpers; files on the Composer; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 19:18:22 -04:00
SalastilandClaude Sonnet 5.5 f4e8136ff3 Stoat (#32): the Accounts form, the service's mark and label, and the Discord-shaped gestures for it; nobilis pointer
- Add an account: Stoat (instance optional, email and password, second factor, or a pasted token)
- edit, delete, react and the up-arrow edit on Stoat messages; Discord-style markdown (spoilers are !!..!!) in the compose box
- harness check for the form

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 18:52:23 -04:00
SalastilandClaude Sonnet 5.5 b6b308df0b Telegram links open in moho: tg:// is moho's to handle (the View in Telegram button of a web post), and a t.me link in a message goes to the chat and the post; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 11:56:24 -04:00
SalastilandClaude Sonnet 5.5 b481fb8126 Telegram (#26): stickers, QR sign-in, folders as categories both ways, topic unread seeds; nobilis pointer
- the sticker button and tab for Telegram accounts (listTelegramStickers / sendTelegramSticker)
- "Sign in with a QR code" in the Telegram form, needing only the api_id and api_hash
- a Telegram account's page draws its chat folders as categories, in Telegram's order, and what is done to
  them is done on Telegram: filing a conversation (drag), putting headings in order, making (a category is a
  folder once it has a conversation in it), renaming, deleting; a folder changed on another device turns up
- a conversation's unreadSeed / mentionsSeed start the window's unread count where the service keeps its own
- harness checks for the folders page and the QR button

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 11:19:45 -04:00
SalastilandClaude Sonnet 5.5 df818a13bb A reply's quote draws what it quotes: emotes, emoji and stickers as pictures, not their codes, in the line over a reply and in the bar over the box, on every service
Twitch's parent text has no emotes, so the original on screen is quoted where it is there.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 22:07:16 -04:00
SalastilandClaude Sonnet 5.5 b04189ad6b Discord: first-word lock, nonce, upload limit and send pacing; window banner and check; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 20:42:43 -04:00
SalastilandClaude Sonnet 5.5 5b438be371 The message box: bold, italic, underline and strikethrough are the browser's own, which toggle off from all of the box and keep its undo; the others are put back without the browser re-applying what it replaced
Select all then bold twice left the box bold: the browser keeps the formatting of the run it replaces when the selection is everything in it.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 20:01:48 -04:00
SalastilandClaude Sonnet 5.5 0c331abf2c The GIF check shows IRC as a Matrix account to reach the picker (IRC has none); CHANGELOG: search and formatting
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 19:28:39 -04:00
SalastilandClaude Sonnet 5.5 4233439565 Search the web for selected text: in a message's menu and the box's, with the engine chosen in Settings > General
DuckDuckGo (default), Google, Bing, Brave, Startpage, Ecosia, Qwant, Yandex, Kagi, or an address of one's own with %s; opened in the default browser.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 19:18:28 -04:00
SalastilandClaude Sonnet 5.5 496d18f6fd The message box: a format toggles off, over a whole run, part of one or a mixed selection, and undo steps back over it with the selection kept
Worked out on a copy of the box and put back with one insertHTML (one undo step, and the browser no longer re-applies the format of what it replaced); undo and redo put back the selection that was there.

Fixes #336

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-21 19:18:28 -04:00
SalastilandClaude Sonnet 5.5 0f7cec7a98 Telegram: the account form, the mark and the service lists; nobilis pointer
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 23:17:28 -04:00
SalastilandClaude Sonnet 5.5 d1e39f18b0 Windows can be resized by their edges: channel list, member list, stream above the chat, and the corner panel from every edge
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 21:14:42 -04:00
SalastilandClaude Sonnet 5.5 dd4bd2e257 Twitch: the stage reports watching once a minute while playing; Settings switch
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 21:04:29 -04:00
SalastilandClaude Sonnet 5.5 a6fd981b6f Twitch: no third-party emote services; channel emotes greyed in the picker
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 19:52:54 -04:00
SalastilandClaude Sonnet 5.5 ae98f70d95 Twitch emotes: refresh in the picker, own line draws emotes; check against the real services
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 19:42:45 -04:00
SalastilandClaude Sonnet 5.5 38794e7cc5 Rewards: the emotes a reward offers are pictures to press, with a search and a second step for changes; integrity as the account
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 18:58:27 -04:00
SalastilandClaude Sonnet 5.5 aacbde768f Rewards panel: choose-an-emote and typed rewards; recent emoji only where they can be sent
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 18:47:33 -04:00
SalastilandClaude Sonnet 5.5 5518f1c534 Rewards panel: cheapest first, available above unavailable
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 18:29:06 -04:00
SalastilandClaude Sonnet 5.5 399f521f55 One rewards panel over the chat for Kick and Twitch channel points, opened from the plaque
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 18:23:01 -04:00
SalastilandClaude Sonnet 5.5 3d77002de3 Twitch: whisper badge shows (no presence dot), a script that checks the Twitch parts of the window
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 17:17:55 -04:00
SalastilandClaude Sonnet 5.5 bb2edf573d Sneedchat: greentext in 4chan's green, and a sent greentext line is matched with the site's coloured echo
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 16:36:59 -04:00
SalastilandClaude Sonnet 5.5 9ef8a67ac4 Every service notification is drawn as a card; the rule is in ARCHITECTURE.md
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 15:11:23 -04:00
SalastilandClaude Sonnet 5.5 c346b20e3d Twitch: whisper badge, moderation cards with their own glyphs
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 15:03:51 -04:00
SalastilandClaude Sonnet 5.5 b2c793477b Twitch sign-in: type the code into Twitch's Activate page and press Activate; show the code in the form
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 11:53:14 -04:00
SalastilandClaude Sonnet 5.5 be013ea47c Twitch sign-in: wait out the site's own redirect after login and bring the window back to the approval page; find the session by a second cookie too
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 11:39:08 -04:00
SalastilandClaude Sonnet 5.5 5b2438bba5 Twitch: one sign-in window gives the account chat and video together
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 10:56:30 -04:00
SalastilandClaude Sonnet 5.5 5356ddba55 Twitch: emotes and badges drawn, moderation and whispers in the window, README
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 09:18:31 -04:00
SalastilandClaude Sonnet 5.5 ac60123e7d Twitch: the stream plays in the window like Kick's, with its ad breaks said
Twitch prefetch segments are read as Kick's are, the ad break is said over the picture from the
playlist's own markers, mute and volume are remembered, the resolution choice is kept per service,
captions inside the video are offered, and the account's card can sign in on twitch.tv for video, open
what it follows, and forget the sign-in. A hidden page in main makes an integrity token on request.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 08:53:25 -04:00
SalastilandClaude Sonnet 5.5 d3a1efc1ef Twitch: Settings page, recent messages on opening a channel, the sign-in scripts
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 00:43:22 -04:00
SalastilandClaude Sonnet 5.5 322cbc8407 Twitch: the window signs in, joins channels and draws them
The Twitch mark, the sign-in form with the code and the page to approve it on, read-without-signing-in, an
account's own sign-in-again, the join panel, the signed-out composer, twitch emote pictures, and badge words
for a first message and a shared chat.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-14 00:32:29 -04:00
SalastilandClaude Sonnet 5.5 dd44e76970 Kick: the points plaque follows Kick's push, and badge pictures are drawn beside names
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 23:11:26 -04:00
SalastilandClaude Sonnet 5.5 987644ebf1 Kick: the recently-talking count keeps rising past what is listed
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 21:51:35 -04:00
SalastilandClaude Sonnet 5.5 8e3d1100c9 Kick: threads from replies, and removed messages struck through, left out or replaced as chosen
A reply shows a button into its thread; the thread panel gathers every reply that names the same root, and
sending in it works even when the first message has left the scrollback. Messages Kick removes stay in the
log, and Settings -> Kick chooses Delete, Strikethrough (the default, in red) or a notice in place of the text.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 21:17:34 -04:00
SalastilandClaude Sonnet 5.5 a7ef798df5 Kick video: no prefetch guesses for streams whose segments differ in length, and a longer lead for long segments
A broadcaster that sends its own segments (3 to 5 s, not IVS's even 2) made the segments still being
made the wrong length, and the picture stopped in the gaps about every 8 s. Prefetch is now only taken
where the segments are alike, and the player stays a segment and a half behind where they are long.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 20:24:06 -04:00
SalastilandClaude Sonnet 5.5 3aff255375 Kick video: about 3.5 s behind instead of 20, no rebuild on every address, a resolution menu and live captions
The player was rebuilt whenever the channel payload's address changed, which was every fetch (a new token
each time): that was the stutter. hls.js counted its live edge in 6 s target durations and ignored IVS's
prefetch segments: that was the lag. Both are fixed, prefetch segments no longer feed the bandwidth
estimate, and the address now comes from the lighter playback-url endpoint with its ad opt-out kept.
Resolution and CC buttons sit in the player's controls.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 19:57:03 -04:00
SalastilandClaude Sonnet 5.5 239c1e0ced Direct-messages headings made from a Steam account's folders are called protocol, then folder; a probe for QR sign-in
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 15:17:43 -04:00
SalastilandClaude Sonnet 5.5 2329abe29b Probes: leave a Steam group through the window, and list an account's groups after a fresh sign-in
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 14:55:04 -04:00
SalastilandClaude Sonnet 5.5 f03f8b276b Leaving a Steam group: a room's menu offers it, the settings dialog says when it fails, and a voice room is left with the group
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 14:41:44 -04:00
SalastilandClaude Sonnet 5.5 c6e3dd7ebf Steam group invitation on the Invitations tile, photographed; nobilis updated
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-13 14:10:38 -04:00