Improve CLI and daemon lifecycle usability

This commit is contained in:
Eric Wendland 2026-07-18 15:23:20 +02:00
commit f61cb44dad
14 changed files with 1028 additions and 204 deletions

View file

@ -15,6 +15,53 @@ Status markers:
For deployment-readiness work that cuts across feature areas, see
[`docs/production-readiness-roadmap.md`](production-readiness-roadmap.md).
## Operator Usability
- `[x]` Make startup modes and the daemon lifecycle discoverable.
Acceptance criteria:
- `[x]` Base and nested CLI help explain every command family instead of
showing unlabeled command names.
- `[x]` `geth daemon install` initializes, installs, enables, and starts a
background service for the current user.
- `[x]` Common start, stop, status, and uninstall operations do not require
the nested compatibility command path.
- `[x]` Service status reports running, inactive/not-installed, and unknown
manager states without treating every nonzero status probe as an action
failure.
- `[x]` `geth daemon run --ephemeral` creates disposable state and prints the
exact `--home` selector needed by another terminal.
- `[x]` Unix user-service shutdown handles SIGTERM through the daemon's
graceful Iroh/task/socket cleanup path.
- `[x]` Tests cover lifecycle parsing, help discoverability, and explicit
home selection without mutating a real user service manager.
- `[x]` Document task-oriented user stories.
Acceptance criteria:
- `[x]` Workflows cover disposable evaluation, persistent background use,
owner setup, enrollment, CAS transfer, synchronized application state,
automation, diagnosis, backup, and recovery.
- `[x]` Each workflow identifies its success signal and relevant trust or
durability boundary.
- `[x]` Documentation distinguishes automated coverage from real-machine,
hardware-key, relay, and privileged-interface dogfooding.
- `[ ]` Add unified service-log inspection.
Acceptance criteria:
- `[ ]` One CLI command gives the platform-appropriate user-service log view
or an exact recovery command on Linux, macOS, and Windows.
- `[ ]` Log access remains user-scoped and does not require a system service.
- `[ ]` Human and JSON output distinguish unavailable logs, an uninstalled
service, and an installed service with no log entries.
- `[ ]` Publish copy-paste installation entrypoints for release artifacts.
Acceptance criteria:
- `[ ]` Linux, macOS, and Windows installation instructions verify artifact
checksums and put the single `geth` executable on `PATH`.
- `[ ]` Installation stays separate from explicit `geth daemon install` so
downloading a binary never silently creates trust state or starts a service.
- `[ ]` Upgrade and uninstall instructions preserve or explicitly remove the
selected geth home.
## Long-Term Goal: Distributed Homelab Overlay
Goal: evolve geth into a distributed, fault-tolerant homelab overlay runtime in