docs(readme): make the one-command uv path the first copyable block

The one-command uv install existed only as prose with a Unicode ellipsis
in place of the URL, so it could not be copied. The two-command pip path
was first and copyable, but the second command alone fails
(No matching distribution found for llm-ingestion-guard) since pip does
not resolve the transitive git dependency uv reads from
[tool.uv.sources]. Re-measured 2026-08-20 with an empty uv cache: the
one-command path still installs guard==0.2.0 + okf==0.4.0 cleanly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011mVhrxD21mPtaLMrGdixUq
This commit is contained in:
Kjell Tore Guttormsen 2026-08-21 11:26:55 +02:00
commit f01c04cd92

View file

@ -19,20 +19,27 @@ Node half) is planned (see `docs/plan/`).
## Install
Python 3.10+. Neither this package nor the guard it depends on is on a package
index yet, so **with pip, install the guard first** — otherwise installing this
package fails with `No matching distribution found for llm-ingestion-guard`:
index yet. With uv, one command is enough:
```
uv pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.4.0"
```
uv resolves the guard on its own, because it reads the `[tool.uv.sources]`
entry in the `pyproject.toml` **of the tag it is installing**, and `v0.4.0`
points that entry at the guard tag below. Measured 2026-07-25 and re-measured
2026-08-20 with an empty `uv` cache; both runs installed
`llm-ingestion-guard==0.2.0` + `llm-ingestion-okf==0.4.0` and imported clean.
With plain pip, the transitive git dependency does not resolve on its own —
**install the guard first**, or installing this package fails with
`No matching distribution found for llm-ingestion-guard`:
```
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v0.2.0"
pip install "llm-ingestion-okf @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.4.0"
```
With uv, one command is enough — `uv pip install "llm-ingestion-okf @ git+…@v0.4.0"`
resolves the guard on its own, because uv reads the `[tool.uv.sources]` entry
in the `pyproject.toml` **of the tag it is installing**, and `v0.4.0` points
that entry at the guard tag above. Both paths were measured on 2026-07-25,
against this exact pair of tags.
The guard tag is paired to the okf tag, not to this branch: `v0.4.0` declares
`llm-ingestion-guard>=0.2,<0.3`, which `v0.2.0` satisfies and later guard tags
do not. `main` has since moved its own pin to `>=0.3,<0.4` (see