Skip to content

fix(site/src): update copy and prominence on remaining handwritten alerts - #30910

Draft
designertyler wants to merge 1 commit into
mainfrom
alert-content-remaining
Draft

designertyler wants to merge 1 commit into
mainfrom
alert-content-remaining

Conversation

@designertyler

Copy link
Copy Markdown
Contributor

Second follow-up to #30571. Rewrites the remaining handwritten alerts from the alert audit to follow the Kit Alert pattern and the docs style guide: plain-language copy, outcome-first titles, specific action labels, and prominent only on alerts that block the task. Copy and alert props only. The one exception is the published-template alert, which drops its Create a workspace action to match the approved mockup.

Part of DES-22203

Page Before After Why it's better
Agents, new chat from a failed build Could not load the workspace build or its logs / (error) Couldn't load the workspace build or its logs / (error) You can still start a chat without them. Says the form still works.
Agents, linked build hasn't failed Nothing to debug / Build #n of workspace o/w has not failed (status: running). Build #n of o/w hasn't failed, so there's nothing to debug. (dismissible) One part, no raw status value.
Agents, delete skill dialog (server message) Prominent: Coder couldn't delete this skill. (server message) Names the failure.
Agents, skill limit You have reached the limit of n skills. Delete a skill before creating another one. You've reached the limit of n skills. Delete one to add another. Shorter, contractions.
Agents settings, model overrides (3 alerts) Personal model overrides are disabled by an administrator… / You do not have access to any organizations… / The selected organization has no available chat models… An administrator turned off personal model overrides… / You aren't in any organizations, so you can't set personal model overrides. Ask an administrator to add you to one. / This organization has no chat models yet… Active voice, adds a next step, shorter.
Agents, saved model unavailable The saved model is unavailable and will be ignored until you choose a valid model override. Your saved model isn't available anymore, so it's ignored. Choose another model and save. Drops "valid", active voice.
Agents, lifecycle hook fails on create Lifecycle hook failed / (message) Prominent, dismissible: Couldn't start this chat / A lifecycle hook failed. (message) Says the chat wasn't created.
Agents, policy blocks chat Info: (policy message) Warning, dismissible: A policy blocked this chat. (policy message) Names the outcome; correct severity.
Agents, no access Info: Permission required / You don't have permission… View Docs (inline) Warning: You can't use Coder Agents / Your existing chats are kept… Actions: Refresh, Go to access docs Specific title. Locked-org variant: You can't create chats in the {org} organization.
Agents, chat reconnecting Reconnecting / Chat stream disconnected. Reconnecting… Connection to the chat was lost. Reconnecting… Title repeated the description. Countdown and attempt kept.
Agents, queued for capacity {limit} This agent is queued and will start automatically when capacity is available. {next step} This agent is queued / {limit} It starts automatically when capacity is available. {next step} Leads with the outcome.
Agents, SKILL.md import Could not parse SKILL.md / File is too large / … / Imported SKILL.md / Updated name, description, and body fields. Couldn't parse this SKILL.md / This file is too large / … / Imported SKILL.md. Name, description, and body are filled in. Contractions; success is one part.
Duplicate template, prebuilds This template has prebuilds configured. Duplicating this template will automatically cause n prebuild(s) to be created. Duplicating this template also creates n prebuilt workspace(s) from its presets. Shorter.
Create workspace, classic parameters Prominent: … won't work here until the template is switched to dynamic parameters. View docs (inline) Real-time validation and conditional parameters won't work until it switches to dynamic parameters. Actions: Open template settings, Go to dynamic parameters docs Not blocking, so not prominent. Link moved to actions.
Create workspace, preset not found or failed to load Preset "x" not found on template version "v". Check that… / Failed to load presets: (err). Please try refreshing the page. Coder couldn't find the preset "x" in template version "v". Preset names are case-sensitive. Choose a preset below. / Coder couldn't load this template's presets. (err) Refresh the page to try again. Says what to do; no "please".
Create workspace, preset + param.*, duplicate, external auth for others Preset selected. param.* URL parameters have been ignored… / Duplicating a workspace only copies its parameters… / This shows the external authentication state for {user}… This link's preset was applied, so its param.* values were ignored… / Duplicating copies only the parameters, not files or other state… / These are {user}'s connections. Only {user} can connect the required providers. Shorter, plainer.
Delete dialogs (shared) Prominent warning Warning Consequence warning doesn't block. License caller copy also updated.
External auth, app not installed You must install the X App to clone private repositories. Accounts will appear here once authorized. Install the X App to clone private repositories. Authorized accounts appear here. Drops "You must".
Git device login (4 states) Warning: Rate limit reached. Waiting a few seconds before retrying... / The one-time code has expired. Refresh to get a new one! / Access to the Git provider was denied. / (server message) Info: The Git provider asked Coder to slow down… / Prominent: This one-time code expired. Refresh the page to get a new code. / Coder can't connect to your Git account because access was denied… / Prominent: Couldn't connect your Git account / (detail) Correct severity, no exclamation, fixed title instead of raw server text.
Health, all pages Errors: raw server string. Warnings: prominent, dismissible, "Docs for {CODE}" Errors: prominent with a title ("The access URL check failed" etc.) and server detail. Warnings: not prominent, not dismissible, "Go to health check docs". Websocket warnings gain the same docs link. Dismiss came back on reload; Mute warnings is the real control.
Sign in No authentication methods configured! Prominent: Sign-in isn't available / This deployment has no authentication methods turned on… No exclamation, adds a next step. The login-type-changed message now says "Sign in".
Org settings, workspace sharing Warning: Disabled by deployment settings / …has been disallowed by an administrator… Info: Workspace sharing is turned off for this deployment. A deployment admin can turn it on in deployment settings. Explains a disabled control, so info, one part.
Provisioner build status (shared) Build pending provisioner deployment / Build delayed / Build enqueued / Error during the build, with "Please contact your administrator" No provisioner can run this build / Build delayed / (one part) The build is queued and starts when a provisioner is free. / Couldn't build this version Says what happened; no "please".
Wildcard access URL Prominent: Some workspace applications will not work / long sentence, inline link Some apps won't open / admin and non-admin copy. Action: Go to wildcard access URL docs Not blocking; shorter.
Role selector (server message or "Failed to load roles.") Couldn't load roles / (detail) Fixed title.
Template created (approved mockup) Info: Awesome, you just created a new template! Success: Template created / Edit the Terraform files below to customize {template}… Actions (outline): Open template skill, View docs Matches mockup.
Template builder, no provisioners …See our documentation (inline) This organization has no provisioners, so you can't create a template yet. Set up a provisioner first. Action: Go to provisioner docs Matches the create-template alert in #30571.
Template published (approved mockup) Prominent: Successfully published v! + Create a workspace Template published Matches mockup; removes the now-unused createWorkspaceUrl prop.
Templates, compatibility mode n templates are using parameter compatibility mode / …takes one click… How to upgrade (inline) n templates use compatibility mode / …Switch to dynamic parameters in each template's parameter settings. How to upgrade moved to actions. Shorter.
Terminal (4 states) Trying to connect... / long sentences with links mid-sentence Reconnecting to your workspace. / The startup script failed, so this workspace may be incomplete. (+ Go to troubleshooting docs) / Startup scripts are still running. Some tools may not be ready yet. / Startup scripts finished. Refresh the session to load the updated environment. Links out of the sentence.
User settings, quiet hours Error: Your administrator has disabled… Info: Your administrator doesn't allow custom quiet hours, so you can't change this schedule. Nothing is broken.
User settings, secrets (3 alerts) Secret values cannot be retrieved once saved. / (error or "Something went wrong.") / (server message) + entries You can't view a secret's value after you save it. / Couldn't save this secret (dismissible) / Couldn't import secrets (dismissible) / Update these entries in your file, then import it again: Fixed titles; no "Something went wrong".
User settings, security Password changes are only allowed for password based accounts. Your account signs in without a Coder password, so there's no password to change here. Says why it applies.
Workspace agent row Workspace agent has disconnected / Check the log output… View docs to troubleshoot (in description) Workspace agent disconnected / Apps and terminals won't work until it reconnects… Action: Go to troubleshooting docs Says the impact; action moved to the actions slot.
Workspace build failed (job error) (job error) Check the build logs for the full output. Points to the full output.
Build logs, failed delete and log limit The workspace may have failed to delete due to a Terraform state mismatch… / Prominent: Provisioner logs exceeded the max size of 1MB… Couldn't delete this workspace / The Terraform state may not match its resources… / This build's logs reached the 1 MB limit, so later output wasn't saved. Adds a title; the log limit isn't blocking.
Workspace parameters Prominent: The template for this workspace requires automatic updates… / bold paragraph Workspace update blocked + cause list This template requires workspaces to use the active version… / This workspace can't be updated / … Ask a template admin to review the changes. Action: Go to dynamic parameters docs Real AlertTitle; the cause list belongs in docs.
Workspace schedule, prebuild …refer to the Prebuilt Workspaces Scheduling documentation page. Prebuilt workspaces don't follow this schedule until they're claimed… Action: Go to prebuild scheduling docs Shorter; link in actions.
Download logs, sharing (2) Prominent: Your workspace is unhealthy… / Workspace restart required for the removal to take effect. This workspace is unhealthy, so some logs might not be available to download. / Removed users and groups keep access until this workspace restarts. Not blocking; says the consequence.

Not included (engineering follow-ups): Retry, Get new code, Try again, Restart workspace, Update workspace, Copy command, and View build logs actions; remembered dismissal for the classic-parameters, wildcard, compatibility-mode, build-failed, and Spend "experimental" alerts. The audit's Automations rows (run now, webhook secret) have no matching code on main.

Decision log
  • "We" becomes "Coder" or no subject. The audit drafts use "We couldn't…". The voice guide reserves "we" for the company, and fix(site/src): update alert copy on AI settings, AI Gateway, deployment settings, and create template #30571 changed "We don't support" to "Coder doesn't support". Titles drop the subject ("Couldn't save this secret"); sentences use "Coder".
  • Link labels. Docs links moved into actions say "Go to X docs", as in fix(site/src): update alert copy on AI settings, AI Gateway, deployment settings, and create template #30571. The approved Template created mockup keeps "View docs", and "How to upgrade" stays because the audit keeps it.
  • Dismissible. Added only where the alert unmounts and remounts on a new error (create-chat errors, secret dialog errors), so a dismissed alert can't hide a later failure. Alerts that need remembered dismissal are follow-ups. Health warnings lose dismissible.
  • No action wiring. Where the audit's action needs new wiring, the copy keeps a manual instruction instead (for example "Refresh the page to get a new code").
  • Broader title kept where needed. The new-chat error covers both the build and its logs, because either query can fail.
  • "active version" instead of "latest version" on workspace parameters: require_active_version uses the promoted version, which isn't always the newest.
  • Docs links stay hand-written (Link + sr-only "(opens in new tab)"), matching fix(site/src): update alert copy on AI settings, AI Gateway, deployment settings, and create template #30571 and NotificationEvents, instead of reusing SettingsHeaderDocsLink, which belongs to settings headers.
  • Reconnecting title removed from the live status model, since nothing renders it now.
  • Existing story play assertions that checked the old copy were updated in place, not removed. They predate this PR.

Checks: pnpm check, pnpm lint (types, Biome, circular deps, compiler), affected Vitest suites, and Storybook tests for every touched area pass locally. A frontend-deep-review pass ran, and its should-fix findings are fixed.


Generated by Coder Agents on behalf of @designertyler.

@designertyler designertyler self-assigned this Oct 16, 2026
@designertyler
designertyler requested a review from a team as a code owner October 16, 2026 19:23
@linear-code

linear-code Bot commented Oct 16, 2026

Copy link
Copy Markdown

DES-22203

@designertyler
designertyler marked this pull request as draft October 16, 2026 19:23
@designertyler
designertyler requested review from nickvigilante and removed request for a team October 16, 2026 19:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant