Developer postOriginal post (opens in a new tab)

1.11.4

🐑 sheepChat 1.11.4 — now on Nightly and Beta!

The fresh 1.11.4 update is already available on the Nightly and Beta channels in Steam — you can install and try it right now.

A reminder about the update channels in Steam:

• Nightly — the freshest builds (currently 1.11.4)

• Beta — early testing (currently 1.11.4)

• Default — the stable version for everyone (still on 1.9.169 for now)

How to switch: Steam → right-click sheepChat → Properties → Betas → pick a channel from the list.

---

Version 1.11.4

The headline of this update: YouTube chat no longer drops messages. The app now connects to the full chat stream — previously it received only YouTube's "interesting" selection, from which YouTube itself quietly removed some authors and harsh/profane messages; now you see everything viewers actually post (in a live test on a filtered chat this surfaced almost a third more messages). On top of that, brief connection drops no longer break the chat and are backfilled after the fact. Also in this release: text-to-speech is more reliable and finally plays on "finicky" output devices; the app no longer leaves stuck background processes after closing and behaves correctly on relaunch; custom themes and CSS are now premium features; and the support log archive is now scrubbed of private data.

Chat: message delivery (YouTube)

YouTube no longer hides part of the chat. Previously the app connected to a "curated" chat stream that YouTube builds with its own algorithm — and that algorithm silently dropped some authors and rude/profane messages. As a result streamers didn't see the whole chat: some viewers seemed to "vanish," and then those viewers would say they'd written something. The app now requests the full "all messages" stream, without YouTube's hidden filtering. In a live test on an active channel this surfaced about a third more visible messages — exactly the kinds that used to go missing. This was the main source of complaints that "YouTube doesn't show everyone and swallows swearing."

Chat: message delivery (YouTube) (continued)

Messages aren't lost during connection drops. On a dropped connection (including drops caused by censorship-circumvention tools and unstable internet), the app used to mistake a brief glitch for the end of the broadcast, reconnect from scratch — and everything viewers wrote during those seconds was lost. Such drops are now recognized as temporary network glitches: the connection resumes from exactly the same point, and messages that arrived during the dip are picked up and shown after the fact — without re-reading them aloud and without duplicating what was already displayed.

Correct order and no batch losses. YouTube chat messages now always appear in the order viewers sent them, and are shown as a whole batch at once rather than one at a time with a delay. Previously, on a busy chat some fresh messages could appear later than older ones, and if reception was briefly interrupted, up to nine buffered messages could be lost entirely.

A glitch in a minor detail no longer "eats" the message. Fixed a rare case where an error in a secondary detail — the pop-up notification about a new message, or loading an extra viewer badge — could silently cancel the display of the entire message in chat. Now a hiccup in such a detail no longer costs the viewer the whole message.

Messages YouTube doesn't show right away are no longer lost. Sometimes YouTube first sends a message in a temporary, "draft" form and a moment later replaces it with the final one (for example, while it's under review). Previously, on such a replacement the final message might not appear in chat at all — the app now handles it correctly, and the message reaches the viewer.

Text-to-speech and audio

Text-to-speech plays on "finicky" output devices. TTS audio now actually plays on devices that used to appear in the list but were silent in practice (some USB headsets and non-standard audio outputs, including the output of a DualShock 4 gamepad with headphones plugged in). Previously the sound quietly went to the default device even though a different one was selected in settings — and you were left guessing why the chosen device stayed silent. Now TTS goes exactly where you pointed it.

The voice list no longer disappears. If the server with the TTS voice list is temporarily unavailable, the app falls back to the last successfully loaded list, and if there is none — to a built-in backup set. Previously, during service hiccups the voice list in settings could simply fail to load, and you couldn't change the voice.

Fewer "silent" TTS playbacks. On a brief speech-synthesis failure the app now quietly retries and still voices the message instead of silently skipping it. These extra retries don't apply to paid voices or the test preview in settings — so there's no accidental double spend.

Stability and startup

No stuck processes after closing. Fixed the cause of stuck helper processes lingering in the background after you quit the app (especially over Steam) — because of them Steam considered the app still running and wouldn't let you open it again. Now, when the app exits, all of its background processes are guaranteed to close along with it at the operating-system level.

Stability and startup (continued)

Sensible behavior on relaunch. If the app is already open, clicking the shortcut again or launching via Steam now simply brings the existing window to the front. And if the previous copy really is frozen and unresponsive, the app detects this and offers to close it and start fresh. Previously, in this situation the app could either silently fail to open, or mistakenly close an already-running healthy copy and cut off your current chat session.

Protection against hangs on shutdown. If closing the app itself stalls for more than a few seconds on an internal shutdown step, it now forcibly terminates itself instead of hanging in the background indefinitely.

The "Game Mode" window recovers after a crash. The chat overlay on top of the game now reliably reloads after a rare internal crash — just like the main chat window — and messages that arrive during the crash aren't lost but arrive once it recovers. Previously such a crash meant a "black/blank" overlay until a manual restart.

"Game Mode" transparency. Fixed a case where, on some graphics-card configurations, the "Game Mode" window background filled with solid black instead of the transparency needed to overlay chat on top of the game.

The collected-donations counter starts from zero. On every app launch the donations counter (for fundraising goals) now starts from zero and counts the current session's income, rather than picking up old totals from history. Donations that arrive during a brief connection drop are still counted correctly on reconnect.

Stability and startup (continued)

Diagnostics of a failed launch are preserved. If the app crashed or froze and you immediately launched it again, the log of that failed launch used to be overwritten by the new start. It's now saved separately and included in the log archive — the most useful information for troubleshooting is no longer lost.

Themes and appearance

Custom themes and custom CSS are premium features. Custom chat themes and custom CSS for "Game Mode" are now available with an active premium: for free users the custom-themes tab is hidden, and custom "Game Mode" CSS is not applied — neither in the overlay itself nor in the OBS widget. Important: everything you've already set up and saved stays in place — as soon as premium is active, your themes and CSS are available again and applied without any action on your part.

Your custom theme applies right at startup. Previously your custom theme would take effect in the game overlay and the OBS widget only after you opened the themes tab in settings at least once. It now applies immediately when the app starts.

Interface

Service messages — no preview cards, links are readable. Channel connection-status notices (reconnecting, errors, etc.) no longer expand a pop-up preview card for links inside the text — instead a plain clickable link is shown with a decoded address (no unreadable sequences like %D0%91 in place of Cyrillic). This works in the main chat window, the game overlay, and the OBS widget.

Interface (continued)

Readable links in the preview and notification center. In the link preview card (when you hover over a link in a normal message) the title and address are now also shown decoded if the link contained Cyrillic. And the notification center no longer creates a duplicate entry when you rename or change a channel's link in an existing settings slot — the entry is simply updated instead of spawning a duplicate next to it.

The emote blacklist now works for platform emotes too. If you've added an emote to the blacklist, it's now no longer replaced with an image for platforms' "native" emotes either (YouTube, Twitch, Kick, GoodGame, Picarto, Trovo, Steam), not just for your own emotes — it stays as text, as intended.

Privacy and logs

A "Collect log archive" button for support. In settings (Advanced → Miscellaneous → the "Logging" block) there's a new button that collects, in one click, a ZIP archive of the app's operation logs (startup and main-operation logs, recent event-log entries) — handy to attach to a support request. The archive does not include your personal environment settings, channel names, or system paths containing your account name.

The archive and logs are scrubbed of private data. Secret donation-service tokens and private chat links (Restream, StreamVi and the like), cookie values, and the path to your user folder containing your Windows account name are now reliably stripped from the log archive and the background operation logs — a redaction marker is left in their place. Username masking is more precise and works even in rare edge cases. A log line corrupted during an abnormal shutdown is now skipped as unreadable rather than shown in the archive as-is.

Network and compatibility

A hint when circumvention tools cause trouble. If the app fails to reach several different platforms in a row — a typical sign that a censorship-circumvention tool or proxy is interfering with the connection — it unobtrusively hints once per session about what's happening and suggests what to try (switch the circumvention/VPN mode, or turn off the new network protocol in settings). Previously such drops looked like inexplicable failures out of nowhere.

Updated platform compatibility. The parameters by which platforms (Twitch, YouTube and Rutube in particular) recognize the app have been updated — the previous ones were noticeably outdated. This improves chat-connection stability after service-side updates.

More accurate detection of YouTube sign-in. The sign-in check on the YouTube authorization tab now looks at the same login data the chat connection uses. Previously it used an outdated method that could wrongly show "not signed in" even when you actually were. The sign-in procedure itself is also more reliable now and carries authorization through to completion.

Security

Stronger verification of network connections. The app's connections to servers (account sign-in, cloud TTS, some platforms) now go through full certificate-authenticity verification and rely on the Windows system trusted-certificate store — the same one the browser uses. A useful side effect: on computers with antiviruses that inspect encrypted traffic, some network features (TTS, sign-in, TikTok) could previously work unreliably — that's now fixed.

Security (continued)

Restricted access to internal window management. The internal window-management function now accepts requests only from the app's own trusted windows, not from any embedded web content (for example, a third-party widget page) — this closes off a theoretical possibility of elevated access bypassing the usual restrictions.