• v2026.10.9 Stable

    Agent released this 2026-10-09 15:25:31 -06:00 | 5 commits to main since this release

    New

    • Message timestamps now show the day when a message wasn't sent today. Today's messages still show just the time; older ones read "Yesterday 4:04 PM", a weekday like "Mon 4:04 PM" for the past week, then the date ("Oct 2, 4:04 PM", with the year if it isn't this one). Hover a time to see the full date. Everything is in your local time, and the labels update on their own when midnight passes while a tab is open.

    Fixed

    • A run of messages from the same person that crossed midnight (for example 11:58 PM then 12:01 AM) stayed under a single header and timestamp. A new day now always starts a new header.
    • A very long display name can no longer push a message's timestamp out of the row on a phone.
    Downloads
  • v2026.10.2 Stable

    Agent released this 2026-10-02 16:07:07 -06:00 | 7 commits to main since this release

    New

    • Formatting toolbar in the message composer. Click the Aa button next to the emoji button to open it. It inserts markdown for you: bold, italic, strikethrough, inline code, code blocks, links, quotes, bulleted and numbered lists, headings, subscript and superscript. Select text first to wrap it, or click a button again to take the formatting back off. It stays collapsed until you open it and remembers your choice. You can still type markdown by hand.
    • The toolbar's ? button opens the formatting help in a new tab, so your draft isn't lost.

    Fixed

    • Links straight to a section of the Help page (like /help#formatting) now scroll to that section instead of landing at the top.

    Other

    • Earlier this cycle (v2026.9.26 and v2026.9.28): live message delivery now recovers on its own after Redis restarts, and the desktop app's tray unread indicator clears only when you actually open the room.
    Downloads
  • v2026.9.28 Stable

    Agent released this 2026-09-28 17:22:27 -06:00 | 9 commits to main since this release

    Fixed

    • Desktop app tray unread indicator: it now clears only when you actually open the room with the unread message, not just because the window was shown, focused, restored, or opened from the tray.

    Other

    • Added a frontend automated test suite (previously none existed).
    Downloads
  • v2026.9.26 Stable

    Agent released this 2026-09-26 15:20:24 -06:00 | 11 commits to main since this release

    Fixed

    • Root-caused and fixed the actual cause of live messages silently going missing (the same symptom v2026.9.23 partially addressed): a dropped Redis connection -- e.g. Redis itself restarting -- could permanently and silently kill the one background task responsible for delivering live messages to every room and every user on a server, with nothing to bring it back short of a full restart. That task now supervises itself and automatically reconnects if it ever goes down.

    If you were affected by this and had to manually restart the ds-chat service to restore live delivery, this release means that shouldn't be necessary going forward.

    Downloads
  • v2026.9.23 Stable

    Agent released this 2026-09-23 12:59:18 -06:00 | 13 commits to main since this release

    Fixed

    • Messages could silently stop arriving live until you switched to a different room and back. Root cause: a WebSocket connection that dies without a clean close (laptop sleep, an idle connection dropped by a proxy or NAT) looked identical to a healthy one, so the app never noticed it needed to reconnect. The server now pings every 30s and the client reconnects on its own if it hears nothing back for 65s.
    • Also hardened message delivery against a related edge case: a single misbehaving connection could no longer take down live delivery for everyone on a server.
    Downloads
  • v2026.9.4 Stable

    Agent released this 2026-09-04 21:38:08 -06:00 | 15 commits to main since this release

    This project now has a public home on GitHub: https://github.com/ds-ksmith/DS-Chat

    Public-release cleanup

    • Removed personal/deployment-specific details from documentation and the app's own UI -- the About screen's "Source code" link is now a configurable VITE_SOURCE_URL build setting instead of a hardcoded personal URL
    • LICENSE now has a proper copyright notice
    • Added CONTRIBUTING.md, including contributor terms that keep a future dual-licensed offering possible
    • DEPLOYMENT.md's setup instructions now point at the real public repo

    Deploy process

    • deploy/upgrade.sh now only ever deploys a tagged release (fetches tags, checks out whichever is newest) instead of pulling the tip of the default branch -- production can no longer land on an untagged, in-progress commit
    • Removed an internal tooling config file that had been accidentally tracked since the very first commit (no sensitive content, just local dev tooling)
    Downloads
  • v2026.9.3 Stable

    Agent released this 2026-09-03 21:00:59 -06:00 | 20 commits to main since this release

    New

    • Adjustable text size and an independent emoji size preference (reactions included), in Profile settings
    • A welcome message posted automatically when an admin adds someone to a room
    • Custom emoji management moved to its own screen (account menu → Custom emoji) instead of the reaction picker, where the delete button was too easy to hit by accident on a touch screen

    Fixed

    • Link previews now revalidate every 5 minutes instead of caching for a full week
    • Consecutive messages from the same sender now break into a new group with a fresh timestamp after a 5-minute gap, instead of always hiding under the first message's timestamp
    Downloads
  • v1.1.0 f6c71753b5

    v1.1.0 Stable

    Agent released this 2026-08-28 21:27:58 -06:00 | 28 commits to main since this release

    New

    • Direct messages: 1:1 conversations, with hide/reappear-on-new-activity behavior
    • Message deletion
    • Custom emoji: upload your own, usable in both reactions and message text (:shortcode:), alongside emoji shortcode autocomplete in the composer
    • Inline video attachments, with an expand-to-lightbox view
    • Collapsible DM/Room sidebar sections
    • Extended markdown: heading IDs, subscript, superscript
    • Resend unaccepted invites
    • Email notifications: a DM's recipient gets emailed when genuinely offline; rooms support opt-in email on the first unread message and every mention; outgoing email is now styled HTML instead of plain text
    • Active sessions: see every device/IP your account is logged in from, and revoke ones you don't recognize (session storage is now server-side, not just a stateless cookie)
    • A new app icon and favicon

    Fixed

    • Archiving a room now actually restricts existing members, not just new joins
    • DM presence indicator updates live instead of going stale
    • Desktop notifications/messages no longer require refocusing the window to appear
    • Hidden DMs reappear correctly when a new message arrives
    • Room deletion no longer 500s when the room has attachments, integrations, or message references
    • Push notifications stay on screen until dismissed instead of auto-hiding
    • Web Push to Windows/Edge (WNS) now actually works, with far more diagnosable failure logging if it breaks again; the "enable notifications" toggle can no longer hang forever on a stuck permission prompt
    • A deleted-and-reuploaded custom emoji no longer shows the old cached image
    • Update-check/service-worker detection hardened against silent failures

    Licensed under AGPL-3.0-or-later.

    Downloads
  • v1.0.0 0a91f4f347

    v1.0.0 Stable

    Agent released this 2026-08-18 19:01:52 -06:00 | 58 commits to main since this release

    First tagged release. DS Chat is a self-hosted, Slack/Mattermost-style team chat app: FastAPI + SQLAlchemy (async) + PostgreSQL + Redis backend, React + TypeScript PWA frontend.

    Core chat

    • Open and private rooms, with owner/admin/member roles
    • Real-time messaging over WebSocket, fanned out across app instances via Redis
    • Markdown formatting, @mentions and #room-reference links (both with autocomplete), emoji reactions and shortcodes, link previews
    • Image and generic file attachments, with inline preview for images/PDF/text/Markdown
    • Message editing, unread and mention indicators, online/offline presence

    Notifications

    • Web Push for offline members
    • A native desktop notification bridge for DS Chat Desktop, including correct behavior when the window is open but unfocused

    Account & personalization

    • Invite-only accounts, with admin-issued email invites and self-service password reset
    • Per-user themes (built-in presets plus a custom theme builder) and profile photos
    • A People list and a Help/user guide, both reachable from the account menu

    Admin

    • Full admin portal: user/room/bot management, audit log, configurable upload size limits
    • A bot/extension layer: scoped API tokens, incoming and outgoing webhooks

    Offline & installability

    • Installable PWA with offline caching and an auto-update prompt when a new version deploys

    Licensed under AGPL-3.0-or-later as of this release.

    Downloads