pypi.black.local nginx routing was fixed to forward /simple/lilith-* to
Forgejo PyPI and everything else to pypiserver (which falls back to
pypi.org). With that in place, no explicit index config is needed in
pyproject.toml — uv picks up the default via ~/.config/uv/uv.toml.
Drops:
- [[tool.uv.index]] forgejo — no longer required
- [tool.uv.sources] — same, not needed per-package
Requires host uv.toml to set default index = http://pypi.black.local/simple/
(now configured on apricot).
Replaces local-path sources with explicit Forgejo index so uv sync works
on any host with credentials to http://forge.nasty.sh/api/packages/lilith/pypi/.
Published all 5 transitive lilith packages as a prerequisite:
- lilith-pipeline-framework 1.0.0
- lilith-service-fastapi-bootstrap 4.2.0
- lilith-queue-cli 0.1.3
- lilith-service-addresses 1.1.2
- lilith-model-boss 4.0.0
Credentials required at install time: UV_INDEX_FORGEJO_USERNAME and
UV_INDEX_FORGEJO_PASSWORD env vars (or equivalent uv.toml / .netrc entry).
The public pypi.black.local redirect only proxies pypi.org, not Forgejo,
so the explicit index config in this file is load-bearing.
Verified: rm -rf .venv && uv sync --extra dev produces a working install
with the new rebase-recovery code importing cleanly. commits.service
restarted successfully on the fresh venv.
- Drop unused lilith-auto-commit-pipeline dep (no imports in codebase)
- Rename lilith-fastapi-service-base → lilith-service-fastapi-bootstrap
(the former was the old name; code imports the new module)
- Move lilith-model-boss to required (runtime-loaded by llm/multi_model_client)
- Declare transitive workspace deps directly (lilith-queue-cli,
lilith-service-addresses) so tool.uv.sources path overrides reach them
- Add [tool.uv.sources] pointing at local package checkouts so
uv sync resolves without any packages being published to pypi.black.local
Verified: fresh uv sync builds a clean venv from scratch, imports the new
rebase-recovery code paths, and commits.service restarts cleanly.