Commit Graph

12 Commits

Author SHA1 Message Date
Frank Schwenk 86989c1a4c chore: deduplicate compose environment blocks
Use YAML anchor x-app-env for the shared worker/web environment vars.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:11:28 +02:00
Frank Schwenk 5a3118f590 refactor: share env-bool parsing and logging setup
env_utils.env_bool replaces duplicated truthy parsing in config and
rembg_cli. logging_config.configure_logging unifies entry-point setup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:11:28 +02:00
Frank Schwenk b63a796907 refactor: extract atomic JSON helpers to io_utils
Centralize read_json/write_json_atomic used by pipeline meta I/O and
worker processed.json bookkeeping. Preserves corrupt-file warning in
load_processed().

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:11:26 +02:00
Frank Schwenk 0963297815 style: apply ruff format and extend gitignore
Ruff auto-fixes import order and line wrapping. Gitignore covers
build artifacts and coverage output from future test runs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:10:33 +02:00
Frank Schwenk e9f494ed9d chore: add pyproject.toml with ruff and pytest config
Pin Python 3.11 for parity with the Docker image. Dev deps live in
requirements-dev.txt for local lint/test without rembg/onnxruntime.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:10:31 +02:00
Frank Schwenk 90094cf8f8 docs: add cleanup plan from phase-0 analysis
Phase 0 inventory: ~7 Python modules, no tests/CI/lint, pipeline.py
concentration. Roadmap for incremental cleanup without behavior changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:09:53 +02:00
Frank Schwenk b925b151f0 feat: flatten output into variants/ and intermediates/
Drop per-job subdirs for phone-friendly Syncthing layout with
stem-suffixed filenames; keep web state in meta/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:52:52 +02:00
Frank Schwenk 9a9a3e3afe fix: run web/worker as uid 1002 to match Syncthing
Shared /data dirs created as root blocked Syncthing pulls into incoming/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:26:17 +02:00
Frank Schwenk d5b44b221e feat: replace SFTP drop with Syncthing share path
Remove SFTPGo; mount event data from the Syncthing folder, watch
incoming/, and name variants after the source stem.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:06:57 +02:00
Frank Schwenk 83d4468b69 feat: harden pipeline UX — preprocess, rembg alpha, remix/lightbox
Downscale to 2000px JPEG before rembg, random blend opacity, timeout
retries, per-variant remix prefill, lightbox, and longer SFTP idle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 23:35:06 +02:00
Frank Schwenk 8ef123393a docs: sharpen verification, debug-loop, and subagent guidance
Capture preferred away/E2E working style: real smoke over fake-done, defined debug-loop limit, wallclock note in handoff.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 21:32:23 +02:00
Frank Schwenk 90192cd284 feat: initial live.f12.rocks SFTP → gmic/rembg → web pipeline
Event pep stack with SFTPGo inbox, sequential worker, FastAPI gallery/remix, and Traefik-ready compose.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 21:32:10 +02:00