refactor: rename API and frontend projects to Vocero

Rename the project directories, Python distribution and import package, and npm package. Update launcher, Docker, tooling, tests, lockfiles, and documentation while preserving existing API contracts.

Make AGENTS.md self-contained and remove external skill and workflow references.
This commit is contained in:
2026-10-06 19:26:55 -03:00
parent e0304b2bdb
commit abd03ed07d
105 changed files with 353 additions and 312 deletions
+19 -12
View File
@@ -1,11 +1,18 @@
# Backend development and compatibility
The FastAPI project lives entirely in `s2s-client/`. It uses uv 0.12.5, Python
The FastAPI project lives entirely in `vocero-api/`. It uses uv 0.12.5, Python
3.12, and a committed `uv.lock`. The frontend and speech pipeline keep their
own tooling. Runtime dependency versions match the environment used to capture
the pre-migration server; framework upgrades require a separate compatibility
review.
The Python distribution is named `vocero-api`, and its import package is
`vocero_api`. The browser package and directory are both named `vocero-frontend`.
`start_ui.sh` creates the API environment at its current path on the next start;
do not move an existing virtual environment because its executables contain
absolute paths. Reinstall optional Git hooks after a project-directory rename
with `make -C vocero-api hooks-install`.
Pytest filters only the known `anyio.abc.BlockingPortal` deprecation emitted by
Starlette's test client ([upstream issue](https://github.com/Kludex/starlette/issues/3497)).
The filter matches the exact message, warning category, and module; other
@@ -17,24 +24,24 @@ the deprecated alias. Runtime dependencies and warning handling are unchanged.
From the repository root:
```bash
make -C s2s-client install # uv sync --locked, including development tools
make -C s2s-client format # Ruff safe fixes and formatting
make -C s2s-client check # lock freshness, format, lint, mypy, pytest
make -C s2s-client test-launcher # Bash supervisor integration fixtures
make -C s2s-client test-image # Docker build and isolated runtime smoke test
make -C vocero-api install # uv sync --locked, including development tools
make -C vocero-api format # Ruff safe fixes and formatting
make -C vocero-api check # lock freshness, format, lint, mypy, pytest
make -C vocero-api test-launcher # Bash supervisor integration fixtures
make -C vocero-api test-image # Docker build and isolated runtime smoke test
```
Run `uv lock` inside `s2s-client/` when intentionally changing dependencies.
Run `uv lock` inside `vocero-api/` when intentionally changing dependencies.
Do not install server packages into a shared root environment. The launcher
syncs `s2s-client/.venv` and retains root `.env` loading, port defaults,
syncs `vocero-api/.venv` and retains root `.env` loading, port defaults,
readiness checks, and process-group shutdown. Offline starts require the
locked packages and Python runtime to have been installed or cached already.
Optional hooks use `make -C s2s-client hooks-install`; the configuration stays
in `s2s-client/.pre-commit-config.yaml`. `make -C s2s-client hooks-run` runs the
Optional hooks use `make -C vocero-api hooks-install`; the configuration stays
in `vocero-api/.pre-commit-config.yaml`. `make -C vocero-api hooks-run` runs the
same hooks without installing them. Hooks and Python quality checks apply
only to the client service. The server entry points are `s2s_client.main:app`
and the retained `server:app` shim; use `--app-dir s2s-client` from the root.
only to the client service. The server entry points are `vocero_api.main:app`
and the retained `server:app` shim; use `--app-dir vocero-api` from the root.
## Schema boundaries