bggpipe web: the whole pipeline as a local web app
A dashboard at / joins the review page (now at /review): drag-and-drop photo upload (re-uploading a photo drops its raw cache so extract re-reads it), per-stage status cards fed by /api/pipeline (counts and key NAMES only — never values), and run buttons that execute stages one-at-a-time in a background JobRunner with captured output streamed to the page. The real upload sits behind a confirmation, defaults to dry-run at the API layer, and stays disabled while stub data is present. The CLI is unchanged and shares all state with the web UI. python-multipart joins the deps for the upload endpoint; RunBody lives at module scope because postponed annotations keep FastAPI from resolving function-local models. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -54,12 +54,18 @@ Secrets live in environment variables only, never in config files, code, or logs
|
||||
| `BGG_USERNAME` | diff, upload, enrich | Your BGG username (public, but kept in `.env` so it lives in one place) |
|
||||
| `BGG_PASSWORD` | upload (website login) | Your BGG password |
|
||||
|
||||
Non-secret knobs (`photos_dir`, `data_dir`, the vision model, the rate limit) live in `config.toml`. Drop your shelf photos into `photos/` and run the stages in order:
|
||||
Non-secret knobs (`photos_dir`, `data_dir`, the vision model, the rate limit) live in `config.toml`. From here you can drive everything from the browser:
|
||||
|
||||
```sh
|
||||
uv run bggpipe web # opens http://127.0.0.1:8377/ — the whole pipeline in one page
|
||||
```
|
||||
|
||||
The dashboard shows every stage's status, takes photos by drag-and-drop, runs each stage with live output, links to the review page, and keeps the real upload behind a confirmation (and behind the stub-data lock). Prefer the terminal? Every stage is also a command, and the two interfaces share all state:
|
||||
|
||||
```sh
|
||||
uv run bggpipe extract # photos → titles.json (+ retake prompts)
|
||||
uv run bggpipe resolve # titles → BGG ids/versions in matches.csv
|
||||
uv run bggpipe review --web # review UI at http://127.0.0.1:8377/
|
||||
uv run bggpipe review --web # review UI only
|
||||
uv run bggpipe diff # compare against your BGG collection
|
||||
uv run bggpipe upload --dry-run # ALWAYS inspect this first
|
||||
uv run bggpipe upload --limit 1 # then one game, then small batches
|
||||
|
||||
Reference in New Issue
Block a user