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
Client or integration
OpenCodex dashboard
Area
Dashboard
Summary
After #4 lands,
gatesstill fails — at the next step down,GUI tests(
cd gui && bun test --isolate tests,.github/workflows/ci.yml:421), which had never been reachedbefore 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
The same five from CI run
35826365916(PR #4, commit2c4285a0e) and from the local run above:Cause 1 —
zh.tsis missing one key. Reproducing the same dictionary parse asgui/tests/claude-desktop-locale.test.tsand comparing per locale:So
nav.browserwas added to English and every other locale butzh. It is a single missingtranslation key, not a parse artifact:
extra=0anddup=0rule out both an unanchored-keycollision and the duplicate-collapse failure mode that the comment at the top of that test file
warns about.
Cause 2 —
sidebar-rows.test.tsexpected list is stale, not the sidebar. The assertion atgui/tests/sidebar-rows.test.ts:32reports 13 rows the expected list does not contain, and everyone of them corresponds to a shipped page:
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
devate7be56876, re-confirmed at2c4285a0eOperating system
Reproduced on Windows 11 (build 26200) locally and on
ubuntu-latest/macos-latestin CI, so itis not platform-specific.
Logs or error output
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