Repository navigation
Conversation
🔐 Codex Security Review
|
Signed-off-by: Asterracy <[email protected]>
Asterracy
force-pushed
the
i18n-zh-hans
branch
from
September 21, 2026 23:12
e6eae63 to
3343dee
Compare
ChengLiKe
pushed a commit
to ChengLiKe/buzz
that referenced
this pull request
Oct 8, 2026
…est upstream Merge upstream main at d34c9c2 (163 commits past the PR's base 77729ab) into the zh-hans follow branch, resolving 26 conflict hunks across 15 files. Resolution keeps upstream's new functionality and preserves the zh-Hans t() wrapping: - effort picker: adopt the rebuilt effortPickerState API (backend/choices, note) and translate the new note copy via agents.effort.support-unknown and agents.effort.maybe-unsupported - settings: follow upstream's moderation -> relay-admin section rename; nav groups keep both `id` (navGroupLabel / i18n) and the canonical English `label` that upstream tests look groups up by - reportErrorMessage falls back through the catalog (i18n.t), keeping the exported signature its tests pin - community leave hint, huddle confirm, canvas labels, timeout banner: t() versions of upstream's new copy - merged test files keep both the i18n bootstrap and the new upstream cases; three upstream test files (ChannelCanvas existence / switch-reset, persona model discovery jsdom) gain the standard initializeI18n bootstrap that the localized code now needs Catalog: 5 new entries, en/zh-Hans aligned. Hardcoded-string baseline: the 150 literals merged in with upstream's new surfaces (admin console, canvas history, pairing) are triaged as deferred-pr4-surface with a follow-up wave note — the ready-made backlog for the next localization pass. Verified: tsc --noEmit, biome check, px-text, pubkey-truncation, catalog parity, hardcoded-strings gate, 6876 unit + 139 jsdom tests — all green. Co-Authored-By: Claude Code <[email protected]> Signed-off-by: Fizz <537fca8a8c780d947a6ec97425ec282d7307baf48fde373f11824212384c31cb@like.communities.buzz.xyz>
matt2e
added a commit
that referenced
this pull request
Nov 14, 2026
… closes (#9440) ## Summary `desktop/src/features/terminal/TerminalSubstrate.test.mjs` can pass every test and then run the Desktop JS job out of memory several minutes later. This moves the React Testing Library unmount from `beforeEach` to `afterEach`, so no tree is still mounted when the jsdom window closes. Only the test file changes (6 insertions, 2 deletions). Commit (cherry-picked unchanged from a local flake-fix series): - `test(desktop): unmount every TerminalSubstrate tree before the window closes` ### CI sighting One sighting was found in the CI runs from 7 to 12 November 2026 that were searched: - 9 November 2026, "Desktop Domain / Desktop JS", run 42706004493 attempt 1 (on #9227; the rerun passed): - https://github.com/block/buzz/actions/runs/42706004493/job/129463488242 In that job the suite reported 6,950 of 6,951 passing. The log shows `An update to TerminalSubstrate inside a test was not wrapped in act(...)` at 21:54:33Z, then `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory` at 22:02:17Z, and the file is reported as failed at file level (`test at src/features/terminal/TerminalSubstrate.test.mjs:1:1`) after 504.6 s. ### Root cause The file called `cleanup()` only in `beforeEach`, so the last test's tree was still mounted when `after(() => dom.window.close())` ran. If ThemeProvider's asynchronous palette update landed after that close, it re-rendered the substrate, the splash effect's palette guard passed, and `requestAnimationFrame` on the closed window started a fresh jsdom interval that nothing cleared. That 60 Hz loop repainted the banner into the test's recording `getContext` stub indefinitely, and `paintLog` grew until the heap limit. No individual test hangs, so a per-test timeout would not catch it. ### Fix `afterEach(() => cleanup?.())` unmounts every tree, including the last, before `after()` closes the window. The `beforeEach` call became redundant and is removed. No assertions change, and no timeouts, retries or sleeps are added. ### Related issue N/A (flake fix). No existing issue or PR for this failure was found. Three open PRs touch the same test file (#5057, #5485, #7777); none of them changes where `cleanup` runs. ### Testing Human testing is still required. This PR does not carry `buzz-review-completed`; the author has not yet run this test themselves on this branch. #### Verification of the fix (before this branch was split out) - The test file, 5 consecutive runs: 25 of 25 tests passed each time in about 6.8 s, with no `act` warning. - The CI out-of-memory failure was not reproduced with the real test file. Its mechanism was reproduced in a scratch harness with the same stubs: without cleanup before the window close, 3 of 3 runs left the palette unresolved at close, added 11,556 `paintLog` entries per 100 ms, kept one live timer, and never exited. With cleanup before the close, 3 of 3 runs added no entries, left no timers, and exited on their own. #### Local checks on this branch The push ran the repository's full pre-push hook set from a checkout of this branch's head (`7f4117340`), with no lanes excluded and without `--no-verify`. The branch is one commit behind `main`; that commit changes only mobile and docs files, none of them touched here. Ran and passed: - `branch-skew`, `push-head-scope` and `file-size-check` - `desktop-check` (`pnpm check`) - `desktop-typecheck` (`pnpm typecheck`) - `desktop-test` (`pnpm test`, the full desktop unit suite, which includes `TerminalSubstrate.test.mjs`) Did not run: - `rust-tests`, `desktop-tauri-checks` and `mobile-checks`. The hook selects lanes by changed path, and this branch changes no Rust, Tauri or mobile file. - Desktop builds and the Playwright E2E suites, which are CI-only. - `just ci`. - The 5-run repetition and the scratch harness above were not repeated on this branch. A green run does not prove the flake is gone: the failure needs the palette update to land after the window closes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Signed-off-by: mtoohey <[email protected]> Signed-off-by: Matt Toohey <[email protected]> Co-authored-by: Claude Fable 5.1 <[email protected]>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
zh-Hans).system/en/zh-Hanslanguage preference with immediate switching.LOCALIZATION.zh-Hans.md.Relationship to existing localization work
This PR is intentionally related to and overlaps the existing i18n work:
The existing PRs provide the relevant architectural context. This branch presents a complete
zh-Hansdesktop implementation for maintainer review. If maintainers prefer #5152 or another base, this PR can be split, rebased, or closed in favor of that direction.Verification
All checks below were rerun from a clean clone based on the current upstream
main:pnpm exec node src/i18n/catalogValidation.mjs— pass (catalog parity ok)pnpm typecheck— passpnpm check— pass; 2 warnings and 5 infos, no errorspnpm test— 6572 passed, 0 failed, 0 skippedpnpm build— pass; protected feature artifact matrix passedjust desktop-tauri-check— passThe locale catalog contains 4082 leaf keys in both English and Simplified Chinese, with no missing or empty Chinese values.
Scope and attribution
Review request
Please advise whether maintainers prefer this as one complete locale contribution or as a sequence of smaller infrastructure, catalog, and surface PRs.