diff --git a/CHANGELOG.md b/CHANGELOG.md index c19a5ab..7e1afa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,46 @@ All notable changes to Armature are documented here. +## v0.6.14 — Visual Polish + +Systematic cleanup of stale values, self-hosted fonts, and rendering fixes. +Final visual pass before the v0.6.15 usability survey gate. + +### Fixed + +- **v0.6.13 spacing regressions** — added half-step tokens (`--sp-1h` 6px, + `--sp-2h` 10px) and restored correct padding on `.sw-btn--sm`, `.sw-input`, + `.sw-menu__item`, `.sw-dropdown__option`, `.sw-tabs__tab`. +- **Theme settings toggle** — showed resolved theme ("Dark") instead of stored + mode ("System"). Changed `appearance.js` to read `sw.theme.mode`. +- **Notes surface scrollbar** — added `overflow: hidden` to `.surface-inner` + in `base.html`, preventing spurious scrollbar at any scale. +- **Chat input clipped at high scale** — same `overflow: hidden` fix prevents + zoomed content from overflowing the surface container. +- **User menu drift at scale > 100%** — `menu.js` now divides + `getBoundingClientRect()` coords by the CSS zoom factor, fixing position + for `position: fixed` menus inside a zoomed ancestor. +- **Undefined variables** — `--text-secondary` (login), `--text-muted` + (user picker), `--text-1` (settings toggle) replaced with correct tokens. + +### Changed + +- **Stale fallback colors purged** — removed ~65 hex/rgba fallback values + from `var()` calls across 9 kernel CSS files and 3 extension packages. + Old gold theme color `#b38a4e` fully eliminated (9 instances). +- **Self-hosted fonts** — bundled DM Sans and JetBrains Mono woff2 files + in `src/fonts/`. Replaced Google Fonts `@import` and login.html `` + with local `@font-face` declarations. Zero external font dependencies. +- **Consistent border-radius** — added `--radius-sm: 4px` token. Migrated + ~60 hardcoded `border-radius` values across all kernel CSS and 12 extension + packages to three tokens: `--radius-sm` (4px), `--radius` (8px), + `--radius-lg` (12px). + +### Updated + +- `docs/EXTENSION-CSS.md` — added `--sp-1h`, `--sp-2h` half-step tokens + and `--radius-sm` to the public CSS contract. + ## v0.6.13 — Responsive & Spacing Spacing token scale and tablet breakpoint. All kernel CSS and extension diff --git a/ROADMAP-UI.md b/ROADMAP-UI.md index 40d90b1..461f206 100644 --- a/ROADMAP-UI.md +++ b/ROADMAP-UI.md @@ -83,18 +83,27 @@ login. All kernel CSS and 12 in-tree packages migrated to spacing tokens. `EXTENSION-CSS.md` updated with spacing table and breakpoint guide. Font-size scale deferred to v0.6.14. See CHANGELOG.md. -### v0.6.14 — Visual Polish +### v0.6.14 — Visual Polish ✅ -Systematic cleanup of stale values and rendering artifacts. +Shipped. Stale fallback colors purged (~65 instances), fonts self-hosted +(DM Sans + JetBrains Mono woff2), border-radius standardized to three tokens +(`--radius-sm`, `--radius`, `--radius-lg`). Also fixed v0.6.13 spacing +regressions (half-step tokens), theme settings default, surface overflow, +and user menu zoom drift. See CHANGELOG.md. + +### v0.6.15 — User Display Audit + +Every place a user identity appears in the UI must show a human-readable +name, never a UUID. Fallback chain: `display_name → username → "Unknown"`. | Step | Description | |------|-------------| -| Purge stale fallback colors | Remove all `var(--foo, #hexvalue)` fallbacks that reference old gold theme colors (`#b38a4e` and variants). If a CSS variable is undefined at this point, that's a bug — don't mask it with a wrong fallback. | -| Self-host fonts | Bundle DM Sans and JetBrains Mono woff2 files in `src/fonts/`. Replace Google Fonts `@import` with local `@font-face` declarations. Zero external font dependencies. | -| Light theme audit | Walk every surface in light mode. Fix any remaining hardcoded dark-mode colors, contrast issues, or invisible borders. Document any surface-specific light-mode overrides. | -| Consistent border-radius | Surfaces currently mix `6px`, `8px`, `10px`, `var(--radius)`, `var(--radius-lg)`. Audit and reduce to 3 values: `--radius-sm: 4px`, `--radius: 8px`, `--radius-lg: 12px`. | +| Participant display-name resolution | `chat-core` participants endpoint resolves `display_name` from the users table at query time instead of relying on a creation-time snapshot. If the stored `display_name` is empty, look up `users.display_name` or `users.username` by `participant_id`. | +| Audit all user-facing identity surfaces | Walk every surface that shows user identity: chat participant list, chat message sender names, chat typing indicators, workflow assignees, team member lists, admin user list, notification actor names. Ensure the fallback chain is `display_name → username → "Unknown"` everywhere. | +| SDK user-resolve utility | Add `sw.users.resolve(id)` or similar to the SDK — returns `{id, username, display_name, avatar}` with local caching. Surfaces use this instead of ad-hoc lookups. | +| Stale snapshot cleanup | Remove or deprecate the static `display_name` column in the participants table. All display names come from the users table via the resolve utility. | -### v0.6.15 — Usability Survey Gate +### v0.6.16 — Usability Survey Gate Make the UI machine-auditable so Claude Code can run an automated survey. @@ -105,7 +114,7 @@ Make the UI machine-auditable so Claude Code can run an automated survey. | Component coverage matrix | Markdown table: each kernel primitive (button, input, dropdown, dialog, toast, menu, tabs, avatar, spinner, tooltip, drawer, banner) × each surface that uses it. Identifies surfaces still using deprecated old-style components. | | Touch target audit | Script that finds all `