Skip to content

fix(tests): match chat-app title assertion to renamed Agent UI title#1927

Merged
itomek-amd merged 1 commit into
mainfrom
fix/electron-title-assertion
Jul 6, 2026
Merged

fix(tests): match chat-app title assertion to renamed Agent UI title#1927
itomek-amd merged 1 commit into
mainfrom
fix/electron-title-assertion

Conversation

@itomek

@itomek itomek commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

"Test Electron Framework" has been red on main and every PR since 2026-06-22: #1750 renamed the Agent UI window title to "GAIA Agent UI", but test_electron_chat_app.js still expects <title>GAIA</title>. This aligns the assertion with the actual title — the same suite already asserts displayName: 'GAIA Agent UI', so the rename was clearly intentional. Unblocks the check on Dependabot PRs #1803, #1805, #1861 among others.

Test plan

  • npx jest test_electron_chat_app.js locally: 196/196 pass with the fix (previously 195/196)
  • "Test Electron Framework" green on this PR

Test Electron Framework has been red on main since #1750 renamed the
Agent UI window title to 'GAIA Agent UI': test_electron_chat_app.js
still expected '<title>GAIA</title>'. Align the assertion with the
actual title (the same suite already asserts
displayName 'GAIA Agent UI').
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Verdict: Approve

This one-line change fixes a stale assertion in the Electron test suite: the Agent UI window title was renamed to "GAIA Agent UI" (#1750) but this test still expected <title>GAIA</title>, keeping "Test Electron Framework" red on main and on every PR since 2026-06-22. The fix aligns the assertion with reality and unblocks the check. Nice catch — clean, correctly scoped, and it clears CI for the stalled Dependabot PRs.

🔍 Technical details

Verified against the codebase — the fix is correct:

  • src/gaia/apps/webui/index.html:7 is <title>GAIA Agent UI</title>, so the updated assertion matches the real title.
  • The sibling assertion at tests/electron/test_electron_chat_app.js:35 already expects displayName: 'GAIA Agent UI', confirming the rename was intentional and the title test was simply left behind.

No issues found. Scope is a single assertion, no logic change, and the PR body documents the local jest run (196/196 pass).

Strengths

@itomek-amd itomek-amd added this pull request to the merge queue Jul 6, 2026
Merged via the queue into main with commit 3e2684c Jul 6, 2026
78 of 80 checks passed
@itomek-amd itomek-amd deleted the fix/electron-title-assertion branch July 6, 2026 17:33
pull Bot pushed a commit to bhardwajRahul/gaia that referenced this pull request Jul 6, 2026
…sign SHA pin (amd#1926)

The "DMG structural smoke" check fails on roughly half of CI runs —
including Dependabot PRs amd#1861 and amd#1886 — and, worse, any shipped DMG
built on the "other" runner image would hard-fail `ensureUv()` on a
user's first launch. Root cause: `BUNDLED_UV_SHA256["mac-arm64"]` pins
the POST-codesign digest of the bundled uv, but every CI build
ad-hoc-signs it (`identity=-`), and ad-hoc codesign output differs by
the Xcode/codesign toolchain in the floating `macos-latest` image.
Observed bimodal digests on byte-identical source: `macos-26-arm64`
images → `7ad94b65…`, `macos-15-arm64` → `6099aa8c…`. No fixed pin can
survive an image rollover.

This replaces the mac pin with `codesign --verify --strict` in both
`ensureUv()` (runtime: bundled resource, install, and warm-cache paths)
and the dmg-structural-smoke helper — deterministic across runner
images, still fail-loud with the same actionable `InstallError` on
corruption or tampering. linux-x64 / win-x64 keep their SHA256 pins
(deterministic there — no post-build re-signing). Supply-chain integrity
for the mac binary remains enforced at build time by the existing
upstream-tarball SHA256 verification in build-installers.yml.

**Reviewer tradeoff to weigh:** `codesign --verify` proves the binary is
intact and validly signed, but unlike the old pin it does not tie the
warm-cached copy in `~/.gaia/bin` to the exact shipped bytes (a local
attacker able to replace the file could re-sign ad-hoc). If that
matters, a follow-up could record the install-time digest and re-verify
it on cache reuse (TOFU) — kept out of scope here to fix the
release-breaking nondeterminism first.

## Test plan
- [x] Empirical codesign behavior: ad-hoc-signed binary passes `--verify
--strict`; byte-flipped binary fails with "invalid signature" (scratch
harness against the real `ensureUv()` code path — first-install,
warm-cache reuse, and tamper/fail-loud paths all verified)
- [x] `node --check` on all touched files; `tests/electron` jest suite
626/627 (the 1 failure is the pre-existing title assertion, fixed
separately in amd#1927)
- [x] "DMG structural smoke" green on this PR's build-installers run —
this exercises the new verification against a real CI-built DMG, on
whichever runner image the job lands

Co-authored-by: Tomasz Iniewicz <tomasz@iniewicz.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants