Watch
0
0
Fork
You've already forked hyperhive
0

docs: rephrase the vale warnings that have a better wording

Words the alex and Microsoft styles flag where a plainer one reads as well:
disabled/special/invalid as a state, primitive, trap, hang, several, click,
first-person FAQ questions, hyphenated adverb pairs. Left as they are: Let's
Encrypt, quoted UI labels and phrases, the generated forge CLI reference, and
the middle-click gesture.
This commit is contained in:
iris 2026-10-26 18:11:03 +01:00 • committed by mara
commit 5db38a596e
29 changed files with 62 additions and 62 deletions

View file

@ -92,7 +92,7 @@ JS renders — no full-page reloads.
motion, theming, error-UX, and component-first principles for the
swarm-level Preact app specifically (not this page's dashboard/agent
UIs). `/components` on a running swarm-ui is the companion living
demo of every primitive it references.
demo of every building block it references.
### Implementation reading paths
@ -115,6 +115,6 @@ touching the code rather than using the UI:
[`agent.md`](agent.md) (Terminal-embedded prompt).
- **"What are the per-agent HTTP endpoints?"** →
[`agent.md`](agent.md) (Per-agent endpoints).
- **"Which CSS variable do I use / where are colours defined?"** →
- **"Which CSS variable to use / where are colours defined?"** →
[`css-vars.md`](css-vars.md) (Palette, single-source `base.css`
rule).

View file

@ -128,7 +128,7 @@ and scrolls behind the fixed header + footer.
`.agent-main`**, not in `log.parentElement = .terminal-wrap`:
`.terminal-wrap` applies `backdrop-filter: blur` for the frost
effect, which creates a CSS stacking context — anchoring the
pill inside that context would trap its `z-index` below the
pill inside that context would confine its `z-index` below the
fixed composer in the root stacking context, and it'd never
float. `.agent-main` has no backdrop-filter (no stacking-context
creators), so the pill's `z-index` reaches the root and properly
@ -259,8 +259,8 @@ Unknown `/foo` shows an error row instead of being silently sent.
## Per-agent endpoints
Successful POSTs return 200 (no 303 redirects). Error responses
use semantic status codes: **400** for missing/invalid input
(`body` required, unknown model name, invalid effort level),
use semantic status codes: **400** for missing/malformed input
(`body` required, unknown model name, unrecognised effort level),
**409** for retryable state conflicts (turn in flight when
`/compact` fires), **500** only for genuine server/transport
failures. The matching
@ -358,7 +358,7 @@ shaped).
dimensions; enabled once the server advertises the
`ExtendedDesktopSize` pseudo-encoding (`-308` rect in the header).
Fit-mode state persists in `localStorage` (`screen-fit`); default
is on. `sendPointer` rescales pointer coordinates so clicks
is on. `sendPointer` rescales pointer coordinates so presses
land on the right pixel regardless of CSS scale.
- `GET /screen/ws` — raw RFB byte relay: proxies WebSocket
frames to the weston VNC server at `127.0.0.1:<vnc_port>`.

View file

@ -449,7 +449,7 @@ on the `openDialog` core:
button takes focus). Selecting the backdrop and `Esc` both cancel.
- `themedToast(message, { type, ... })` — a non-blocking toast (top-right,
`info` / `error` / `ok`) for transient validation + action
failures, so an error doesn't trap the operator behind a modal.
failures, so an error doesn't lock the operator behind a modal.
Single-action errors autodismiss; bulk / partial-failure
summaries are sticky (select to dismiss) so they aren't missed.
@ -493,7 +493,7 @@ frosted-mauve bar slides up from the bottom of the viewport
<!-- vale write-good.Passive = NO -->
- **Count + names** — "N agents selected · name1, name2, …"
- **Bulk action buttons** — only enabled when ALL selected agents
support the action; disabled with a tooltip naming the blockers
support the action; greyed out with a tooltip naming the blockers
when the selection is mixed:
- `↺ R3ST4RT` — running agents only
- `■ ST0P` — running agents only

View file

@ -5,7 +5,7 @@ dashboard, which has its own older visual language). This doc is the
_why_: the principles behind how swarm-ui looks and behaves, and the
concrete rules that follow from them. It deliberately doesn't show what
things look like — that's `ComponentsPage` (`/components`), the living,
always-current demo of every primitive in `src/ui/`. Code can't go stale
always-current demo of every building block in `src/ui/`. Code can't go stale
the way a doc's screenshots can, so treat `ComponentsPage` as the source
of truth for appearance and this doc as the source of truth for intent.
Colour variables specifically are `docs/web-ui/css-vars.md`'s job, not
@ -145,7 +145,7 @@ just bare column headers floating over nothing.
## Component-first design
Build the `src/ui/` primitive before or alongside the first real page
Build the `src/ui/` building block before or alongside the first real page
that needs it, not after a contributor styles it inline and leaves it
for later — a page reaching for a component that's already there has ready-made
blocks to build with, instead of the next contributor duplicating
@ -157,10 +157,10 @@ option in a form uses `CheckboxField`, which sizes its row like the other
fields, rather than a bare `<input type="checkbox">`.
**Every new `ui/` component gets a demo section on `/components` the
same day it lands** — no primitive without a place to see it. One
same day it lands** — no building block without a place to see it. One
deliberate exception exists today: `FormField`, the internal label+
control wrapper `TextField`/`SelectField` share, isn't itself a
primitive a page reaches for directly, so it has no demo of its own —
building block a page reaches for directly, so it has no demo of its own —
a considered exception, not an oversight this rule missed.
## Attention

View file

@ -128,7 +128,7 @@ regardless, for example message-bearing tool_use, are unaffected either way).
**Sticky-bottom + snap animation.** `stickToBottom` is the
operator's intent: true means "keep snapping to bottom on every
mutation," false means "I scrolled up, leave me alone." The flag
mutation," false means "the operator scrolled up, leave them alone." The flag
flips when a scroll event lands further than `NEAR_BOTTOM_PX = 48`
from the bottom. New rows then either snap to bottom (when sticky)
or bump the unseen-count and surface the "↓ N new" pill. The snap