Skip to content

chore: bump version to 1.9.30#1

Open
danilovichz wants to merge 2 commits into
mainfrom
chore/bump-version-1.9.30
Open

chore: bump version to 1.9.30#1
danilovichz wants to merge 2 commits into
mainfrom
chore/bump-version-1.9.30

Conversation

@danilovichz

@danilovichz danilovichz commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes 98 pre-existing test failures across 30 files (unrelated to recent Jarvis Mode work) — stale mocks for features added since (JourneyKits, Hermes native pairing, Agent Vault, dashboard bridge), stale AionUi/iOfficeAI branding and URLs from before the Agent Club rebrand, a test bug in mcpAsarUnpack.test.ts (false positive — didn't understand the existing wildcard asarUnpack pattern), supportedLanguages narrowed to English-only without updating dependent tests, and a few genuinely renamed props/behaviors. Full details in the commit message.
  • Bumps version 1.9.29 → 1.9.30

Test plan

  • Full test suite: 451/451 files, 4278/4278 tests passing
  • tsc --noEmit: clean
  • oxlint: 0 errors (pre-existing warning baseline unchanged)

Summary by CodeRabbit

  • New Features

    • Added new settings entries for Memory, Security, and Hooks.
    • Updated command and shortcut behavior to better reflect current app actions.
  • Bug Fixes

    • Improved language handling so unsupported locales fall back to English more reliably.
    • Refined restore and loading behavior for saved selections and command lists.
    • Updated several links and labels to point to the latest app resources.
  • Chores

    • Bumped the app version to 1.9.30.

…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.
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Test 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.

Changes

i18n Locale Coverage and Normalization

Layer / File(s) Summary
Locale performance tests use on-disk directories
tests/integration/i18n-performance.test.ts, tests/integration/i18n.test.ts
Adds ALL_LOCALE_DIRS derived from the filesystem and a readModule fallback helper; startup, locale-switch, and coverage tests now iterate over on-disk locale directories instead of configured supported languages.
Supported languages restricted to en-US
tests/unit/common/i18n-config.test.ts, tests/unit/common/i18n.index.test.ts, tests/unit/renderer/i18n.index.dom.test.ts
Tests assert SUPPORTED_LANGUAGES equals ['en-US'] and unsupported locales normalize to en-US on load, broadcast, and persistence.

Estimated code review effort: 2 (Simple) | ~10 minutes

AionUi to Agent Club Rebrand

Layer / File(s) Summary
App name, tray, and environment tag rebrand
tests/unit/configureChromium.test.ts, tests/unit/tray.test.ts, tests/unit/process/utils/shellEnvDiagnostics.test.ts
Tests assert app name AgentClub-Dev, tray tooltip Agent Club, and log tag [Agent Club:env] replacing prior AionUi values.
External URLs and update feed repository rebrand
tests/unit/RemoteAgentManagement.dom.test.tsx, tests/unit/renderer/AgentHubModal.dom.test.tsx, tests/unit/extensionConstants.test.ts, tests/unit/updateBridgeCdnRewrite.test.ts
Tests assert new external URLs, updated hub URL defaults/lengths, and update-check fixtures for AI-Answer/Agent-Club with direct GitHub asset URLs replacing CDN rewrite behavior.

Estimated code review effort: 2 (Simple) | ~10 minutes

Feature Test and Mock Updates

Layer / File(s) Summary
Journey Kits IPC mock coverage
tests/unit/fsBridge.skills.test.ts, tests/unit/process/bridge/fsBridge.*.test.ts, tests/unit/SkillsHubSettings.dom.test.tsx
Multiple test files add mocked Journey Kit provider endpoints (search, install, config, owned list/delete, publish) to the ipcBridge.fs mock surface.
Channel pairing and security IPC mocks
tests/unit/ChannelModelSelectionRestore.dom.test.tsx, tests/unit/common/toolsModalContent.dom.test.tsx, tests/unit/SkillsHubSettings.dom.test.tsx
Adds mocked pairing/authorization channel methods, desktop-control (mcpService) permission mocks, and security/agent-vault mocks; extends icon and component mock coverage.
Settings navigation items and dashboard bridge
tests/unit/SettingsPageWrapper.test.ts, tests/unit/process/utils/initBridgeStandalone.test.ts
Adds memory, security, and hooks navigation item assertions and a dashboard bridge initialization mock.
UI behavior assertion updates
tests/unit/LocalAgents.dom.test.tsx, tests/unit/RemoteSendBox.dom.test.tsx, tests/unit/renderer/components/QuickActionButtons.dom.test.tsx, tests/unit/renderer/components/markdown/MermaidBlock.dom.test.tsx, tests/unit/sendboxQueue.dom.test.tsx, tests/unit/shellEnv.test.ts, tests/unit/mcpAsarUnpack.test.ts, tests/unit/common/toolsModalContent.dom.test.tsx, tests/unit/common/useConversationShortcuts.dom.test.tsx
Various assertion and mock adjustments: removed env-conditional market visibility test, slash-command mocks, feedback quick-action behavior, debounce-aware wait timing, updated command list, symlink mock, wildcard asarUnpack coverage, and STT-scoped DOM queries.

Estimated code review effort: 3 (Moderate) | ~20 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description covers summary and testing, but it omits most required template sections. Rewrite it using the repo template: add Related Issues, Type of Change, Screenshots, and Additional Context, and keep Testing aligned to the checklist.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly states the main change: version bump to 1.9.30.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-version-1.9.30

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
tests/unit/common/toolsModalContent.dom.test.tsx (1)

401-415: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider 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 a data-testid to 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 value

Consider rebranding CDN_HOST in 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 defines CDN_HOST = 'static.aionui.com' and includes it in ALLOWED_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 value

Consider rebranding the AIONUI_HUB_URL environment variable.

The test and source both still use the env var name AIONUI_HUB_URL despite the rebrand to Agent Club. While the test correctly matches the source, this naming inconsistency may confuse users configuring the hub URL. Consider renaming to AGENT_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

📥 Commits

Reviewing files that changed from the base of the PR and between f6538e3 and d151f12.

📒 Files selected for processing (31)
  • package.json
  • tests/integration/i18n-performance.test.ts
  • tests/integration/i18n.test.ts
  • tests/unit/ChannelModelSelectionRestore.dom.test.tsx
  • tests/unit/LocalAgents.dom.test.tsx
  • tests/unit/RemoteAgentManagement.dom.test.tsx
  • tests/unit/RemoteSendBox.dom.test.tsx
  • tests/unit/SettingsPageWrapper.test.ts
  • tests/unit/SkillsHubSettings.dom.test.tsx
  • tests/unit/common/i18n-config.test.ts
  • tests/unit/common/i18n.index.test.ts
  • tests/unit/common/toolsModalContent.dom.test.tsx
  • tests/unit/common/useConversationShortcuts.dom.test.tsx
  • tests/unit/configureChromium.test.ts
  • tests/unit/extensionConstants.test.ts
  • tests/unit/fsBridge.skills.test.ts
  • tests/unit/mcpAsarUnpack.test.ts
  • tests/unit/process/bridge/fsBridge.downloadRemoteBuffer.test.ts
  • tests/unit/process/bridge/fsBridge.listWorkspaceFiles.test.ts
  • tests/unit/process/bridge/fsBridge.readFile.test.ts
  • tests/unit/process/bridge/fsBridge.standalone.test.ts
  • tests/unit/process/utils/initBridgeStandalone.test.ts
  • tests/unit/process/utils/shellEnvDiagnostics.test.ts
  • tests/unit/renderer/AgentHubModal.dom.test.tsx
  • tests/unit/renderer/components/QuickActionButtons.dom.test.tsx
  • tests/unit/renderer/components/markdown/MermaidBlock.dom.test.tsx
  • tests/unit/renderer/i18n.index.dom.test.ts
  • tests/unit/sendboxQueue.dom.test.tsx
  • tests/unit/shellEnv.test.ts
  • tests/unit/tray.test.ts
  • tests/unit/updateBridgeCdnRewrite.test.ts
💤 Files with no reviewable changes (1)
  • tests/unit/LocalAgents.dom.test.tsx

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant