Files
Zeyi (Rice) Fan c7b24b8b05 refactor(cli): replace omni server start with omni server --background (#3105)
## Related issue

N/A

## Summary

- Removes the `omni server start` subcommand. `omni server` already starts
  the server (in the foreground), so `start` was a redundant way to launch it;
  the only thing it added was the detached/background mode.
- Adds a `--background` flag to `omni server` that reproduces the former
  `start` behavior: spawn (or reuse) the managed detached local server instead
  of running uvicorn in the foreground. `omni server stop` / `omni server
  status` are unchanged.
- Updates the desktop app's CLI shell-out, docs, skill files, and tests to
  the new invocation.

## Test Plan

- `omni server start` now exits `2` with "No such command 'start'" (verified
  via `CliRunner`).
- `omni server --background` routes to `ensure_local_omnigent_server()` and
  short-circuits before the foreground port-bind check; prints the URL and
  captured log path on spawn, "already running" on reuse, and omits the log
  line when `log_path` is unknown (3 renamed tests pass).
- `omni server stop` / `omni server status` behave as before (verified via
  CliRunner with stubbed registry).
- `server --help` lists `--background` and only the `stop`/`status`
  subcommands; bare `omni server` still reaches the foreground port-bind
  check.
- `node --check web/electron/src/omnigent_cli.js` passes; the spawn primitive
  in `host/local_server.py` invokes the bare `omnigent.cli server` foreground
  command, so it is unaffected by the `start` removal.

## Demo

N/A

## Type of change

- [ ] Bug fix
- [ ] Feature
- [ ] UI / frontend change
- [x] Refactor / chore
- [ ] Docs
- [ ] Test / CI
- [x] Breaking change

## Test coverage

- [ ] Unit tests added / updated
- [ ] Integration tests added / updated
- [ ] E2E tests added / updated
- [x] Manual verification completed
- [x] Existing tests cover this change
- [ ] Not applicable

## Coverage notes

Renamed the three `test_server_start_*` tests in `tests/cli/test_server_lifecycle.py`
to `test_server_background_*` (invoking `server --background`); updated
comments in `tests/host/test_local_server.py`. Manually verified routing,
help output, and the desktop CLI arg via ad-hoc CliRunner/node checks.

## Changelog

`omni server start` is removed; use `omni server --background` to launch the
detached managed server instead.
2026-07-23 06:09:05 +00:00
..