Skip to content

Feature/design frontend#6146

Open
waxiangzi wants to merge 12 commits into
QuantumNous:mainfrom
waxiangzi:feature/design-frontend
Open

Feature/design frontend#6146
waxiangzi wants to merge 12 commits into
QuantumNous:mainfrom
waxiangzi:feature/design-frontend

Conversation

@waxiangzi

Copy link
Copy Markdown

⚠️ 提交说明 / PR Notice

Important

  • 请提供人工撰写的简洁摘要,避免直接粘贴未经整理的 AI 输出。

📝 变更描述 / Description

(简述:做了什么?为什么这样改能生效?请基于你对代码逻辑的理解来写,避免粘贴未经整理的内容)

🚀 变更类型 / Type of change

  • 🐛 Bug 修复 (Bug fix) - 请关联对应 Issue,避免将设计取舍、理解偏差或预期不一致直接归类为 bug
  • ✨ 新功能 (New feature) - 重大特性建议先通过 Issue 沟通
  • ⚡ 性能优化 / 重构 (Refactor)
  • 📝 文档更新 (Documentation)

🔗 关联任务 / Related Issue

  • Closes # (如有)

✅ 提交前检查项 / Checklist

  • 人工确认: 我已亲自整理并撰写此描述,没有直接粘贴未经处理的 AI 输出。
  • 非重复提交: 我已搜索现有的 IssuesPRs,确认不是重复提交。
  • Bug fix 说明: 若此 PR 标记为 Bug fix,我已提交或关联对应 Issue,且不会将设计取舍、预期不一致或理解偏差直接归类为 bug。
  • 变更理解: 我已理解这些更改的工作原理及可能影响。
  • 范围聚焦: 本 PR 未包含任何与当前任务无关的代码改动。
  • 本地验证: 已在本地运行并通过测试或手动验证,维护者可以据此复核结果。
  • 安全合规: 代码中无敏感凭据,且符合项目代码规范。

📸 运行证明 / Proof of Work

(请在此粘贴截图、关键日志或测试报告,以证明变更生效)

sean.opencode and others added 12 commits June 6, 2026 14:54
- Add BaseUrlHasVersionPrefix/StripVersionPrefix helpers in relay/common
- Auto-strip /v1 from requestURL when baseURL already contains version prefix
- Normalize version prefix in path-to-relay-mode matching
- Update channel billing, models fetch, upstream sync, video proxy to use GetFullRequestURL
- Update deepseek, moonshot, openai, perplexity, siliconflow adaptors
- Add RoleOperatorAdmin (5) between common user and admin
- Update backend auth middleware and API router for role-based access
- Adjust user controller to support promote/demote with specific roles
- Update frontend roles, sidebar config, and user management UI
- Add i18n translations for operator admin across all locales
- Add docker-deploy skill documentation
- Add PROJECT_FEATURE_SPEC.md for feature planning
- Add AGENTS.md files across backend modules
- Add design/ directory with HTML mockups and assets
- Add docs/issue-analysis/ for bug tracking
- Redesign all major features (channels, keys, models, users, wallet, profile,
  playground, subscriptions, redemption-codes, usage-logs, system-settings)
- Refactor shared UI components (badge, button, card, input, table, sidebar)
- Update layout header and section page layout to match new design language
- Add new components: channels-stats, plans-grid, self-subscriptions-table,
  settings-category-tabs, users-stats
- Revamp auth pages (sign-in, error pages) with new visual style
- Update theme tokens and CSS variables to align with design system
- Refresh dashboard overview with new stat cards and layout
- Rename and reorganize component exports
…ile layout

- Refine multi-key-manage-dialog interactions
- Improve table UX across channels, api-keys, models, users
…y translation

- Wrap hardcoded strings in profile page with t() calls
  (Profile, Change Avatar, Login QR Code, Basic Info, Security,
  OAuth Bindings, Username, Display Name, Email, Group, Sidebar Settings)
- Add i18n keys for weekday abbreviations in checkin calendar (Su-Fr)
- Restore 'Successfully created {{count}} API Key(s)' key lost during i18n sync
- Update all locale files (en, zh, fr, ja, ru, vi)
- Redirect root route / to /dashboard/overview
- Introduce third frontend theme 'enterprise' alongside default and classic
- Backend: embed enterprise dist assets in main.go, update theme-aware
  file system (common/embed-file-system.go) and web router to serve
  enterprise theme
- Backend: accept 'enterprise' in theme validation (constants, option
  controller, system-info-section)
- Classic frontend: upgrade theme switch from single button to Select
  dropdown supporting all three themes (OtherSetting.jsx)
- Default frontend: add 'Enterprise Style' option in system settings
- I18n: add 'Enterprise Style' / '切换前端主题' keys across all locales
- Dockerfile: copy enterprise/package.json in both builder stages
- web/package.json: add enterprise to workspaces
后端变更:
- Dockerfile: 新增 enterprise 前端构建 stage
- controller/token.go: 新增 TransferToken API(密钥转移)
- model/token.go: 实现 TransferToken 逻辑,同步更新日志与配额数据
- controller/user.go: 用户相关接口优化
- common/database.go: 数据库连接配置调整
- model/main.go: 数据模型字段优化
- router/api-router.go: 注册密钥转移路由

前端变更:
- API Keys: 新增转移对话框、批量操作、API 校验
- Users: 优化数据表行操作
- Usage Logs: 优化列表展示与筛选
- i18n: 更新多语言翻译(en/zh/fr/ja/ru/vi)
在 form.onSubmit 和 button.onClick 中添加 isSubmittingRef.current 外层检查,确保第二次快速点击进不到 form.handleSubmit 验证逻辑。

- api-keys-mutate-drawer: 添加外层守卫(form + button 双路径)
- users-mutate-drawer: 添加外层守卫 + 修复 password early return 未重置 ref
- model-mutate-drawer: 添加外层守卫
- channel-mutate-drawer: 添加外层守卫 + 修复5处 validation early return 未重置 ref
- create-deployment-drawer: mutate() → mutateAsync() + 外层守卫

根因:form.handleSubmit 为 async 函数,React 19 并发模式下两次快速点击
可使两个 async handler 同时进入验证阶段。Base UI 的 disabled 使用
aria-disabled(非原生 disabled),CSS pointer-events:none 不阻止事件传播。

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
sonner 2.0.7 tightened its package.json exports field, removing the
./dist/index.mjs subpath that src/lib/sonner.ts relied on. The
resolve.alias in rsbuild.config.ts that mapped 'sonner' → the dedup
wrapper also caused a circular-import trap, preventing a simple import
path swap.

Remove the sonner alias from rsbuild.config.ts and migrate all import
sites from 'sonner' to '@/lib/sonner' so they go through the dedup
wrapper explicitly. The wrapper itself now imports directly from the
real 'sonner' package (the only subpath still exported).

Also remove web/enterprise theme (superseded by web/default).
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 310 files, which is 160 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c6bd1f82-4a8d-4e8c-94b3-b0d8be461789

📥 Commits

Reviewing files that changed from the base of the PR and between 7c28993 and 23b5564.

