From 1eaa4410495d52fd1442de953cfa9b0b0723782b Mon Sep 17 00:00:00 2001 From: Kishore Kumar Date: Tue, 12 May 2026 16:33:11 +0530 Subject: [PATCH] docs(changelog): M65_001 dashboard error voice + sign-in card lift + install/save race fixes Adds a May 12, 2026 entry covering the operator-first error vocabulary (presentError keyed on UZ-XXX-NNN codes), the cardBox lift from --surface-1 to --surface-2 on the auth route, and two product fixes (router.refresh-after-router.push races in InstallZombieForm and ZombieConfig). Test-side acceptance coverage expansion stays internal and is not surfaced here. --- changelog.mdx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/changelog.mdx b/changelog.mdx index 637df89..e7f5e21 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -18,6 +18,26 @@ export const STAGE_RATE_M65 = "$0.10"; usezombie is in **stealth-mode testing** and pre-production. APIs and agent behavior may change between releases without long deprecation windows. Email [usezombie@agentmail.to](mailto:usezombie@agentmail.to) if you want a hand calibrating a zombie or to join as a design partner. + + ## Dashboard error voice, sign-in card lifted, install/save races fixed + + Every "Failed to X" fallback in the dashboard is replaced with operator-first language keyed on backend error codes. The sign-in card no longer disappears into the page background. Two install/save races that left you on the wrong URL after a `router.push` are fixed. + + ## What's new + + - **`presentError({errorCode, message, action})` is the single entry point for dashboard error rendering.** Curated `UZ-XXX-NNN` codes map to a title + body the operator can act on — `UZ-AUTH-401` reads "Your session expired. Sign in again to keep going." instead of "Not authenticated"; `UZ-ZMB-001` reads "We couldn't find that zombie. It may have already been deleted — refresh the list." instead of "Internal Server Error". Eight codes ship today and the helper grows organically as the dashboard surfaces new ones. Useless server `"Failed to …"` messages are detected and replaced rather than concatenated. + - **Sign-in card lifted from `--surface-1` to `--surface-2`** on the auth route, with `--border-strong` on the edge. At `--surface-1` the luminance delta against the page background was 3 units — close to invisible. The card now reads as a card. + + ## Bug fixes + + - **`/zombies/new` install** — `InstallZombieForm.tsx` no longer issues `router.refresh()` after `router.push(/zombies/{id})`. The `force-dynamic` detail route re-resolves on commit; the manual refresh was racing the URL commit and intermittently leaving you on `/zombies/new` with a stale form state. Same fix applied to `ZombieConfig.tsx` for the save-then-navigate path on the detail page. + - **`tooltip` test flake** — restoring vitest's default `exclude` patterns stops the runner from following the `@usezombie/design-system` workspace symlink and executing its tests without their `test-setup.ts`. The "`Invalid Chai property: toBeInTheDocument`" intermittent on `bun run test` is gone. + + ## CLI + + No `zombiectl` shape changes. + + ## Authenticated dashboard e2e ungated, runs on every dev + prod deploy