chore: bump version to 1.9.30#1
Conversation
…is work) All failures traced to real causes, verified individually before fixing — no blanket snapshot updates. Categories: - Stale mocks: several tests hand-mock ipcBridge/@icon-park/react/ @arco-design namespaces that predate features added since (JourneyKits, Hermes native pairing, Agent Vault, dashboard bridge, new icons) — the mocks were never extended, so components crashed reading undefined. Added the missing entries following each file's existing mock pattern. - Stale branding/URLs: leftover "AionUi"/"iOfficeAI" expectations from before the Agent Club rebrand (app name, tray tooltip, hub URLs, wiki links). Updated to the current, correct values, verified against source (not guessed) in each case. - Real bug found and fixed in electron-builder.yml consideration: actually a false positive — mcpAsarUnpack.test.ts did naive exact-string matching and didn't understand the existing 'builtin-mcp-*.js' wildcard already covers the 3 "missing" entries. Fixed the test's glob matching instead of touching the (already-correct) packaging config. - supportedLanguages narrowed to ['en-US'] (English-only UI picker) at some point without updating tests that still expected the old multi-language list. Updated expectations; where a test's real intent (catch translation drift) is better served checking actual locale directories on disk instead of the picker list, switched the baseline to that. - Superseded feature: LocalAgents' dev-only "install from market" card was replaced by the full Agent Hub feature — removed the two tests that covered the old, now-nonexistent behavior. - Genuinely renamed props/behavior (QuickActionButtons: onOpenBugReport -> onOpenFeedback, star action -> YouTube subscribe link; sendbox got a new /goal command; useConversationShortcuts' navigate call gained a state arg) — updated tests to match current, correct behavior. - One timing-sensitive test (MermaidBlock) needed a longer waitFor window for a 300ms debounce, not a logic change. Full suite: 451/451 files, 4278/4278 tests passing.
📝 WalkthroughWalkthroughTest suite updates covering i18n locale coverage derived from disk directories, normalization to English-only supported languages, rebranding assertions from AionUi to Agent Club (app name, URLs, tray, hub feed), and mock extensions for Journey Kits, security/pairing, and settings navigation. A minor package version bump is also included. Changesi18n Locale Coverage and Normalization
Estimated code review effort: 2 (Simple) | ~10 minutes AionUi to Agent Club Rebrand
Estimated code review effort: 2 (Simple) | ~10 minutes Feature Test and Mock Updates
Estimated code review effort: 3 (Moderate) | ~20 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (3)
tests/unit/common/toolsModalContent.dom.test.tsx (1)
401-415: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider replacing fragile DOM traversal with a more robust selector.
The
closest('div')!.parentElement!.parentElement!chain at line 405 is brittle — any wrapper change in the component's render output will break this test with a cryptic null-pointer error. While this works for now, adding adata-testidto the STT section container in the production component would make this test more maintainable long-term. This can be deferred since the current approach is functional.💡 Optional improvement: use data-testid for section scoping
In the production component, add:
<div data-testid="stt-settings-section"> {/* STT settings content */} </div>Then in the test:
-const sttSection = screen.getByText('settings.speechToText').closest('div')!.parentElement!.parentElement!; +const sttSection = screen.getByTestId('stt-settings-section');🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/unit/common/toolsModalContent.dom.test.tsx` around lines 401 - 415, The STT test is using a brittle DOM traversal chain to locate the section, which can break with harmless markup changes. Update the test around the `sttSection` lookup in `toolsModalContent.dom.test.tsx` to use a stable selector instead, ideally by adding a `data-testid` to the STT section container in the component and querying that in the test. Keep the existing `within(sttSection)` assertions and `providerSelect` interactions unchanged once the section is selected more robustly.tests/unit/updateBridgeCdnRewrite.test.ts (1)
122-125: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider rebranding
CDN_HOSTin the source.The test correctly asserts assets are served directly from GitHub and never point to
static.aionui.com. However, the source (src/process/bridge/updateBridge.ts) still definesCDN_HOST = 'static.aionui.com'and includes it inALLOWED_DOWNLOAD_HOSTS. Since the CDN is "no longer operated" per the test comment, consider removing or updating this constant in a follow-up to avoid dead configuration.Also applies to: 134-155, 164-167
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/unit/updateBridgeCdnRewrite.test.ts` around lines 122 - 125, The updateBridge CDN configuration still carries dead AionUi-specific settings even though the bridge now serves assets directly from GitHub. In src/process/bridge/updateBridge.ts, review the CDN_HOST constant and ALLOWED_DOWNLOAD_HOSTS usage in the update/download flow, and remove or replace any hardcoded reference to static.aionui.com so the code matches the current behavior. Keep the logic aligned with the existing bridge asset handling symbols like CDN_HOST and ALLOWED_DOWNLOAD_HOSTS, and ensure only the active GitHub host path remains supported.tests/unit/extensionConstants.test.ts (1)
60-68: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider rebranding the
AIONUI_HUB_URLenvironment variable.The test and source both still use the env var name
AIONUI_HUB_URLdespite the rebrand to Agent Club. While the test correctly matches the source, this naming inconsistency may confuse users configuring the hub URL. Consider renaming toAGENT_CLUB_HUB_URL(with backward-compatible fallback) in a follow-up.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/unit/extensionConstants.test.ts` around lines 60 - 68, The hub URL environment variable name is still using the old AIONUI branding, which is confusing after the Agent Club rebrand. Update the constants logic in constants/HUB_REMOTE_URLS to prefer AGENT_CLUB_HUB_URL, while keeping AIONUI_HUB_URL as a backward-compatible fallback so existing setups continue working. Then adjust the extensionConstants test to cover the new preferred env var name and fallback behavior, using the same import/resetModules pattern around src/process/extensions/constants.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tests/unit/common/toolsModalContent.dom.test.tsx`:
- Around line 401-415: The STT test is using a brittle DOM traversal chain to
locate the section, which can break with harmless markup changes. Update the
test around the `sttSection` lookup in `toolsModalContent.dom.test.tsx` to use a
stable selector instead, ideally by adding a `data-testid` to the STT section
container in the component and querying that in the test. Keep the existing
`within(sttSection)` assertions and `providerSelect` interactions unchanged once
the section is selected more robustly.
In `@tests/unit/extensionConstants.test.ts`:
- Around line 60-68: The hub URL environment variable name is still using the
old AIONUI branding, which is confusing after the Agent Club rebrand. Update the
constants logic in constants/HUB_REMOTE_URLS to prefer AGENT_CLUB_HUB_URL, while
keeping AIONUI_HUB_URL as a backward-compatible fallback so existing setups
continue working. Then adjust the extensionConstants test to cover the new
preferred env var name and fallback behavior, using the same import/resetModules
pattern around src/process/extensions/constants.
In `@tests/unit/updateBridgeCdnRewrite.test.ts`:
- Around line 122-125: The updateBridge CDN configuration still carries dead
AionUi-specific settings even though the bridge now serves assets directly from
GitHub. In src/process/bridge/updateBridge.ts, review the CDN_HOST constant and
ALLOWED_DOWNLOAD_HOSTS usage in the update/download flow, and remove or replace
any hardcoded reference to static.aionui.com so the code matches the current
behavior. Keep the logic aligned with the existing bridge asset handling symbols
like CDN_HOST and ALLOWED_DOWNLOAD_HOSTS, and ensure only the active GitHub host
path remains supported.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 4a7cee4b-8844-4c22-a480-b4729f4054bd
📒 Files selected for processing (31)
package.jsontests/integration/i18n-performance.test.tstests/integration/i18n.test.tstests/unit/ChannelModelSelectionRestore.dom.test.tsxtests/unit/LocalAgents.dom.test.tsxtests/unit/RemoteAgentManagement.dom.test.tsxtests/unit/RemoteSendBox.dom.test.tsxtests/unit/SettingsPageWrapper.test.tstests/unit/SkillsHubSettings.dom.test.tsxtests/unit/common/i18n-config.test.tstests/unit/common/i18n.index.test.tstests/unit/common/toolsModalContent.dom.test.tsxtests/unit/common/useConversationShortcuts.dom.test.tsxtests/unit/configureChromium.test.tstests/unit/extensionConstants.test.tstests/unit/fsBridge.skills.test.tstests/unit/mcpAsarUnpack.test.tstests/unit/process/bridge/fsBridge.downloadRemoteBuffer.test.tstests/unit/process/bridge/fsBridge.listWorkspaceFiles.test.tstests/unit/process/bridge/fsBridge.readFile.test.tstests/unit/process/bridge/fsBridge.standalone.test.tstests/unit/process/utils/initBridgeStandalone.test.tstests/unit/process/utils/shellEnvDiagnostics.test.tstests/unit/renderer/AgentHubModal.dom.test.tsxtests/unit/renderer/components/QuickActionButtons.dom.test.tsxtests/unit/renderer/components/markdown/MermaidBlock.dom.test.tsxtests/unit/renderer/i18n.index.dom.test.tstests/unit/sendboxQueue.dom.test.tsxtests/unit/shellEnv.test.tstests/unit/tray.test.tstests/unit/updateBridgeCdnRewrite.test.ts
💤 Files with no reviewable changes (1)
- tests/unit/LocalAgents.dom.test.tsx
Summary
mcpAsarUnpack.test.ts(false positive — didn't understand the existing wildcard asarUnpack pattern),supportedLanguagesnarrowed to English-only without updating dependent tests, and a few genuinely renamed props/behaviors. Full details in the commit message.Test plan
tsc --noEmit: cleanoxlint: 0 errors (pre-existing warning baseline unchanged)Summary by CodeRabbit
New Features
Bug Fixes
Chores