⛔ Files ignored due to path filters (1)
  • web/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (310)
  • .agents/skills/classic-to-default-sync/SKILL.md
  • .agents/skills/docker-deploy/SKILL.md
  • .omo/run-continuation/ses_15eebfaabffe7wO3gTVpdXxUP2.json
  • .omo/run-continuation/ses_160276352ffeOBNsAaMc2bRhIi.json
  • .omo/run-continuation/ses_160716049ffeTc3DdijMK4K1Se.json
  • .omo/run-continuation/ses_1624cce48ffefVYxpDtuE3wIn5.json
  • .omo/run-continuation/ses_163155b11ffeLZPFqbfIVhMpJI.json
  • PROJECT_FEATURE_SPEC.md
  • common/AGENTS.md
  • common/constants.go
  • common/database.go
  • common/embed-file-system.go
  • controller/AGENTS.md
  • controller/channel-billing.go
  • controller/channel.go
  • controller/channel_upstream_update.go
  • controller/token.go
  • controller/user.go
  • controller/video_proxy.go
  • design/._.DS_Store
  • design/._index.html
  • design/api-gateway-admin.html
  • design/api-keys.html
  • design/channels.html
  • design/codes.html
  • design/css/._base.css
  • design/css/base.css
  • design/dashboard.html
  • design/error.html
  • design/index.html
  • design/js/._.DS_Store
  • design/js/._base.js
  • design/js/base.js
  • design/login.html
  • design/models.html
  • design/plans.html
  • design/playground.html
  • design/profile.html
  • design/settings-auth.html
  • design/settings-billing.html
  • design/settings-channel.html
  • design/settings-log.html
  • design/settings-models.html
  • design/settings-notification.html
  • design/settings-security.html
  • design/settings-site.html
  • design/usage-logs.html
  • design/users.html
  • design/wallet.html
  • docs/issue-analysis/5335-cache_control-lost-in-openai-to-claude-conversion.md
  • main.go
  • middleware/AGENTS.md
  • middleware/auth.go
  • model/AGENTS.md
  • model/main.go
  • model/token.go
  • model/user.go
  • pkg/billingexpr/AGENTS.md
  • relay/AGENTS.md
  • relay/channel/AGENTS.md
  • relay/channel/deepseek/adaptor.go
  • relay/channel/moonshot/adaptor.go
  • relay/channel/openai/adaptor.go
  • relay/channel/perplexity/adaptor.go
  • relay/channel/siliconflow/adaptor.go
  • relay/common/relay_utils.go
  • relay/constant/relay_mode.go
  • relay/helper/price.go
  • router/api-router.go
  • router/web-router.go
  • service/AGENTS.md
  • setting/AGENTS.md
  • setting/system_setting/theme.go
  • web/classic/AGENTS.md
  • web/classic/src/components/settings/OtherSetting.jsx
  • web/classic/src/i18n/locales/en.json
  • web/classic/src/i18n/locales/fr.json
  • web/classic/src/i18n/locales/ja.json
  • web/classic/src/i18n/locales/ru.json
  • web/classic/src/i18n/locales/vi.json
  • web/classic/src/i18n/locales/zh-CN.json
  • web/classic/src/i18n/locales/zh-TW.json
  • web/classic/src/i18n/locales/zh.json
  • web/default/package.json
  • web/default/src/components/layout/components/chat-presets-item.tsx
  • web/default/src/components/layout/components/header.tsx
  • web/default/src/components/layout/components/section-page-layout.tsx
  • web/default/src/components/layout/index.ts
  • web/default/src/components/sign-out-dialog.tsx
  • web/default/src/components/ui/badge.tsx
  • web/default/src/components/ui/button.tsx
  • web/default/src/components/ui/card.tsx
  • web/default/src/components/ui/input.tsx
  • web/default/src/components/ui/sidebar.tsx
  • web/default/src/components/ui/sonner.tsx
  • web/default/src/components/ui/table.tsx
  • web/default/src/features/auth/auth-layout.tsx
  • web/default/src/features/auth/forgot-password/components/forgot-password-form.tsx
  • web/default/src/features/auth/hooks/use-auth-redirect.ts
  • web/default/src/features/auth/hooks/use-email-verification.ts
  • web/default/src/features/auth/hooks/use-oauth-login.ts
  • web/default/src/features/auth/hooks/use-turnstile.ts
  • web/default/src/features/auth/otp/components/otp-form.tsx
  • web/default/src/features/auth/passkey/hooks/use-passkey-management.ts
  • web/default/src/features/auth/reset-password-confirm/index.tsx
  • web/default/src/features/auth/secure-verification/hooks/use-secure-verification.ts
  • web/default/src/features/auth/sign-in/components/user-auth-form.tsx
  • web/default/src/features/auth/sign-in/index.tsx
  • web/default/src/features/auth/sign-up/components/sign-up-form.tsx
  • web/default/src/features/channels/components/channels-columns.tsx
  • web/default/src/features/channels/components/channels-primary-buttons.tsx
  • web/default/src/features/channels/components/channels-stats.tsx
  • web/default/src/features/channels/components/channels-table.tsx
  • web/default/src/features/channels/components/dialogs/balance-query-dialog.tsx
  • web/default/src/features/channels/components/dialogs/channel-test-dialog.tsx
  • web/default/src/features/channels/components/dialogs/codex-oauth-dialog.tsx
  • web/default/src/features/channels/components/dialogs/edit-tag-dialog.tsx
  • web/default/src/features/channels/components/dialogs/fetch-models-dialog.tsx
  • web/default/src/features/channels/components/dialogs/multi-key-manage-dialog.tsx
  • web/default/src/features/channels/components/dialogs/ollama-models-dialog.tsx
  • web/default/src/features/channels/components/dialogs/param-override-editor-dialog.tsx
  • web/default/src/features/channels/components/dialogs/tag-batch-edit-dialog.tsx
  • web/default/src/features/channels/components/drawers/channel-mutate-drawer.tsx
  • web/default/src/features/channels/hooks/use-channel-mutate-form.ts
  • web/default/src/features/channels/hooks/use-channel-upstream-updates.ts
  • web/default/src/features/channels/index.tsx
  • web/default/src/features/channels/lib/channel-actions.ts
  • web/default/src/features/dashboard/components/models/log-stat-cards.tsx
  • web/default/src/features/dashboard/components/models/models-filter-dialog.tsx
  • web/default/src/features/dashboard/components/overview/overview-dashboard.tsx
  • web/default/src/features/dashboard/index.tsx
  • web/default/src/features/errors/forbidden.tsx
  • web/default/src/features/errors/general-error.tsx
  • web/default/src/features/errors/maintenance-error.tsx
  • web/default/src/features/errors/not-found-error.tsx
  • web/default/src/features/errors/unauthorized-error.tsx
  • web/default/src/features/home/hooks/use-home-page-content.ts
  • web/default/src/features/home/index.tsx
  • web/default/src/features/keys/api.ts
  • web/default/src/features/keys/components/api-keys-cells.tsx
  • web/default/src/features/keys/components/api-keys-delete-dialog.tsx
  • web/default/src/features/keys/components/api-keys-dialogs.tsx
  • web/default/src/features/keys/components/api-keys-multi-delete-dialog.tsx
  • web/default/src/features/keys/components/api-keys-mutate-drawer.tsx
  • web/default/src/features/keys/components/api-keys-primary-buttons.tsx
  • web/default/src/features/keys/components/api-keys-provider.tsx
  • web/default/src/features/keys/components/api-keys-table.tsx
  • web/default/src/features/keys/components/data-table-bulk-actions.tsx
  • web/default/src/features/keys/components/data-table-row-actions.tsx
  • web/default/src/features/keys/components/dialogs/cc-switch-dialog.tsx
  • web/default/src/features/keys/components/dialogs/transfer-dialog.tsx
  • web/default/src/features/keys/constants.ts
  • web/default/src/features/keys/index.tsx
  • web/default/src/features/keys/types.ts
  • web/default/src/features/models/components/data-table-bulk-actions.tsx
  • web/default/src/features/models/components/deployments-table.tsx
  • web/default/src/features/models/components/dialogs/create-deployment-drawer.tsx
  • web/default/src/features/models/components/dialogs/extend-deployment-dialog.tsx
  • web/default/src/features/models/components/dialogs/prefill-group-management-dialog.tsx
  • web/default/src/features/models/components/dialogs/rename-deployment-dialog.tsx
  • web/default/src/features/models/components/dialogs/sync-wizard-dialog.tsx
  • web/default/src/features/models/components/dialogs/update-config-dialog.tsx
  • web/default/src/features/models/components/dialogs/upstream-conflict-dialog.tsx
  • web/default/src/features/models/components/dialogs/vendor-mutate-dialog.tsx
  • web/default/src/features/models/components/dialogs/view-details-dialog.tsx
  • web/default/src/features/models/components/drawers/model-mutate-drawer.tsx
  • web/default/src/features/models/components/drawers/prefill-group-form-drawer.tsx
  • web/default/src/features/models/components/models-primary-buttons.tsx
  • web/default/src/features/models/components/models-table.tsx
  • web/default/src/features/models/index.tsx
  • web/default/src/features/models/lib/model-actions.ts
  • web/default/src/features/models/lib/vendor-actions.ts
  • web/default/src/features/playground/components/message-actions.tsx
  • web/default/src/features/playground/components/playground-chat.tsx
  • web/default/src/features/playground/components/playground-input.tsx
  • web/default/src/features/playground/hooks/use-chat-handler.ts
  • web/default/src/features/playground/hooks/use-message-action-guard.ts
  • web/default/src/features/playground/index.tsx
  • web/default/src/features/playground/lib/message-styles.ts
  • web/default/src/features/profile/components/checkin-calendar-card.tsx
  • web/default/src/features/profile/components/dialogs/change-password-dialog.tsx
  • web/default/src/features/profile/components/dialogs/delete-account-dialog.tsx
  • web/default/src/features/profile/components/dialogs/email-bind-dialog.tsx
  • web/default/src/features/profile/components/dialogs/two-fa-backup-dialog.tsx
  • web/default/src/features/profile/components/dialogs/two-fa-disable-dialog.tsx
  • web/default/src/features/profile/components/dialogs/two-fa-setup-dialog.tsx
  • web/default/src/features/profile/components/language-preferences-card.tsx
  • web/default/src/features/profile/components/passkey-card.tsx
  • web/default/src/features/profile/components/sidebar-modules-card.tsx
  • web/default/src/features/profile/components/tabs/account-bindings-tab.tsx
  • web/default/src/features/profile/components/tabs/notification-tab.tsx
  • web/default/src/features/profile/hooks/use-access-token.ts
  • web/default/src/features/profile/hooks/use-profile.ts
  • web/default/src/features/profile/index.tsx
  • web/default/src/features/redemption-codes/components/data-table-bulk-actions.tsx
  • web/default/src/features/redemption-codes/components/data-table-row-actions.tsx
  • web/default/src/features/redemption-codes/components/redemptions-delete-dialog.tsx
  • web/default/src/features/redemption-codes/components/redemptions-mutate-drawer.tsx
  • web/default/src/features/redemption-codes/components/redemptions-table.tsx
  • web/default/src/features/redemption-codes/index.tsx
  • web/default/src/features/setup/setup-wizard.tsx
  • web/default/src/features/subscriptions/components/dialogs/subscription-purchase-dialog.tsx
  • web/default/src/features/subscriptions/components/dialogs/toggle-status-dialog.tsx
  • web/default/src/features/subscriptions/components/dialogs/user-subscriptions-dialog.tsx
  • web/default/src/features/subscriptions/components/plans-grid.tsx
  • web/default/src/features/subscriptions/components/self-subscriptions-table.tsx
  • web/default/src/features/subscriptions/components/subscriptions-mutate-drawer.tsx
  • web/default/src/features/subscriptions/index.tsx
  • web/default/src/features/system-settings/auth/custom-oauth/components/discovery-button.tsx
  • web/default/src/features/system-settings/auth/custom-oauth/hooks/use-custom-oauth-mutations.ts
  • web/default/src/features/system-settings/auth/oauth-section.tsx
  • web/default/src/features/system-settings/auth/passkey-section.tsx
  • web/default/src/features/system-settings/components/settings-category-tabs.tsx
  • web/default/src/features/system-settings/components/settings-form-layout.tsx
  • web/default/src/features/system-settings/components/settings-page.tsx
  • web/default/src/features/system-settings/components/settings-section.tsx
  • web/default/src/features/system-settings/content/announcements-section.tsx
  • web/default/src/features/system-settings/content/api-info-section.tsx
  • web/default/src/features/system-settings/content/faq-section.tsx
  • web/default/src/features/system-settings/content/uptime-kuma-section.tsx
  • web/default/src/features/system-settings/general/channel-affinity/cache-stats-dialog.tsx
  • web/default/src/features/system-settings/general/channel-affinity/index.tsx
  • web/default/src/features/system-settings/general/channel-affinity/rule-editor-dialog.tsx
  • web/default/src/features/system-settings/general/checkin-settings-section.tsx
  • web/default/src/features/system-settings/general/system-info-section.tsx
  • web/default/src/features/system-settings/hooks/use-settings-form.ts
  • web/default/src/features/system-settings/hooks/use-update-option.ts
  • web/default/src/features/system-settings/integrations/email-settings-section.tsx
  • web/default/src/features/system-settings/integrations/ionet-deployment-settings-section.tsx
  • web/default/src/features/system-settings/integrations/monitoring-settings-section.tsx
  • web/default/src/features/system-settings/integrations/payment-settings-section.tsx
  • web/default/src/features/system-settings/integrations/waffo-pancake-settings-section.tsx
  • web/default/src/features/system-settings/integrations/waffo-settings-section.tsx
  • web/default/src/features/system-settings/maintenance/log-settings-section.tsx
  • web/default/src/features/system-settings/maintenance/performance-section.tsx
  • web/default/src/features/system-settings/maintenance/update-checker-section.tsx
  • web/default/src/features/system-settings/models/claude-settings-card.tsx
  • web/default/src/features/system-settings/models/gemini-settings-card.tsx
  • web/default/src/features/system-settings/models/global-settings-card.tsx
  • web/default/src/features/system-settings/models/grok-settings-card.tsx
  • web/default/src/features/system-settings/models/model-ratio-visual-editor.tsx
  • web/default/src/features/system-settings/models/ratio-settings-card.tsx
  • web/default/src/features/system-settings/models/tiered-pricing-editor.tsx
  • web/default/src/features/system-settings/models/tool-price-settings.tsx
  • web/default/src/features/system-settings/models/upstream-ratio-sync.tsx
  • web/default/src/features/system-settings/request-limits/ssrf-section.tsx
  • web/default/src/features/usage-logs/components/common-logs-filter-bar.tsx
  • web/default/src/features/usage-logs/components/dialogs/audio-preview-dialog.tsx
  • web/default/src/features/usage-logs/components/dialogs/user-info-dialog.tsx
  • web/default/src/features/usage-logs/components/usage-logs-table.tsx
  • web/default/src/features/usage-logs/index.tsx
  • web/default/src/features/users/api.ts
  • web/default/src/features/users/components/data-table-row-actions.tsx
  • web/default/src/features/users/components/dialogs/user-binding-dialog.tsx
  • web/default/src/features/users/components/user-quota-dialog.tsx
  • web/default/src/features/users/components/users-delete-dialog.tsx
  • web/default/src/features/users/components/users-mutate-drawer.tsx
  • web/default/src/features/users/components/users-stats.tsx
  • web/default/src/features/users/components/users-table.tsx
  • web/default/src/features/users/constants.ts
  • web/default/src/features/users/index.tsx
  • web/default/src/features/users/lib/user-form.ts
  • web/default/src/features/users/types.ts
  • web/default/src/features/wallet/components/recharge-form-card.tsx
  • web/default/src/features/wallet/components/subscription-plans-card.tsx
  • web/default/src/features/wallet/hooks/use-affiliate.ts
  • web/default/src/features/wallet/hooks/use-billing-history.ts
  • web/default/src/features/wallet/hooks/use-creem-payment.ts
  • web/default/src/features/wallet/hooks/use-payment.ts
  • web/default/src/features/wallet/hooks/use-redemption.ts
  • web/default/src/features/wallet/hooks/use-waffo-pancake-payment.ts
  • web/default/src/features/wallet/hooks/use-waffo-payment.ts
  • web/default/src/features/wallet/index.tsx
  • web/default/src/hooks/use-copy-to-clipboard.ts
  • web/default/src/hooks/use-sidebar-config.ts
  • web/default/src/hooks/use-sidebar-view.ts
  • web/default/src/hooks/use-table-url-state.ts
  • web/default/src/i18n/locales/_extras/fr.extras.json
  • web/default/src/i18n/locales/_extras/ja.extras.json
  • web/default/src/i18n/locales/_extras/ru.extras.json
  • web/default/src/i18n/locales/_extras/vi.extras.json
  • web/default/src/i18n/locales/_extras/zh.extras.json
  • web/default/src/i18n/locales/_reports/_sync-report.json
  • web/default/src/i18n/locales/_reports/fr.untranslated.json
  • web/default/src/i18n/locales/_reports/ja.untranslated.json
  • web/default/src/i18n/locales/_reports/ru.untranslated.json
  • web/default/src/i18n/locales/_reports/vi.untranslated.json
  • web/default/src/i18n/locales/_reports/zh.untranslated.json
  • web/default/src/i18n/locales/en.json
  • web/default/src/i18n/locales/fr.json
  • web/default/src/i18n/locales/ja.json
  • web/default/src/i18n/locales/ru.json
  • web/default/src/i18n/locales/vi.json
  • web/default/src/i18n/locales/zh.json
  • web/default/src/lib/api.ts
  • web/default/src/lib/handle-server-error.ts
  • web/default/src/lib/roles.ts
  • web/default/src/lib/show-submitted-data.tsx
  • web/default/src/lib/sonner.ts
  • web/default/src/main.tsx
  • web/default/src/routes/(auth)/oauth.tsx
  • web/default/src/routes/_authenticated/chat2link.tsx
  • web/default/src/routes/_authenticated/redemption-codes/index.tsx
  • web/default/src/routes/_authenticated/subscriptions/index.tsx
  • web/default/src/routes/_authenticated/users/index.tsx
  • web/default/src/routes/index.tsx
  • web/default/src/routes/oauth/$provider.tsx
  • web/default/src/stores/auth-store.ts
  • web/default/src/styles/index.css
  • web/default/src/styles/theme.css

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

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