ba6f41a16e1489899fe95f27129c7c7fd876d816
`tea --add-assignees` posts to /issues/{n}/assignees, which returns 404 on
this Forgejo deployment and makes every `claim` fail. Set the assignee through
the issue PATCH endpoint (full assignees list), which the server accepts, and
reuse `edit_labels` for the status transition. Update the CLI e2e fake `tea`
to model the PATCH assignee call.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WMctdE9E1c8d6UHQWX8rNt
Photo Analyzer
Integrated, restart-safe photo analysis, duplicate review, metadata, upload, and
archive workflow. Planning lives in INTEGRATED_PIPELINE_CONCEPT.md and
delivery_backlog/.
Application (photo_pipeline)
The target application lives in photo_pipeline/ (FastAPI + SQLAlchemy + Alembic).
Run it with:
python -m photo_pipeline migrate # apply database migrations
python -m photo_pipeline serve # start the API + static review UI (127.0.0.1:8000)
Configuration comes from PHOTO_PIPELINE_* environment variables (see
photo_pipeline/config.py); secrets are referenced, never logged.
Testing
One offline command runs the whole suite (unit, integration, and browser end-to-end); it needs no network and uses only deterministic synthetic fixtures:
work_item/scripts/python -m pytest tests -q
Browser end-to-end tests require a one-time Playwright browser install:
python -m playwright install chromium
Phase A acceptance gate
Phase A (Epic E01: shared identity, inventory, duplicates, thumbnails, review UI) is gated by a reproducible end-to-end suite:
work_item/scripts/python -m pytest tests/e2e tests/integration -q
tests/e2e/test_phase_a_pipeline.pylaunches the real API process against a fresh database and a deterministic fixture library, then drives scan,_IGNORE/exclusion, move reconciliation, exact/fuzzy duplicate review, thumbnail orientation, canonical selection, browser reload, and a full process restart — asserting durable API and database state after the restart.tests/story_traceability.jsonmaps every delivered story to its tests;tests/e2e/test_traceability.pyfails if a Phase A story loses coverage or a test file is left unexercised.
Description
Languages
Python
89.7%
JavaScript
6.4%
HTML
3%
CSS
0.4%
Dockerfile
0.3%
Other
0.2%