Skip to content

chore: remove legacy React web UI now that Next.js frontend is the default - #5145

Merged
qinxuye merged 1 commit into
xorbitsai:mainfrom
OliverBryant:chore/remove-legacy-web-ui
Jul 8, 2026
Merged

qinxuye merged 1 commit into
xorbitsai:mainfrom
OliverBryant:chore/remove-legacy-web-ui

Conversation

@OliverBryant

Copy link
Copy Markdown
Collaborator

Summary

  • Remove the legacy xinference/ui/web/ui React/Material-UI frontend, which was fully superseded by the Next.js app under frontend/ in FEAT: Switch default frontend to Next.js app #5111 (build, packaging, and backend serving are already wired to frontend/).
  • Update AGENTS.md (and its CLAUDE.md symlink) to describe the current frontend/ directory and its npm/eslint commands instead of the removed directory.

Test plan

  • Confirm no remaining functional references to xinference/ui/web/ui in setup.py, MANIFEST.in, xinference/api/restful_api.py, or CI workflows
  • pip install -e . builds the Next.js frontend and the backend serves it correctly
  • pre-commit run --files AGENTS.md

@XprobeBot XprobeBot added this to the v2.x milestone Jul 8, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

…fault

The old xinference/ui/web/ui frontend was fully superseded by the
Next.js app under frontend/ (xorbitsai#5111), which is already wired into the
build, packaging, and serving pipeline. Removing the unused directory
and updating AGENTS.md to point at the current frontend.
@OliverBryant
OliverBryant force-pushed the chore/remove-legacy-web-ui branch from 590de8e to dd5da8b Compare July 8, 2026 10:31

@qinxuye qinxuye left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@qinxuye
qinxuye merged commit 51306fa into xorbitsai:main Jul 8, 2026
9 of 12 checks passed
OliverBryant added a commit to OliverBryant/inference that referenced this pull request Jul 9, 2026
… output

Gradio was only used to mount a per-model chat/image/embedding demo UI
at /{model_uid}, driven by the old React web UI. That UI was removed
in xorbitsai#5145; the Next.js frontend's chat/OCR/capability panels call the
REST API directly and never used the Gradio mount endpoints
(/v1/ui/{model_uid} and friends), so the mounting code, its request
schemas, and the xinference/ui/gradio interface builders were dead.
Dropped them along with the gradio dependency (setup.cfg, Docker
requirements) and a stale doc section describing the old mounting
design.

xinference/ui/gradio/utils/latex.py was the one piece actually still
in use - DeepSeek-OCR calls it to post-process LaTeX formulas in OCR
output - so it moves to xinference/model/image/ocr/latex.py instead of
being deleted.

The new frontend's OCR result panel renders that output through
react-markdown, which had no LaTeX support, so formulas showed up as
raw $...$ text instead of being typeset (the Gradio UI handled this via
the same latex.py module). Wire remark-math + rehype-katex (already
installed, unused) into the shared markdown renderer, extending the
sanitize schema so KaTeX's HTML survives sanitization.
OliverBryant added a commit to OliverBryant/inference that referenced this pull request Jul 10, 2026
The old React UI's setup page was dropped when the legacy frontend was
removed (xorbitsai#5145). Re-implement it on the Next.js frontend, matching the
existing login page's two-column layout:

- New /setup route (components/pages/setup) with the same brand/form
  split as the login page, highlighting real Xinference capabilities
  (one-command model serving, OpenAI-compatible API, distributed
  deployment) instead of generic copy.
- AppInit now calls GET /v1/admin/setup/status when no token is
  present; a fresh deployment (needs_setup: true) is routed to /setup
  instead of /login, and visiting /setup after setup is already
  complete bounces back to /login.
- Login page shows a one-time "account created" toast after a
  successful setup, handed off via a sessionStorage flag since the
  setup page does a full navigation rather than client-side routing
  state.
- Added `setup` i18n strings in en/zh/ja/ko.

The setup form itself posts to /v1/admin/setup with a plain fetch
rather than the shared request client, so a losing race (403, someone
else already completed setup) and validation errors (400) don't
trigger the client's generic global-toast error handling -- this page
needs to control that messaging itself.
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.

3 participants