Files
buzz/desktop
tlongwell-blockandDawn a094adce9a feat(desktop): add the resize seam to buzz-terminal
The engine had no resize entry point, so the integration lane was about to
build a coalescing protocol against a `Frame` that could not say which
viewport it described. A consumer could only infer that from message
ordering, which is exactly the thing a resize in flight breaks.

`Terminal::resize` takes one coalesced target size, never a stream: resize is
superlinear in scrollback (2.5-4.7 ms for a single column change at 10k
history) and runs while holding the terminal. Frames now carry `generation`,
`columns` and `screen_lines`, so a full frame is self-describing and a grid
discontinuity is detectable from the frame rather than assumed from ordering.

Three fixtures, each shown failing under its mutation. One of them only
exists because the first version of this test suite was vacuous:

Deleting the encoder's dedup-cache clear left all the resize tests green.
The width-changing fixture cannot catch it -- changing the width changes
every cell, so the hashes differ and the rows are republished for the wrong
reason. A height-only resize is the discriminator: the width is unchanged, so
reflowed rows hash exactly as before and a stale cache suppresses them right
after the consumer was told to discard what it had. Growing 10 -> 20 lines
moves row 0 to row 1, and under the mutation the frame carries 13 of 20 rows
-- seven rows blank on screen. With that arm added the mutant dies.

Co-authored-by: Dawn (sprout agent) <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com>
2026-08-01 20:07:49 -04: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