Skip to content

[Bug] Five GUI tests fail, leaving gates red after #4 and disabling the dashboard guardrails #5

Description

@paopaonyapi-creator

Client or integration

OpenCodex dashboard

Area

Dashboard

Summary

After #4 lands, gates still fails — at the next step down, GUI tests
(cd gui && bun test --isolate tests, .github/workflows/ci.yml:421), which had never been reached
before because the job aborts at its first failing step and the typecheck error was in front of it.

Five named tests fail, and they are not one bug: two distinct causes are already root-caused
here, and a third cluster is a content question that needs a decision rather than a patch. This makes
the dashboard's guardrails non-executable, so any GUI regression can merge without anything
objecting — which is the reason to fix them as a set rather than one at a time.

Deterministic, not flaky and not runner-specific: local and CI report the identical five.

Reproduction

git clone <this repo> && cd opencodex
bun install && (cd gui && bun install)
cd gui && bun test --isolate tests
 1123 pass
    5 fail
Ran 1128 tests across 186 files. [136.92s]

The same five from CI run 35826365916 (PR #4, commit 2c4285a0e) and from the local run above:

(fail) locale key sets stay identical to the English source
(fail) every locale key set matches the English source
(fail) French base catalog > does not ship accidental English values
(fail) zh-TW ships no untranslated English placeholders beyond the intentional allowlist
(fail) every row maps one-to-one onto a page

Cause 1 — zh.ts is missing one key. Reproducing the same dictionary parse as
gui/tests/claude-desktop-locale.test.ts and comparing per locale:

de     raw=2703 uniq=2703 missing=0 extra=0 dup=0
fr     raw=2703 uniq=2703 missing=0 extra=0 dup=0
ja     raw=2703 uniq=2703 missing=0 extra=0 dup=0
ko     raw=2703 uniq=2703 missing=0 extra=0 dup=0
ru     raw=2703 uniq=2703 missing=0 extra=0 dup=0
zh     raw=2702 uniq=2702 missing=1 extra=0 dup=0
    MISSING: nav.browser
zh-TW  raw=2703 uniq=2703 missing=0 extra=0 dup=0

So nav.browser was added to English and every other locale but zh. It is a single missing
translation key, not a parse artifact: extra=0 and dup=0 rule out both an unanchored-key
collision and the duplicate-collapse failure mode that the comment at the top of that test file
warns about.

Cause 2 — sidebar-rows.test.ts expected list is stale, not the sidebar. The assertion at
gui/tests/sidebar-rows.test.ts:32 reports 13 rows the expected list does not contain, and every
one of them corresponds to a shipped page:

+ ai-studio, agency, desktop-agent, browser, mobile, ai-gateway,
+ change-control, operations, economy, security, video-intelligence, media-memory, sdlc

That list is the set of Phase 20.x–25 subsystems merged into the dashboard. Each one added a nav
row and none updated this test, so the one-to-one guard has been dead for a long stretch of
releases — it now tolerates whatever was listed first and rejects only the newer, correct state.

Cause 3 — French and zh-TW content checks need a decision, not a code change. The remaining two
failures assert that translated catalogs contain no leftover English text. Whether the right fix is
to translate the offending strings or to widen the intentional allowlist is a judgement call about
which of those strings are deliberately untranslated, so I am not guessing at it here.

Version

2.62.0, on dev at e7be56876, re-confirmed at 2c4285a0e

Operating system

Reproduced on Windows 11 (build 26200) locally and on ubuntu-latest / macos-latest in CI, so it
is not platform-specific.

Logs or error output

error: expect(received).toBe(expected)   # claude-desktop-locale.test.ts:40
Expected: "zh:2703"
Received: "zh:2702"

error: expect(received).toEqual(expected)  # sidebar-rows.test.ts:32
- Expected  - 0
+ Received  + 13

Screenshots and supporting files

Not a rendering problem; the failures are assertions over source catalogs and the routing table.

Redacted configuration

Not configuration-dependent.

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingguiDashboard, tray, settings UI

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions