ATProto-based AI Assistant Chat interface.
v0.7.4 9542d757 pouriade.com

Release 0.7.4

### Changed - A settings or admin page for a role, plugin, model, or key that isn't there says so in a dashed card with the section's icon, "Role not found" or the like, and why it may be gone, in place of a bare line under the missing name. - The way back above a settings or admin page, such as ← Roles, is a row tinted when hovered, as the sidebar's Back to chats is.

v0.7.3 2485e78b pouriade.com

Release 0.7.3

### Changed - The new chat's "What can I help with?" draws in a touch, as other titles do. For forks: `shared/ui/Text.tsx` has a new `Text`, sized on one ladder over the type scale with Tailwind's names, `xs`, `sm`, `md`, `base`, `xl`, `2xl`, and `3xl`, with a `color` and `weight`, and `shared/ui/Title.tsx` a new `Title`, whose `order` is its heading level and `size` its look. Page titles, hints, and other plain text now use them. - Each step of the type scale now carries its own line height, from 1.4 for captions to 1.2 for the largest titles, and the headings and titles their letter spacing, so text that inherited the page's 1.55 sits a little tighter in settings and admin. For forks: set them in `theme.css` as `--text-*--line-height` and `--text-*--letter-spacing`. A `leading-*` or `tracking-*` utility still overrides them. - Corners now come from one ladder, so badges and rows share one radius, as do controls and cards, each moving by under a pixel. For forks: `theme.css` has `--radius-xs` to `--radius-xl` in place of `mark`, `badge` and `row`, `small` and `card`, `panel`, and `bubble`, so `rounded-badge` is `rounded-sm`, `rounded-small` is `rounded-md`, and so on. - Padding, margins, and gaps now use whole and half spacing steps only, so about a hundred of them moved by a pixel. - Greys now come from one twelve-step scale, so a few move by a shade: the sidebar is a touch deeper in light, lines and a focused field's border a touch brighter in dark, placeholders and quiet icons a touch darker in light, and section headings and model names one grey. For forks: `theme.css` holds color in three layers, scales (`--gray-1` to `--gray-12` and hue steps such as `--green-9`), roles, and component colors made from roles, so a new accent is the accent roles pointed at another hue. `sidebar` is now `chrome`, `muted-quiet`, `section-ink`, and `tint-quiet` are `subtle`, `icon-quiet` is `faint`, `skeleton` is `surface`, and `separator` is `line`. - For forks: line heights a block sets apart from its size's own are a ladder in `theme.css`, `leading-tight`, `snug`, `normal`, and `relaxed`, replacing values such as `leading-[1.35]`, and the nested corners left as `calc()` in components are tokens: `rounded-thumb`, `bubble-quote`, `toolbar`, and `panel`. The theme test now fails on a quarter spacing step, a one-off corner, line height, or tracking, a component naming a scale step, or a role written as a raw color.

v0.7.2 ef093df3 pouriade.com

Release 0.7.2

### Changed - For forks: `shared/ui/TimeAgo.tsx` has a new `TimeAgo`, how long ago something happened with the full time on hover, which the admin's users, API keys, and cron runs now share. - Code in settings and admin, such as model IDs, packages, and role names, now has one size everywhere: a step smaller than the text around it, as in a reply, but never under the caption size. Some of it was as large as the text around it. For forks: `shared/ui/Code.tsx` has a new `Code`. - For forks: `shared/ui/ExternalLink.tsx` has a new `ExternalLink`, a link that opens outside the app in a new tab, which reply links, sources, tool results, and Report an issue now share. - The × buttons that remove, clear, or close something now look alike: removing a role from a user's row turns grey on hover rather than red, and the composer's Clear is the muted grey rather than a fainter one. For forks: `shared/ui/CloseButton.tsx` has a new `CloseButton`, and `removeChip` is gone. - For forks: component sizes now follow one scale, as Mantine's do. `Button`'s `small` and `default` are `sm` and `md`, `IconButton`'s `small`, `default`, `toggle`, and `row` are `sm`, `md`, `lg`, and `xl`, with a new `xs`, and `Alert`'s `small` is `sm`. `IconButton` takes a `radius` of `sm`, `md`, or `full`.

v0.7.1 a4836681 pouriade.com

Release 0.7.1

### Changed - The server now compresses its API answers, such as a chat's messages and the chat list, for browsers that accept it, so they download faster without a reverse proxy doing it. Live event streams are left uncompressed. - Moving from New chat to a chat, or back, no longer reloads the chat list. For forks: `ChatPage` is now the chat routes' layout and takes the open pane as `children`, and `OpenChat` draws an open conversation.

v0.7.0 fce8c666 pouriade.com

Release 0.7.0

### Added - The More menu in a chat's header now has Edit tags and Delete, as the chat's menu in the sidebar does, each opening a panel under the header. ### Changed - For forks: the theme's `ink-strong` color is gone, merged into `ink`, which had the same value in both modes. Use `text-ink` or `var(--color-ink)` in its place. - Editing a chat's tags, from the sidebar or the chat's header, now shows each tag as a chip in the field rather than a comma-separated list. Enter or a comma adds what was typed, as does leaving the field, and pasting a comma-separated list adds each tag. Backspace in the empty field removes the last tag, and each chip has its own remove button. A tag's limit now follows the lexicon's 64 characters and 640 bytes, counting an emoji as one character rather than cutting it short or in half. Repeated tags, and tags past the limits that another client saved, are tidied when the field opens. The sidebar's delete card now puts the focus on Cancel, and Escape backs out of it as it does the rename and tags cards. For forks: `shared/ui/controls.tsx` has a new `TagsInput`, bound to a form as `field.TagsField`, `shared/tags.ts` has `tidyTags`, `Chip` takes an `end`, and `parseTags` is gone.

v0.6.0 1ec5029d pouriade.com

Release 0.6.0

### Changed - The server now works with PDSs on the 2026-10-22 spaces alpha, and no longer with older spaces PDSs. On an updated PDS, the chat list failed to load with `Missing required key "hash"`. Opening a shared chat also needs the owner's new `#atproto_kem` key in their DID document. An updated PDS publishes one for the did:plc accounts it manages, and a did:web account has to add its own. - The login page and shared chats download about 15 KB less, compressed, before they show, since the router's loading page no longer brings the settings form kit with it. For forks: `SettingsPageSkeleton` and `SettingRowSkeleton` moved to `shared/ui/SettingsPageSkeleton.tsx`, and `dividedRows` and `undivided` to `shared/ui/divided-rows.ts`. - A few things now move rather than jump, and they keep still under reduced motion. Send and Stop cross-fade in the composer's corner. The jump-to-latest button fades and rises in, then sinks away. For forks: Send and Stop are now one `SendButton`, which turns into Stop when given `onStop`, and `Composer.Stop` is gone. Both it and `CopyIconSwap` draw their swap with the new `IconSwap` in `shared/ui/`. - The models a provider lists to tick, on a key's page, when adding a key, and in an admin's provider block, are now a list with a row to each model, each row ticking its own box, and a box drawn to match the app. A long list fades at its top and bottom while there is more to scroll. On a key's page, a ticked or typed model now waits in that list until Save, rather than joining the key's models at once, and models the key already has show as Added. Typing an ID that is already there says so. For forks: `Checklist` and `ChecklistItem` are gone, replaced by `ModelTable` in `features/models/components/`, and `shared/ui/controls.tsx` has a new `Checkbox`. ### Fixed - The chevron on a finished reply's "Thought for…" button points right while closed and turns down as it opens, like every other disclosure, instead of pointing down and flipping up.

v0.5.4 41dba0a8 pouriade.com

Release 0.5.4

### Fixed - Browsers that can't show an SVG icon, such as Safari before 26, show the app's logo in the tab and in bookmarks rather than a plain letter.

v0.5.3 0abab402 pouriade.com

Release 0.5.3

### Changed - The installed app's icon is now the light logo on a light tile, rather than the dark one. Chrome and Android pick up the new icon on their own after a while, but on an iPhone, the app has to be removed and added to the home screen again.

v0.5.2 08f35ee3 pouriade.com

Release 0.5.2

### Added - An API key or a plugin's secret has a Show button at the end of its field, so you can check what you typed before saving. ### Changed - Screen readers read a setting's description and any problem found with it along with its field, and a field the server found a problem with rings red. - When a plugin's settings can't be read, the message beside Reset is in red, as the other errors in a card are. - The Tags section in the sidebar unfolds and folds as a reply's sources and steps do, rather than jumping open and shut. - The sidebar's chats sit under a Chats heading that folds them away, as the Tags heading does. Both headings are bolder and darker, and the dates under Chats lighter and closer together, so the dates read as a step below them. - The composer's model and thinking effort choices moved out of the card into a quiet line under it, leaving only Attach and Send beside the box. A long model name is cut short there rather than pushing the effort onto a second line, and hovering it shows the whole name. - For admins, Settings and Admin are now tabs at the top of the settings and admin sidebars, in place of the title, rather than a single link at the bottom of the list.

v0.5.1 e1fef178 pouriade.com

Release 0.5.1

### Changed - The offline page an installed app shows without a connection now looks like the rest of the app, in the theme chosen in Preferences, rather than in the system's plain colors. - The menus on a chat, a reply, a table, and the conversation header are menus to screen readers, and the arrow keys, Home, and End move through them. Tab closes a menu and moves on. The account menu now opens on Settings, gives the focus back on Escape, and moves with the arrow keys, Home, and End as well as Tab.

v0.5.0 c1f16b38 pouriade.com

Release 0.5.0

### Added - `pnpm setup-env` creates `.env` from `.env.example` and fills in fresh `OAUTH_PRIVATE_KEYS` and `SECRET_KEY`, so local setup no longer means copying secrets by hand. Secrets already set are left alone. - The account menu in the sidebar has a Theme row for switching between System, Light, and Dark without opening Settings. It is the same choice as in Preferences, kept on your device. - The account menu has a Report an issue link to the project's issues on Tangled, for anyone to leave feedback. Forks should point it at their own tracker, in `AccountMenu.tsx`. - You can install the app from Chrome, Edge, or Android, or add it to your iPhone's home screen, and it opens in its own window. Opened without a connection, it shows an offline page and loads once you're back online. Forks that change `logo.svg` should run `pnpm --filter @scn-chat/web icons` to draw the app icons again. - A provider's page in the admin area has a Default capabilities row of Vision, Thinking, and Tools, and models added from the provider's list start with those capabilities. ### Changed - When adding an API key for your own endpoint, the slug now fills in from the name as you type it. You can still edit the slug, and clearing it makes it follow the name again. ### Fixed - With more than one SCN Chat server signed in to your account, a server that can't reach a message's model no longer races to answer it, and the chat explains when another server is replying.

v0.4.0 5e980c78 pouriade.com

Release 0.4.0

### Added - The Settings sidebar shows the app's version under its links, and every page names it in a `version` meta tag, so you can check which release a deployment runs, even without signing in. - Jump to has a Show replies toggle that lists the assistant's replies between your messages, so you can jump straight to a reply. It is remembered on your device. ### Changed - When your chats are open in another tab, the chat now blurs behind a card in its middle that explains why, with Use here as its button, rather than a line of plain text. The same goes for when this device's copy of your chats couldn't open.

v0.3.3 234843d8 pouriade.com

Release 0.3.3

### Changed - The repository moved from GitHub to Tangled, at https://tangled.org/sharedcomputer.network/scn-chat. A release is now an annotated tag there whose message holds its changelog section, rather than a GitHub Release. ### Fixed - A chat's menu in the sidebar now puts the keyboard on its first item as it opens, and Escape returns to the button that opened it, as the other menus already did.

v0.3.2 165dd17e pdelfan

Release 0.3.2

v0.3.1 ac973302 pdelfan

Release 0.3.1

v0.3.0 ce45ddb0 pdelfan

Release 0.3.0

v0.2.2 21bb7b6d pdelfan

Release 0.2.2

v0.2.1 ba9ccca3 pdelfan

Release 0.2.1

v0.2.0 acbaf8da pdelfan

Release 0.2.0

No message

No message