Repository navigation
Conversation
The bar names the daemon the page is of, its host, how it stands and how many epics are live on it. Its picker lists GET /api/daemons (Local alone on a 404), switches by the address's @<name>, offers Connect for a failed daemon and Manage for Settings -> Daemons, and keeps Update, Import, Settings, Usage and Download. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Landed together in #385. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unit 7 of the multi-daemon and notifications plan: the sidebar daemon bar and picker.
What changes
data-hmz=daemon-bar). It shows the current daemon's name (Local, or the SSH entry's name), its host, a state dot (up, connecting, installing, failed, not connected) and the live count oridle.data-hmz=daemon-picker, menu nameDaemon). It listsGET /api/daemonswith each daemon's state and switches on a click. A failed daemon getsConnect(POST /api/daemons/{name}/connect).Manageopens#/settings/daemons. The machine items stay: Update when newer, Import, Settings, Usage, Download./api/daemonsmeans Local only.api.jsexportsswitchDaemon, the picker calls it. The current daemon is read throughdaemon().#/@<name>/newand dispatcheshmz:daemon(only whenonDaemonis missing).machine-menuhook is gone. The tests that clicked it now clickdaemon-bar.docs/user/web.md,docs/user/backups.md,docs/reference/cli.md.Tests
tests/integration/test_web_daemon_bar.py, in chromium and webkit. An init script answers/api/daemonsin place of the unit-3 endpoint. The test checks the bar text, the picker's list, Connect, that pickinglabsets#/@lab/new, that Manage opens#/settings/daemons, and Local-only on a 404 at phone width.uv run pytest tests/unit(5690 passed) andtests/integration/test_web_*.py(137 passed).hmz web, with screenshots in light and dark at 1280 and 375 widths. The address and the bar survive a reload.The scoped data (runs listed per daemon) comes from unit 6, the endpoints from units 3 and 4, and the Settings → Daemons page from unit 9.
🤖 Generated with Claude Code