Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughMoves UI build and assets into a new ChangesUI Build System Extraction to Admin-UI Crate
Module Declaration Refactoring
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
crates/aisix-llm/src/lib.rs (1)
3-3: ⚡ Quick winAdd public API docs for newly exposed module and re-export.
Please add
///doc comments forpub mod gateway;andpub use gateway::Gateway;so the newly exposed API surface is self-documented.As per coding guidelines, use
///for doc comments on public items in Rust.Also applies to: 11-11
🤖 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 `@crates/aisix-llm/src/lib.rs` at line 3, Add Rust doc comments for the newly exposed public items: add a /// comment above pub mod gateway; describing the module's purpose and responsibilities, and add a /// comment above the pub use gateway::Gateway; re-export describing what Gateway represents and when to use it; ensure both use /// (not // or /**/) and follow existing crate doc style and tone.
🤖 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 `@crates/aisix-llm/src/lib.rs`:
- Line 3: Add Rust doc comments for the newly exposed public items: add a ///
comment above pub mod gateway; describing the module's purpose and
responsibilities, and add a /// comment above the pub use gateway::Gateway;
re-export describing what Gateway represents and when to use it; ensure both use
/// (not // or /**/) and follow existing crate doc style and tone.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9ceeb4d4-8f08-4853-8bce-f6046cc4587e
⛔ Files ignored due to path filters (3)
Cargo.lockis excluded by!**/*.lockcrates/admin-ui/ui/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlcrates/admin-ui/ui/src/assets/react.svgis excluded by!**/*.svg
📒 Files selected for processing (128)
.gitignoreCargo.tomlbuild.rscrates/admin-ui/Cargo.tomlcrates/admin-ui/build.rscrates/admin-ui/src/lib.rscrates/admin-ui/ui/.gitignorecrates/admin-ui/ui/.prettierignorecrates/admin-ui/ui/.prettierrccrates/admin-ui/ui/components.jsoncrates/admin-ui/ui/eslint.config.jscrates/admin-ui/ui/index.htmlcrates/admin-ui/ui/package.jsoncrates/admin-ui/ui/src/components/apikeys/apikey-form.tsxcrates/admin-ui/ui/src/components/layout/admin-key-modal.tsxcrates/admin-ui/ui/src/components/layout/page-header.tsxcrates/admin-ui/ui/src/components/layout/sidebar.tsxcrates/admin-ui/ui/src/components/models/model-form.tsxcrates/admin-ui/ui/src/components/playground/api-key-picker.tsxcrates/admin-ui/ui/src/components/playground/api.tscrates/admin-ui/ui/src/components/playground/column-panel.tsxcrates/admin-ui/ui/src/components/playground/model-picker.tsxcrates/admin-ui/ui/src/components/playground/msg-card.tsxcrates/admin-ui/ui/src/components/playground/params-popover.tsxcrates/admin-ui/ui/src/components/playground/picker-styles.tscrates/admin-ui/ui/src/components/playground/state.tscrates/admin-ui/ui/src/components/playground/types.tscrates/admin-ui/ui/src/components/providers/provider-form.tsxcrates/admin-ui/ui/src/components/theme-provider.tsxcrates/admin-ui/ui/src/components/ui/badge.tsxcrates/admin-ui/ui/src/components/ui/button.tsxcrates/admin-ui/ui/src/components/ui/checkbox.tsxcrates/admin-ui/ui/src/components/ui/combobox.tsxcrates/admin-ui/ui/src/components/ui/data-table.tsxcrates/admin-ui/ui/src/components/ui/dialog.tsxcrates/admin-ui/ui/src/components/ui/input-group.tsxcrates/admin-ui/ui/src/components/ui/input.tsxcrates/admin-ui/ui/src/components/ui/label.tsxcrates/admin-ui/ui/src/components/ui/monaco-json-editor.tsxcrates/admin-ui/ui/src/components/ui/select.tsxcrates/admin-ui/ui/src/components/ui/sheet.tsxcrates/admin-ui/ui/src/components/ui/table.tsxcrates/admin-ui/ui/src/components/ui/textarea.tsxcrates/admin-ui/ui/src/components/ui/tooltip.tsxcrates/admin-ui/ui/src/hooks/use-admin-key.tscrates/admin-ui/ui/src/hooks/use-sidebar.tscrates/admin-ui/ui/src/i18n/index.tscrates/admin-ui/ui/src/i18n/locales/en.jsoncrates/admin-ui/ui/src/i18n/locales/zh-CN.jsoncrates/admin-ui/ui/src/index.csscrates/admin-ui/ui/src/lib/api/client.tscrates/admin-ui/ui/src/lib/api/types.tscrates/admin-ui/ui/src/lib/queries/apikeys.tscrates/admin-ui/ui/src/lib/queries/index.tscrates/admin-ui/ui/src/lib/queries/models.tscrates/admin-ui/ui/src/lib/queries/providers.tscrates/admin-ui/ui/src/lib/utils.tscrates/admin-ui/ui/src/main.tsxcrates/admin-ui/ui/src/routeTree.gen.tscrates/admin-ui/ui/src/routes/__root.tsxcrates/admin-ui/ui/src/routes/_layout.tsxcrates/admin-ui/ui/src/routes/_layout/apikeys/$id.tsxcrates/admin-ui/ui/src/routes/_layout/apikeys/create.tsxcrates/admin-ui/ui/src/routes/_layout/apikeys/index.tsxcrates/admin-ui/ui/src/routes/_layout/models/$id.tsxcrates/admin-ui/ui/src/routes/_layout/models/create.tsxcrates/admin-ui/ui/src/routes/_layout/models/index.tsxcrates/admin-ui/ui/src/routes/_layout/playground/index.tsxcrates/admin-ui/ui/src/routes/_layout/providers/$id.tsxcrates/admin-ui/ui/src/routes/_layout/providers/create.tsxcrates/admin-ui/ui/src/routes/_layout/providers/index.tsxcrates/admin-ui/ui/src/routes/_layout/settings.tsxcrates/admin-ui/ui/src/routes/index.tsxcrates/admin-ui/ui/tsconfig.app.jsoncrates/admin-ui/ui/tsconfig.jsoncrates/admin-ui/ui/tsconfig.node.jsoncrates/admin-ui/ui/ui.pencrates/admin-ui/ui/vite.config.tscrates/aisix-llm/src/error.rscrates/aisix-llm/src/formats/anthropic_messages.rscrates/aisix-llm/src/formats/mod.rscrates/aisix-llm/src/formats/openai/mod.rscrates/aisix-llm/src/formats/openai/responses.rscrates/aisix-llm/src/gateway.rscrates/aisix-llm/src/lib.rscrates/aisix-llm/src/provider_instance.rscrates/aisix-llm/src/providers/anthropic/mod.rscrates/aisix-llm/src/providers/anthropic/transform.rscrates/aisix-llm/src/providers/azure.rscrates/aisix-llm/src/providers/bedrock.rscrates/aisix-llm/src/providers/bedrock/transform.rscrates/aisix-llm/src/providers/cohere.rscrates/aisix-llm/src/providers/deepseek.rscrates/aisix-llm/src/providers/fireworks.rscrates/aisix-llm/src/providers/gemini.rscrates/aisix-llm/src/providers/groq.rscrates/aisix-llm/src/providers/macros.rscrates/aisix-llm/src/providers/mistral.rscrates/aisix-llm/src/providers/mod.rscrates/aisix-llm/src/providers/modelscope.rscrates/aisix-llm/src/providers/moonshot.rscrates/aisix-llm/src/providers/openai.rscrates/aisix-llm/src/providers/openrouter.rscrates/aisix-llm/src/providers/siliconflow.rscrates/aisix-llm/src/providers/stepfun.rscrates/aisix-llm/src/providers/xai.rscrates/aisix-llm/src/providers/zhipuai.rscrates/aisix-llm/src/session.rscrates/aisix-llm/src/streams/bridged.rscrates/aisix-llm/src/streams/hub.rscrates/aisix-llm/src/streams/mod.rscrates/aisix-llm/src/streams/native.rscrates/aisix-llm/src/streams/reader/aws_event_stream.rscrates/aisix-llm/src/streams/reader/mod.rscrates/aisix-llm/src/streams/reader/sse.rscrates/aisix-llm/src/traits/chat_format.rscrates/aisix-llm/src/traits/mod.rscrates/aisix-llm/src/traits/native.rscrates/aisix-llm/src/traits/provider.rscrates/aisix-llm/src/types/anthropic.rscrates/aisix-llm/src/types/bedrock.rscrates/aisix-llm/src/types/common.rscrates/aisix-llm/src/types/embed.rscrates/aisix-llm/src/types/mod.rscrates/aisix-llm/src/types/openai/mod.rscrates/aisix-llm/src/types/openai/responses.rscrates/aisix-llm/src/types/response.rssrc/admin/mod.rs
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/build.yaml (1)
41-53:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUpdate remaining UI cache/build paths to the new
crates/admin-uilocation.Line [30] was migrated, but Line [45], Line [46]-[47], and Line [52]-[53] still use legacy
ui/...paths. This can cause wrong cache keys/artifacts and likely breaks the UI build step after the crate move.Suggested patch
- name: Cache UI build id: ui-cache uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # 5.0.4 with: - path: ui/dist - key: ui-dist-${{ hashFiles('ui/src/**', 'ui/index.html', 'ui/vite.config.ts', - 'ui/tsconfig*.json', 'ui/package.json', 'ui/pnpm-lock.yaml') }} + path: crates/admin-ui/ui-dist + key: ui-dist-${{ hashFiles('crates/admin-ui/ui/src/**', 'crates/admin-ui/ui/index.html', 'crates/admin-ui/ui/vite.config.ts', + 'crates/admin-ui/ui/tsconfig*.json', 'crates/admin-ui/ui/package.json', 'crates/admin-ui/ui/pnpm-lock.yaml') }} - name: Build UI if: steps.ui-cache.outputs.cache-hit != 'true' run: | - pnpm -C ui install --frozen-lockfile - pnpm -C ui build + pnpm -C crates/admin-ui/ui install --frozen-lockfile + pnpm -C crates/admin-ui/ui build🤖 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 @.github/workflows/build.yaml around lines 41 - 53, Cache and build steps still reference legacy ui/... paths; update the Cache UI build step (id: ui-cache, key: ui-dist-..., path: ui/dist) and the Build UI step's pnpm -C ui commands to the new crate location crates/admin-ui. Replace path: ui/dist with crates/admin-ui/dist, update hashFiles entries from 'ui/src/**', 'ui/index.html', 'ui/vite.config.ts', 'ui/tsconfig*.json', 'ui/package.json', 'ui/pnpm-lock.yaml' to the corresponding 'crates/admin-ui/...' paths, and change the Build UI commands to pnpm -C crates/admin-ui install --frozen-lockfile and pnpm -C crates/admin-ui build so the cache key and build run against crates/admin-ui.
🤖 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.
Outside diff comments:
In @.github/workflows/build.yaml:
- Around line 41-53: Cache and build steps still reference legacy ui/... paths;
update the Cache UI build step (id: ui-cache, key: ui-dist-..., path: ui/dist)
and the Build UI step's pnpm -C ui commands to the new crate location
crates/admin-ui. Replace path: ui/dist with crates/admin-ui/dist, update
hashFiles entries from 'ui/src/**', 'ui/index.html', 'ui/vite.config.ts',
'ui/tsconfig*.json', 'ui/package.json', 'ui/pnpm-lock.yaml' to the corresponding
'crates/admin-ui/...' paths, and change the Build UI commands to pnpm -C
crates/admin-ui install --frozen-lockfile and pnpm -C crates/admin-ui build so
the cache key and build run against crates/admin-ui.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 999fea65-9d9e-4eeb-9f2e-a50bba5df59a
📒 Files selected for processing (1)
.github/workflows/build.yaml
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/build.yaml (1)
55-55: ⚡ Quick winAdd
--lockedto the UI cargo build step for reproducibility and consistency.Line 55 is the only cargo build-related command in this workflow without
--locked; all other cargo commands (clippy, build, test) include it. Adding--lockedensures consistent lockfile resolution behavior.Suggested patch
- run: cargo build -p aisix-admin-ui --features build-ui -vv + run: cargo build -p aisix-admin-ui --features build-ui --locked -vv🤖 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 @.github/workflows/build.yaml at line 55, Update the cargo build step that runs "cargo build -p aisix-admin-ui --features build-ui -vv" to include the --locked flag so it matches the other cargo steps; modify that run command to "cargo build -p aisix-admin-ui --features build-ui --locked -vv" to ensure lockfile-based reproducible builds.
🤖 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.
Inline comments:
In @.github/workflows/build.yaml:
- Around line 46-51: Add crates/admin-ui/build.rs and crates/admin-ui/Cargo.toml
to the cache key generation so changes in the Rust build driver invalidate the
ui-dist cache; update the key expression that currently hashes UI files
(referenced as ui-dist-${{ hashFiles(...) }}) to also include
'crates/admin-ui/build.rs' and 'crates/admin-ui/Cargo.toml' so the "Build UI"
step that runs cargo build -p aisix-admin-ui --features build-ui will re-run UI
packaging when build.rs or Cargo.toml changes.
---
Nitpick comments:
In @.github/workflows/build.yaml:
- Line 55: Update the cargo build step that runs "cargo build -p aisix-admin-ui
--features build-ui -vv" to include the --locked flag so it matches the other
cargo steps; modify that run command to "cargo build -p aisix-admin-ui
--features build-ui --locked -vv" to ensure lockfile-based reproducible builds.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e03188e7-9202-4d94-bffa-827938283983
📒 Files selected for processing (1)
.github/workflows/build.yaml
Summary by CodeRabbit
Refactor
Build / CI
Chores