Skip to content

dotbot: UX polish - default dashboard, --headless, clearer CLI errors#275

Merged
geonnave merged 20 commits into
DotBots:mainfrom
geonnave:cli-ux-feedback
Jun 5, 2026
Merged

dotbot: UX polish - default dashboard, --headless, clearer CLI errors#275
geonnave merged 20 commits into
DotBots:mainfrom
geonnave:cli-ux-feedback

Conversation

@geonnave

@geonnave geonnave commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

A grab-bag of CLI and docs UX fixes found while testing the dotbot workflow
end to end. Low-risk: mostly docs, plus one behavior change on the controller.

Dashboard on by default

dotbot run controller (and run simulator) now open the web dashboard
automatically; pass --headless to suppress it (it's still served). The old
webbrowser setting is renamed to headless everywhere - the flag, the
ControllerSettings field, the [run.controller] config key, and the docs -
so the concept has a single name. The qr demo keeps its own opt-in
--webbrowser (a phone scans the QR there, so no-browser is the right default).

Clearer wording and errors

  • "DotBot" instead of "bot"/"robot" in help text and docs; "SEGGER Embedded
    Studio" spelled out instead of "SES".
  • pip install pydotbot instead of pip install --pre pydotbot (no longer a
    pre-release).
  • "no config file found" now names where it looked (./dotbot.toml and
    ~/.dotbot/config.toml).
  • The missing-swarm-id flash error spells out the hex format and warns that
    -s / --sn-starting-digits is the J-Link serial prefix, not the swarm id.
    This is the exact confusion in Documentation #272 (flash-mari-gateway -s 10 read as a
    swarm id).

README

The calibration section leads with pip install 'pydotbot[calibrate]' and how
to find a Device Addr from dotbot swarm status.

Closes #272.

Validated: full test suite (403) green, pre-commit clean. The controller
dashboard/headless behavior is worth a quick bench check.

geonnave added 4 commits June 5, 2026 09:00
Breaking: the controller/simulator `-w`/`--no-webbrowser` flags are gone;
pass `--headless` to suppress the auto-opened dashboard. The browser now
opens by default, which is what most first-run users expect.

AI-assisted: Claude Opus 4.7
AI-assisted: Claude Opus 4.7
@codecov

codecov Bot commented Jun 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.36691% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.50%. Comparing base (a26bc89) to head (bbcb28b).
⚠️ Report is 92 commits behind head on main.

Files with missing lines Patch % Lines
dotbot/cli/swarm.py 0.00% 9 Missing ⚠️
dotbot/cli/device.py 84.61% 2 Missing ⚠️
dotbot/cli/swarm_lh2.py 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #275      +/-   ##
==========================================
+ Coverage   82.55%   83.50%   +0.94%     
==========================================
  Files         107      121      +14     
  Lines        9964    11233    +1269     
  Branches      570      570              
==========================================
+ Hits         8226     9380    +1154     
- Misses       1735     1850     +115     
  Partials        3        3              
Files with missing lines Coverage Δ
dotbot/cli/_fw_helpers.py 95.79% <ø> (-0.73%) ⬇️
dotbot/cli/_swarm_flash.py 100.00% <100.00%> (ø)
dotbot/cli/fw.py 90.60% <ø> (+3.00%) ⬆️
dotbot/cli/joystick.py 100.00% <ø> (ø)
dotbot/cli/keyboard.py 100.00% <ø> (ø)
dotbot/cli/main.py 100.00% <100.00%> (ø)
dotbot/config.py 98.02% <100.00%> (+2.13%) ⬆️
dotbot/controller.py 83.14% <100.00%> (+0.57%) ⬆️
dotbot/controller_app.py 96.90% <ø> (+0.13%) ⬆️
dotbot/tests/test_calibration_lighthouse2.py 100.00% <100.00%> (ø)
... and 6 more
🚀 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 added 5 commits June 5, 2026 09:26
Breaking: the `[run.controller] webbrowser` config key (and the legacy
--config-path `webbrowser` key) becomes `headless` with inverted sense -
default false opens the browser; set `headless = true` to suppress it.

AI-assisted: Claude Opus 4.7
@geonnave geonnave changed the title dotbot/cli: open dashboard by default and tidy user-facing text dotbot: UX polish - default dashboard, --headless, clearer CLI errors Jun 5, 2026
geonnave added 11 commits June 5, 2026 10:30
The CLI flag and the [device] config key become --probe / probe; the
firmware engine keeps sn_starting_digits internally (it accurately names a
J-Link serial-number prefix), so the rename should not propagate into
flash.py / nrf.py.

AI-assisted: Claude Opus 4.7
@geonnave geonnave merged commit 47b2e99 into DotBots:main Jun 5, 2026
14 checks passed
@geonnave geonnave deleted the cli-ux-feedback branch June 5, 2026 13:19
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.

Documentation

1 participant