Skip to content

dotbot: drop the classic web UI, the console is the only one - #306

Merged
geonnave merged 5 commits into
DotBots:mainfrom
geonnave:drop-classic-ui
Sep 28, 2026
Merged

geonnave merged 5 commits into
DotBots:mainfrom
geonnave:drop-classic-ui

Conversation

@geonnave

Copy link
Copy Markdown
Contributor

Removes the classic web UI, the React app in dotbot/frontend/ served at /PyDotBot. The console at /console has covered what the fleet is driven with (map, joystick, waypoints, swarmit orchestration) for a while, and carrying two React apps doubled the frontend CI, the packaging hooks and every UI-facing change to the controller.

What goes: the whole dotbot/frontend/ tree, about 22k lines of which 16.9k are its package-lock.json, plus its wiring: the /PyDotBot static mount and the PYDOTBOT_FRONTEND_BASE_URL constant in dotbot/server.py, the sdist hook's frontend build, the wheel-contents check's frontend entry, the CI frontend job, the frontend step of tox -e web, and the frontend codecov flag.

What replaces it: the console, unchanged. / now redirects to /console/, but only when the console is built; without the build neither route exists and the controller logs that it is serving the API alone. dotbot run controller opens the console, or nothing when it is not built.

What is retired with it, each with a follow-up tracked:

  • The qrkey phone page. dotbot run demo qr still relays the controller's notifications to MQTT and shows the QR, and --webbrowser now opens the QR's own URL, but no phone page reads the relay until the console grows a qrkey mode.
  • The SailBot and XGO views.
  • The REST demo page.

This is a breaking change for anyone with /PyDotBot bookmarked; it now answers 404. The CHANGELOG says so.

It is split out of #304 and lands before it, so #304 no longer carries the removal and does not have to migrate the classic UI to its new stream.

Validated locally: full pytest (the only failures are machine-local, four config-path tests reading a real ~/.dotbot/config.toml and one simulator test whose port is taken), console build, lint and vitest (636 tests), a wheel built with hatch build passing utils/check_wheel_contents.py with no dotbot/frontend entries, and pre-commit run --all-files.

Lines Files
Classic UI lockfile (dotbot/frontend/package-lock.json) -16907 1
Classic UI tests -2642 18
Classic UI source and config -2811 32
Server, tests, packaging, CI, docs +116 / -167 20
Total +116 / -22527 71

Breaking change: /PyDotBot is gone and now answers 404; bookmarks should
move to /console, which / now redirects to. The views only the classic UI
had go with it: the qrkey phone page (the QR still points at the frozen
gh-pages copy), the REST demo page and the SailBot map.

AI-assisted: Claude Opus 5.5
@codecov

codecov Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.38%. Comparing base (15bd999) to head (0c5c1b4).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #306      +/-   ##
==========================================
- Coverage   86.11%   84.38%   -1.74%     
==========================================
  Files         210      178      -32     
  Lines       27920    24251    -3669     
  Branches     2126     1569     -557     
==========================================
- Hits        24044    20463    -3581     
+ Misses       3868     3784      -84     
+ Partials        8        4       -4     
Flag Coverage Δ
console 79.35% <ø> (ø)
frontend ?
python 87.25% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dotbot/cli/_lazygroup.py 92.30% <ø> (ø)
dotbot/examples/qrkey_demo/client.py 48.33% <ø> (ø)
dotbot/server.py 93.96% <100.00%> (+0.37%) ⬆️
dotbot/tests/test_cli_dispatcher.py 100.00% <ø> (+0.88%) ⬆️
dotbot/tests/test_server.py 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@geonnave
geonnave merged commit 6f2560a into DotBots:main Sep 28, 2026
15 checks passed
@geonnave
geonnave deleted the drop-classic-ui branch September 28, 2026 15:27
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