Skip to content

Make the desktop E2E tests follow the product name - #18

Merged
QuicksilverSlick merged 1 commit into
mainfrom
fix/e2e-brand
Sep 11, 2026
Merged

QuicksilverSlick merged 1 commit into
mainfrom
fix/e2e-brand

Conversation

@QuicksilverSlick

Copy link
Copy Markdown
Owner

Why CI has been red

Block runs these same Playwright specs, and all six E2E shards are green on block/buzz main. On this fork, 37 of them have failed on every main run since the upstream merge on 3 Sep.

All 37 have one cause. 26ab5c1fb ("feat(brand): ship as Dreamforge", #3) changed user-facing copy from Buzz to Dreamforge, and the specs hard-code "Buzz":

source:  "Spacing in conversations and Markdown content across Dreamforge"
test:    "Spacing in conversations and Markdown content across Buzz"

These specs run only on Linux CI, so the earlier rename fix for the unit tests (69c9e2560) never reached them.

The fix

The specs now read the product name from @/shared/constants/brand (PRODUCT_NAME, TERMINAL_LABEL, SHARED_COMPUTE_LABEL) instead of hard-coding either name. This is the same pattern 69c9e2560 used. 18 files, +72/−37.

Only user-facing copy changed. Identifiers, data-buzz-* attributes, file names, event kinds and the communities.buzz.xyz domain are left alone.

Not weakened

An independent audit reviewed every hunk against the rendered source:

  • no assertion removed
  • no regex loosened
  • no timeout raised
  • no skip added
  • exact: true kept wherever it was

Every new expectation equals the string the app actually renders.

One test had been passing vacuously. In onboarding.spec.ts, a not.toContainText("…Welcome to Buzz.") check exists to prove the welcome kickoff waits for relay presence. After the rename "Buzz" could never appear, so it always passed while verifying nothing. It now checks the real Dreamforge opener, so it guards again.

Verified

  • Locally, on Windows against installed Google Chrome, using an uncommitted config: the 15 changed smoke specs — 236 passed, 0 failed (9.3 min).
  • Swap check: with the original spec restored, app font size and conversation density apply independently fails here with exactly CI's error (expected ...across Buzz, received ...across Dreamforge). With the fix restored it passes in 5.9 s. So the local run reproduces CI's failure, and the pass is genuine.
  • The 3 integration specs (onboarding, sidebar, persona-env-vars) need a live relay and Postgres, so this PR's CI verifies them.

Found, not fixed here

The rename is incomplete in the backend. desktop/src-tauri/src/managed_agents/discovery/catalog.rs still shows "Buzz Agent" in the harness picker and six "Buzz …" install hints, because the rebrand commit changed only tauri.conf.json on the Rust side. That's why the test mock (renamed) and the real app (not renamed) disagree.

There is also a trap for whoever renames it. The backend's no Buzz shared compute serving members error is recognised by personaModelDiscoveryStatus.ts only in its Buzz wording, so the two sides must change together.

Changing upstream's Rust strings adds friction to every future upstream merge, so this is left as an owner decision.

🤖 Generated with Claude Code

Block runs these same Playwright specs, and all six E2E shards are green on
block/buzz main. On this fork, 37 of them have failed on every main run since
the upstream merge on 3 Sep. All 37 share one cause: 26ab5c1 (ship as
Dreamforge, #3) changed user-facing copy, and the specs hard-code "Buzz". They
run only on Linux CI, so the unit-test fix in 69c9e25 never reached them.

The specs now read PRODUCT_NAME, TERMINAL_LABEL and SHARED_COMPUTE_LABEL from
@/shared/constants/brand, the same pattern 69c9e25 used. Only user-facing copy
changed. Identifiers, data-buzz-* attributes, file names, event kinds and the
communities.buzz.xyz domain are untouched.

An independent audit of every hunk found no weakened test: no assertion removed,
no regex loosened, no timeout raised, no skip added. Every expectation matches
the string the app renders.

One check in onboarding.spec.ts had been passing vacuously since the rename. It
was a not.toContainText on the old "Welcome to Buzz" opener, meant to prove the
kickoff waits for relay presence, and "Buzz" could no longer appear. It now
checks the real opener, so it guards again.

Verified locally on Windows against installed Chrome: the 15 changed smoke
specs, 236 passed, 0 failed. Swap check: with the original spec restored, the
density test fails here exactly as in CI; with the fix, it passes. The three
integration specs need a live relay and Postgres, so CI verifies them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@QuicksilverSlick
QuicksilverSlick merged commit 8e14c4a into main Sep 11, 2026
94 of 100 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant