Changelog
What changed, and when
This is curated from the repository's own history. Releases are listed
newest first. The current release is 6.6.0. Anything
above it is work on main that has not been cut into a
release yet.
-
6.6.0 · 2026-10-22
The whole of an application is managed in one place, and one server can become two
- Fixed — the in-app mark leads back into the application on every surface
- Added — the developer console offers the whole of an application's life - changing it, its scopes and rate limit, switching it off and on, a new token, its health and gateway, and deleting it for good, on the desk and the phone alike
- Added — a split deployment: the server states which part it is with TRYCORD_DEPLOYMENT_ROLE, and the frontend server started with npm run start:frontend serves only the client and the site, pointing the browsers it feeds at the API server
-
6.4.0 · 2026-10-22
The public site is rebuilt on the brand's artwork
- Added — the homepage is rebuilt on the brand's own artwork - the hero over the planes background with the overlapping product window and phone, a strip of facts, a cinematic section with floating client panels, the self-hosting sheet, a row of figures, and an editorial section with the phone and desktop previews
- Added — the features page opens with a layered product preview - the phone and the desktop client, mounted from the demo
- Added — every page's title is set large over the page head, the legal pages keep document titles, and the 404 page carries the brand's eclipse
-
6.1.3 · 2026-10-22
The public site is redesigned
- Added — the public site has a new composition - the brand's own artwork in the hero, an ember seam through the pages, and a homepage rebuilt around the live client
- Fixed — the reading measure was silently broken - a missing token dropped the padding of every section, the gap between the halves of a split, and the padding of the band
- Fixed — the legal pages scrolled sideways on a phone, where a contact point was held on one line
- Fixed — the social preview was a picture of a broken image - it is rebuilt from the brand
-
6.0.10 · 2026-10-22
Voice checks work from outside the host
- Fixed — the voice stack could only be checked from the loopback
-
6.0.9 · 2026-10-22
Navigation regrouped; legal pages carry real contacts
- Fixed — the documentation and the developers were buried inside Product
- Fixed — the legal pages published empty contact fields
-
6.0.7 · 2026-10-22
Page width restored; the FAQ describes the hosted version
- Fixed — the pages left half the width empty, and the type did not follow the screen
- Fixed — the FAQ said there was no hosted version, and there is one
-
6.0.5 · 2026-10-22
Feed failure fixed; status checks corrected; the glass styling went in
- Fixed — the feed failed on every pass because a column name is a reserved word
- Fixed — the voice and jobs checks were watching the wrong things
- Changed — several surfaces use the glass styling
-
6.0.3 · 2026-10-21
Voice settings require an administrator; the console names the actor
- Fixed — the voice page could change the instance without an administrator
- Fixed — the developer console did not say which account performed an action
-
6.0.2 · 2026-10-21
Voice relay setup and status pages; leftover attributes removed
- Added — the voice process has a page that says whether the stack is working, and pages to configure the relay and to mint a credential
- Fixed — the credentials the relay issued could fail the relay's own check
- Fixed — eight pages showed a leftover attribute as text, and the pager never came
-
5.9.6 · 2026-10-21
The developer guide, bot reading routes, and read-path fixes
- Added — the developer guide is published, and the developer console links to it
- Added — a bot can read its community, its members, its channels and its roles
- Added — a group conversation can be made and managed on a phone
- Added — the SDK speaks CommonJS as well as ESM
- Fixed — a bot acted as the account that made it, instead of its own bot account
- Fixed — the route that reads one application handed out the stored token hash
- Fixed — the gateway told a bot it had subscribed to nothing
- Fixed — the relay address and the saved worker count were read through paths that did not exist
- Fixed — a cropper dismissed on a phone still uploaded the picture
- Fixed — a conversation left open could be marked read by a late answer
-
5.5.0 · 2026-10-21
Person sheet avatar on mobile; application switch
- Added — the person sheet on a phone shows the person's avatar, and applications have a switch in the community's integration settings
-
5.4.0 · 2026-10-21
Picture cropper on upload
- Added — uploads can be cropped before they are sent: you choose which part of the picture is kept
-
5.3.0 · 2026-10-21
A page for bots, and an application off-switch
- Added — a page that manages bots, and a switch that turns an application off
-
5.2.0 · 2026-10-21
Bots post as themselves; scopes state what they allow
- Added — a bot can post as itself rather than as the account that made it, and a scope's statement says what it allows
-
5.1.0 · 2026-10-21
Picture viewer at full size; profile picture applies at once
- Added — a picture opened from a message can be read fitted to the window or at its own size; the frame scrolls either way, and the keyboard does it too
- Fixed — a newly chosen profile picture reaches the rest of the application at once; the account button in the corner is redrawn immediately rather than after you leave the page and come back
-
5.0.0 · 2026-10-21
The bot SDK, trycord-botjs
- Added — the SDK, trycord-botjs: typed access to the routes this server already has
-
4.9.0 · 2026-10-21
Bot accounts are separate from their developers
- Added — a bot has its own account: a message a bot sends comes from the bot, not from the developer who made it
-
4.8.0 · 2026-10-21
Voice room occupants; relay checks what clients receive
- Added — a voice room lists the people in it, and a channel list can be joined on a phone without the trip through the room's page
- Fixed — the relay's reachability check asked an IPv6 address over an IPv4 socket, so every probe failed and read as "the relay is not answering"; the socket now speaks the family of the address it asks, and it checks the published addresses the clients are given
- Fixed — the desktop can set a community's face, and a personal picture uploads the moment it is chosen rather than waiting for the profile to be saved
-
4.7.0 · 2026-10-21
A permissions table for communities; the voice console reports the real stack
- Added — one table lists what each part of a community may do
- Changed — the voice console reports what the voice stack is actually doing rather than what its configuration implies
-
4.6.0 · 2026-10-21
Voice relay configuration and the addresses it answers on
- Added — the relay can be configured end to end from the environment, and the server tells a client the address the relay answers on
-
4.5.0 · 2026-10-21
Sidebar animation, one shell layer band, and a harness that measures
- Fixed — the browser harness's stub carried a syntax error, so the sweep measured a sign-in screen 148 times and reported every page clean; the stub now announces itself, and a sweep without it is a fault
- Added — the sidebar and the mobile drawer animate their movement, and the shell's panels share one layer band that sits below the menus, toasts and dialogs
- Added — pages without a column of their own carry the reader's places, the search answer carries the conversation each hit came from, and a phone in landscape takes the desktop's columns
-
4.4.0 · 2026-10-21
Community rules, notes, and member permissions
- Added — a community's rules, its notes, and what its members may do
-
4.3.0 · 2026-10-21
Swipe to reply
- Added — a message can be swiped on to reply to it
-
4.2.0 · 2026-10-21
Sign-in and registration in two panes
- Added — the sign-in and registration pages have two panes, and the form names the instance
-
4.1.2 · 2026-10-21
The gated pages in two panes, the sign-in's instance, and a stray null
- Added — the gated pages are in two panes, with the instance named
- Fixed — the null was still printed, because the rule was put on an object nothing calls
- Fixed — the sign-in did not say which instance a reader was signing in to
-
4.0.3 · 2026-10-21
Extension API version range, and three small fixes
- Fixed — the extension surface was one number, and only a package built against the running release installed
- Fixed — the phone never showed the roles of a person in a community
- Fixed — a preview image had no space reserved, so the message jumped when it arrived
-
4.0.0 · 2026-10-21
Pressable sidebar, a stray null printed, and host-side account recovery
- Fixed — the sidebar was drawn under the scrim, so none of its links could be pressed
- Fixed — a page that rendered a conditional printed the word null where there was nothing
- Fixed — a reader could not sign in with the address they were given
- Added — an operator can set a password and clear a second factor from the host
-
3.9.0 · 2026-10-21
Touch targets, an audited route surface, and a writable profile
- Fixed — the control that creates a channel was twenty pixels square
- Fixed — the way back on the public pages was forty pixels tall
- Fixed — a segmented item was a pixel short of a finger
- Fixed — the profile page said Profile rather than the name of the person
- Fixed — the profile said the date of the membership twice
- Added — the profile can be written to, and the roles are chips in their colours
-
3.8.0 · 2026-10-21
Group conversations
- Added — a conversation of more than two people: it has a name, and it can be started and changed
-
3.7.3 · 2026-10-21
Remote communities listed; test cleanups
- Added — communities on another instance are listed in a section of their own, with a page of their own
- Fixed — the place column could not be drawn and said nothing about why
- Fixed — the tests left a database behind every time they were interrupted
- Fixed — the browser harness left its profile behind and filled the disk
-
3.6.20 · 2026-10-20
Role colours, roster and profile fixes, and honest checks
- Fixed — the role colours were never drawn, because no rule read the colour
- Fixed — the roster never showed the roles, because the row read a field the roster does not send
- Fixed — the sheet about a person had no face, because the menu drew the header as a line of text
- Fixed — a page printed the word null where a banner should have been
- Fixed — the profile said Profile rather than the name of the person
- Fixed — the stylesheet check did not look at the packages, so a class with no rule went unnoticed
- Fixed — the quick paths said Direct instead of Direct messages
- Fixed — the browser harness was measuring the deployed instance instead of the answers
-
3.6.12 · 2026-10-20
Picture cache, link previews, and mobile tap sizes
- Fixed — a picture that was replaced did not change, because the media cache was never emptied
- Fixed — the picture was looked for under a different name on every surface, and the wrong one showed initials
- Fixed — a link preview could be walked past, because the whole redirect chain was followed before anything was checked
- Fixed — the name was resolved twice, so a short-lived answer could pass the check and fail the connection
- Fixed — the button on the phone was 40 pixels and the mark in the app bar was 28
- Fixed — the harness was measuring a sign-in page and never read the errors it was shown
-
3.6.6 · 2026-10-20
Six bugs, found by running the suites
- Fixed — the enforcement actions on an account were refused, so the menu items did nothing
- Fixed — every installed extension was broken, because the extension API version was the application version
- Fixed — the voice console could not save anything, because it wrote through the page that refuses the voice settings
- Fixed — the third-party SFU token belonged to no console, so it could not be set
- Fixed — one setting was declared twice, so it was rendered twice and the second copy won
- Fixed — the accessibility audit read a comment as code and reported a named button as unnamed
-
3.6.0 · 20 October 2026
The voice process, bot events, onboarding, and one version owner
- Fixed — the context menu closed when it was scrolled, and a closed menu left a handler behind that closed live menus
- Fixed — the poll editor threw on every click, so the whole poll surface was unreachable
- Fixed — removing your own picture threw, because the account settings called a function that was not in scope
- Fixed — the phone threw on a poll that had a voter, and on the poll editor
- Fixed — the instance answered every STUN request with nothing, because the encoder used a constant that was never defined and the handler threw the error away
- Fixed — the document editor refused a heading written with a single hash, and accused the writer of using two or three
- Fixed — the place column disappeared at 125% zoom, because the width it turned at was a laptop width and not a phone width
- Fixed — the registration form had no place to accept the documents, and the button said nothing about why it was closed
- Fixed — the voice settings could be changed in two places at once, and the two could disagree
- Fixed — the instance directory did not exist, and the register page linked to it
- Fixed — the community settings mount swallowed the route a reader uses to join a community
- Added — the voice subsystem is a process of its own, with its own health and its own diagnostics
- Added — an application can listen: the gateway hands a bot the same events a webhook is handed
- Added — community onboarding: the welcome, the rules, and the questions, and what an answer does
- Added — the instance directory is a page of the public site
- Added — the workspace uses the width it is given, and the card head stops clipping its button
- Added — the client and the backend are checked for the names they use and do not have
- Fixed — the sign-in and registration pages stood in an empty shell that was meant to hide but did not: a component that sets its own display beats the browser's rule for the hidden attribute, so the empty shell kept the viewport and pushed the page below it. They now stand alone
- Fixed — the demo and the community directory could not reach the instance: the public site and the API are different origins in a real deployment, and the pages were asking for a relative path the site cannot answer. They now resolve the address the same way the application does
- Fixed — the deployment build was shipping an old tree: it fetched the newest source and then checked out the branch it already had. It now deploys what it fetched
- Added — instance discovery, per-instance sessions, an in-house search index, backups with a restore path, housekeeping, and one honest report per subsystem
- Changed — the version is reported by the server, the API and the application, and all of them say the same thing
-
2.5.0 · 19 October 2026
One backend, one asset library, and the self-hosting paths
- Changed — the backend was consolidated on
backend/: the features and tables that lived only in the legacyserver/package were merged in, and a production instance now runs one backend instead of the split that had drifted - Changed — the application was put on the canonical asset library: one generated set of design tokens that the app, the themes and the website all read
- Added — a configuration centre where every setting shown actually does something, and mail with a provider registry and an admin console
- Added — registration approval, with the migration parity check that had been missing
- Changed — realtime naming is consistent across the gateway and the client, kept in agreement by a check rather than by discipline
- Added — this public site was rebuilt as its own composition, with a working demo and a public community directory, instead of a smaller copy of the app's layout
- Added — registration takes an instance: browse the instances an instance knows about, or give the address of one you run. The address is checked against that instance before it is accepted, and a session belongs to the instance that issued it, so switching never carries a token across
- Added — search is an in-house index that works on every database this runs on, and the permission check lives inside it: a message from a community you are not in cannot answer a query
- Added — backups can be taken from the administration page and put back with a command that verifies the dump first and asks for the database name before it replaces anything
- Added — the administration pages have a rail, so every settings page and every moderation queue is one click away, and a diagnostics page that reports each subsystem as it really is rather than as its configuration implies
- Fixed — the voice path is the in-house one, and an administrator's saved choice is what takes effect: the provider used to be read from the environment, which meant a setting that saved and changed nothing
- Added — housekeeping came with the jobs: expired sessions, old notifications and finished work are cleaned up on a rhythm that survives a restart
- Changed — the automated check suite was removed. It booted whole instances and started browsers, and on a small host it was more load than the product was worth; verification is now a real journey against a running instance
- Changed — error messages, settings and navigation went through a plain-language pass
- Changed — the backend was consolidated on
-
1.6.4 · 3 October 2026
Attachments, replies, and a release step that runs anywhere
- Added — attachments in direct messages as well as communities, with an upload tray you can see and undo, and a full-screen lightbox
- Added — replies, with a badge that follows the message it answers
- Added — rich link previews with a per-message opt-out, and an endpoint that declares its arguments instead of guessing them
- Changed — embeds, analytics and webhooks, and bot applications sit behind a single permission gate
- Fixed — the client is told its own server: a self-hosted instance stops advertising someone else's backend, and the server finds the client next to itself
- Changed — release verification moved to bash so it runs on every platform, and the browser checks were brought into the repository
-
1.6.3 · 27 September 2026
One baseline role, and an owner who inherits everything
- Changed —
@everyoneis the only seeded role and the community baseline. The owner inherits every permission from ownership rather than from a role, so no Admin or Moderator roles are created for the owner - Fixed — a bug made the baseline role unconfigurable, and self-assignable roles were removed end to end
- Added — context menus for notifications, friends, invites and search results
- Fixed — the render-crash watchdog no longer mistakes a valid sign-in screen for a hang
- Added — the desktop app carries CORS diagnostics for its own scheme
- Changed —
-
1.6.2 · 26 September 2026
Contextual navigation and a full-width workspace
- Changed — navigation rebuilt around contextual shells: a home sidebar and a menu page, with the mobile drawer removed
- Changed — the workspace layout rebuilt around a full-width chat view, with loading and empty states and a hover bar
- Changed — a theme system overhaul, including a client that heals itself instead of rendering a blank window when a render crashes
- Added — one uniform template across every static public page
-
1.6.1 · 25 September 2026
Desktop builds published
- Added — desktop builds published to the project repository, with the portable Windows build named TrycordPTB
-
1.6.0 and 1.5.0 · 23 September 2026
Themes, and a design system that matches the code
- Added — a seven-theme ecosystem: token-override themes and a custom palette derivation
- Added — the appearance interface with persistence, and the theme restored at boot
- Changed — the written design system was reconciled with the code so the two could not quietly disagree
-
1.0.1 · 20 September 2026
No blank page after a client update
- Fixed — the server never serves a stale client bundle; it shows a reload notice instead of a blank page
-
0.5.0 · 19 September 2026
Self-hosting, and a configurable database
- Added — the client serve path, runtime configuration, and instance state
- Added — MySQL and SQLite adapters behind one interface, with a validated boot
- Added — CORS origins and the
/api/instanceendpoint other client work depends on
For the commit-level record, the repository history is the source this page is drawn from. Releases are published on GitHub.