[codex] Consolidate WebUI frontend pnpm, Vite, and TypeScript assets - #5732
Conversation
⏳ IronLoop Review StatusHead: Current reviewers:
Reviewer summaries
Recent activity
Available commands
Run metadataAdmission: webhook accepted the request and IronLoop persisted review state before this projection. |
There was a problem hiding this comment.
❌ IronLoop Review: reviewer
Verdict: ❌ Changes requested
Findings: 1 blocking / 0 notes
Next: Fix the blocking findings, push the PR branch, then re-run this reviewer.
Head: e14304c9833b0496e2e654c16a5734e295c24d48
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
The PR moves WebUI v2 embedding to require a prebuilt ignored Vite dist tree, but the production Reborn Docker build still runs Cargo with webui-v2-beta without generating that tree, so the Docker image build will fail.
Findings
1. ❌ [MEDIUM] Reborn Docker build no longer produces required WebUI dist assets
Location: crates/ironclaw_webui_v2/build.rs:80
With this change, any webui-v2-beta Cargo build now panics unless crates/ironclaw_webui_v2/frontend/dist/index.html, wallet-connect.html, and dist/wallet-connect.js already exist. Those files are ignored and not tracked, but Dockerfile.reborn still runs cargo chef cook and cargo build with --features webui-v2-beta,... without running pnpm install && pnpm build or copying a generated dist tree first. A clean docker build -f Dockerfile.reborn will therefore fail before producing the Reborn runtime image. Please wire the frontend build into the Docker build path, including the cargo-chef deps stage or otherwise avoid compiling this build script there without the generated assets.
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloop review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloop reviewwhen the fix may affect multiple areas. - Use
@ironloop statusto check queued/running/completed/stale/stalled state while reviewers run.
|
Important Review skippedToo many files! This PR contains 379 files, which is 229 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (26)
📒 Files selected for processing (379)
You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughWebUI v2 now builds with pnpm/Vite, Rust embeds the generated frontend dist tree, asset-path tests follow hashed outputs, the auth surface exposes ChangesWebUI v2 build and auth wiring
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
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.
Code Review
This pull request refactors the WebUI v2 build pipeline by decoupling the frontend build from Cargo. Instead of running an esbuild bundler during the Rust build process, the frontend is now prebuilt using Vite into frontend/dist/, and the Rust build script simply embeds these prebuilt assets. The CI configurations, setup scripts, and documentation have been updated to require running pnpm build beforehand. Additionally, integration tests were updated to dynamically resolve hashed Vite asset paths. Feedback on these changes includes a recommendation to make the test asset path helper more robust by splitting on both single and double quotes, and an improvement to the build script to propagate directory-reading errors instead of using .expect().
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
e14304c to
d6169cd
Compare
c8dcb05 to
cbe4797
Compare
🗂️ Archived IronLoop Review: reviewerThis result is from an older PR head and is no longer the active review.
Archived summaryNo blocking correctness or security issues found in the changed WebUI build/auth/static-asset wiring. I found one nonblocking documentation mismatch left behind by the Vite/static asset migration. Archived findings
|
|
@coderabbitai full review |
✅ Action performedFull review finished. |
There was a problem hiding this comment.
❌ IronLoop Review: reviewer
Verdict: ❌ Changes requested
Findings: 1 blocking / 0 notes
Next: Fix the blocking findings, push the PR branch, then re-run this reviewer.
Head: d6169cddbfcfac7bf860a9c0dfc656a48e22d3c2
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
Found one blocking build regression: WebUI-enabled builds now require a prebuilt ignored frontend/dist tree, but the Reborn Docker build path still compiles with webui-v2-beta without creating that tree.
Findings
1. ❌ [HIGH] Reborn Docker image no longer builds without prebuilt frontend/dist
Location: crates/ironclaw_webui_v2/build.rs:26
This change makes webui-v2-beta builds validate and embed crates/ironclaw_webui_v2/frontend/dist, but that directory is ignored and not tracked (git ls-files .../frontend/dist returns 0). The Reborn Dockerfile still runs cargo chef cook / cargo build with --features webui-v2-beta,... without running pnpm install && pnpm build, and the CI docker-build job simply invokes docker build -f Dockerfile.reborn .... A clean Docker build therefore reaches this validation with no frontend/dist/index.html or dist/wallet-connect.js and fails. Please either build the frontend inside Docker before the cargo steps that enable webui-v2-beta, or keep Cargo/build.rs responsible for generating the bundle for clean build contexts.
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloop review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloop reviewwhen the fix may affect multiple areas. - Use
@ironloop statusto check queued/running/completed/stale/stalled state while reviewers run.
cbe4797 to
d559d3d
Compare
d6169cd to
71c9a12
Compare
|
@coderabbitai full review |
✅ Action performedFull review finished. |
|
@IronLoop review |
There was a problem hiding this comment.
❌ IronLoop Review: reviewer
Verdict: ❌ Changes requested
Findings: 1 blocking / 0 notes
Next: Fix the blocking findings, push the PR branch, then re-run this reviewer.
Head: 71c9a12860b102a347e9a2a8b14fd5791d1dcbd0
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
Found one blocking CI regression: the coverage all-features job now builds a crate that requires prebuilt WebUI assets, but that job never runs the frontend build step.
Findings
1. ❌ [MEDIUM] Coverage all-features job no longer prepares WebUI dist assets
Location: .github/workflows/coverage.yml:130-131
cargo llvm-cov --all-features --workspace enables ironclaw_webui_v2/webui-v2-beta, and the new build script now fails unless crates/ironclaw_webui_v2/frontend/dist already contains index.html and dist/wallet-connect.js. This coverage job still goes straight from migrations to cargo llvm-cov without the new pnpm install && pnpm build step added to the other WebUI-enabled jobs, so the all-features matrix leg will fail from a clean checkout. Add the same frontend build setup before this step, gated to the all-features leg.
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloop review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloop reviewwhen the fix may affect multiple areas. - Use
@ironloop statusto check queued/running/completed/stale/stalled state while reviewers run.
Inline review fallback
Inline comment projection fell back to a body-only PR Review because GitHub rejected the inline payload.
Reason: Unprocessable Entity: "Line could not be resolved" - https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request
IronLoop preserved the inline review comment payloads below instead of dropping them.
Inline fallback 1: .github/workflows/coverage.yml:130
This job also needs to build crates/ironclaw_webui_v2/frontend/dist before running the all-features coverage leg. The new build.rs validates frontend/dist whenever webui-v2-beta is enabled, and cargo llvm-cov --all-features --workspace enables that feature from a clean checkout where dist/ is ignored. Without a pnpm install --frozen-lockfile && pnpm build step here, the all-features coverage matrix will fail before tests run.
71c9a12 to
c397204
Compare
d559d3d to
4145964
Compare
|
@IronLoop review |
|
/canary |
|
Started Reborn WebUI v2 live canary for |
|
/canary |
|
Started Reborn WebUI v2 live canary for |
Coverage ratchetReborn integration-tier coverageLine coverage (Reborn crates): 85.32% — 283687 / 332500 lines Per-crate breakdown (65 crates, lowest-covered first)
This table itself is informational and never gates the PR on its own — not the percentage, not the per-crate holes, not the 0-coverage callout. A separate coverage ratchet (dry-run until enforce=true; see tests/integration/coverage-floor.toml) can fail the build on specific configured floors. Exemptions (4 entry/entries excluded from the accounting above)
|
|
/canary |
|
Started Reborn WebUI v2 live canary for |
|
/canary cases=qa_7c_slack_bug_logger_routine |
|
Started Reborn WebUI v2 live canary for |
…prebuilt-vite # Conflicts: # crates/ironclaw_webui_v2/frontend/src/pages/settings/components/trace-commons-tab.test.mjs # crates/ironclaw_webui_v2/frontend/src/pages/settings/hooks/useAccountTraces.js # tests/integration/slack_pairing_redeem.rs
…prebuilt-vite # Conflicts: # crates/ironclaw_webui_v2/src/static_assets/router.rs
…prebuilt-vite # Conflicts: # crates/ironclaw_reborn_cli/src/commands/webui_auth.rs # crates/ironclaw_webui_v2/frontend/src/pages/admin/lib/admin-api.test.js
Summary
main.frontend/public, embed the prebuilt Vitefrontend/distoutput forwebui-v2-beta, and update CI/docs/scripts/tests for the new build architecture.Supersedes #5729, #5730, and #5731.
Verification
git diff --checkcorepack pnpm test(77 files / 519 tests)corepack pnpm typecheckNote: local pnpm reports the expected engine warning because this machine has Node v24.17.0 while the frontend pins Node 22.x; the commands exit 0. Full PR CI, the standalone Playwright workflow, and the live canary are being rerun on this combined branch.