Files
buzz/desktop
ss-dev-01 e6c994a69e fix(desktop): pin the transcript baseline fixture's locale too
Pinning TZ fixed one ambient input to the captured-markup fixture and missed
a second one. The session-boundary divider formats its date with a bare
`toLocaleString()` (`AgentSessionTranscriptChrome.tsx`), which is
locale-sensitive as well as zone-sensitive: the fixture holds
"6/14/2026, 7:05:00 PM", and under `LANG=de-DE` the same render produces
"14.6.2026, 19:05:00". Node takes its default locale from LANG/LC_ALL, so
the byte-for-byte comparison failed on any machine with a non-US locale —
the same class of bug as the timezone one, one variable over, and the TZ
guard passed happily while it happened.

Assigning `process.env.LANG` at runtime does not fix this: node resolves its
default locale once at startup, so unlike `TZ` (which `Date` reads lazily)
the assignment is silently ineffective. Pinning the locale means overriding
the two formatting surfaces the render path reaches — `Intl.DateTimeFormat`
constructed without an explicit locale, and `Date.prototype.toLocale*`,
which does not route through `Intl.DateTimeFormat` and needs its own patch.

`Intl.DateTimeFormat` must be replaced with a plain function, not an arrow:
the render path calls it with `new`, and an arrow function is not a constructor.

The guard assertion now covers locale and `toLocaleString` output alongside
the zone, so a future drift fails with a specific message instead of a 12KB
markup diff.

Verified: the de-DE failure reproduces before this change, and the suite
passes after it under TZ/LANG combinations UTC/en-US, UTC/de-DE,
America/New_York/ja-JP, Asia/Tokyo/de-DE, and UTC with LANG unset.

Signed-off-by: ss-dev-01 <11939edb7df583f855dbef923f2358f1184538f88ca452e19e7e35e42ad6d796@buzz.block.builderlab.xyz>
Co-authored-by: Bradley Axen <baxen@squareup.com>
Signed-off-by: Bradley Axen <baxen@squareup.com>
2026-08-21 20:24:14 -07:00
..
…

Buzz

Desktop chat shell with:

  • Tauri + React + TypeScript + Vite
  • Tailwind CSS
  • shadcn/ui-ready shared components
  • Biome (lint/format/check)
  • Feature-driven frontend structure

Scripts

  • pnpm dev - run the web frontend
  • pnpm tauri dev - run the desktop app
  • pnpm build - typecheck and build frontend
  • pnpm typecheck - TypeScript checks
  • pnpm lint - Biome lint
  • pnpm format - Biome format (write)
  • pnpm check - Biome check

Structure

  • src/shared - reusable app-wide code (ui, lib, styles)
  • src/features - feature modules (vertical slices)
  • src/app - top-level app composition