Files
buzz/desktop
ss-dev-03 7d49328998 Test transcript group presentation against real observer frames
The group-presentation units each had unit coverage against hand-built
TranscriptItem fixtures, but nothing checked whether the states those
fixtures describe are reachable from real ACP frames. Grouping
eligibility is decided in agentSessionTranscriptGrouping, several layers
away, so a fixture can happily exercise a branch that no observer frame
can ever produce.

Driving buildTranscript through buildTranscriptDisplayBlocks instead
pins what a reader can actually end up looking at:

- A failed tool call is never folded inside a summary. isGroupingEligible
  rejects isError items, so a failure breaks the run and lands as its own
  row — including a call that grouped cleanly while executing and only
  failed on a later update. That ejection, not the group's aggregate
  badge, is what actually keeps a failure visible in a collapsed
  transcript, and it is the invariant a future grouping change must not
  quietly drop. An in-flight case is asserted alongside as a positive
  control so "no summary holds a failure" cannot pass vacuously by
  grouping having stopped producing summaries at all.
- Artifact chips have something to show: ACP rawInput survives into the
  path/file_path args collectToolRunArtifacts reads, and an edit outranks
  a read of the same path.
- The durable group key really holds still across re-derivation for the
  two transitions it was designed for — a burst growing by appended live
  calls, and same-kind becoming mixed.

The last test documents a gap rather than a guarantee: when the FIRST
leaf is the call that fails, ejecting it makes the next leaf first, so
`group:<turn>:<first leaf>` churns and useToolRunGroupViewState finds
nothing under the new key — the reader's deliberate collapse is
discarded and the group remounts open. Expansion surviving re-grouping
therefore does not hold for first-leaf ejection. The test pins observed
behavior and says so, so a later fix makes it fail loudly and replaces
it with the durable assertion.

Tests only; no product code changed.

Signed-off-by: ss-dev-03 <4807721ff6da708730cf864aeef858d7cd47b2399fffc1ee584f0e7c9f5bc2af@buzz.block.builderlab.xyz>
Co-authored-by: ss-dev-03 <4807721ff6da708730cf864aeef858d7cd47b2399fffc1ee584f0e7c9f5bc2af@buzz.block.builderlab.xyz>
2026-08-21 19:29:36 -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