Rooms are easier to discover
The sidebar can show channel rooms you are allowed to see, even before you join them. Non-member rooms are shown as available spaces instead of disappearing, with join and access flows that explain what happens next.
Release notes
This release covers the full 0.3.0 line since 0.2.3: room discovery in the sidebar, simpler message composition, attachment permissions, richer message previews, and clearer notification opt-in.
The sidebar can show channel rooms you are allowed to see, even before you join them. Non-member rooms are shown as available spaces instead of disappearing, with join and access flows that explain what happens next.
Enter now sends ordinary plain messages quickly, while rich drafts keep multiline and structured Markdown behavior. The composer switches modes when the draft needs richer formatting, so fast chat and careful editing both feel natural.
Room members load lazily, support search, and paginate automatically. Large rooms and mention lookups no longer need to eagerly load every member before the room is usable.
Links to Chatto messages render as scrollable previews with shared embed styling, image refresh handling, and video thumbnail fallbacks.
Message action menus include a copy-link action, so you can point someone directly at the relevant message.
Web Push setup follows the browser and operating-system permission model more closely, with a dismissible prompt and improved settings copy.
File uploads are now gated by the room-scoped message.attach permission. The composer
hides upload controls when the current member cannot attach files, and servers can grant
attachment rights separately from message posting.
The frontend sidebar now depends on room-list visibility and membership state instead of only showing joined rooms. Custom GraphQL clients that mirror the bundled sidebar need the new room visibility fields.
Room.viewerIsMember.
Upgrade custom clients or mixed frontend/server deployments that depend on the old
sidebar room query shape.message.attach where uploads should remain
available. Fresh/default RBAC state grants it to everyone, but existing permission
state is not backfilled automatically.# characters when messages are stored and
rendered.The GitHub release lists every PR and commit: github.com/chattocorp/chatto/releases/tag/v0.3.0