Cleanup/quality pass #1

Merged
froxxxy merged 14 commits from cleanup/quality-pass into main 2026-07-18 17:53:57 +02:00

14 Commits

Author SHA1 Message Date
Frank Schwenk a138e33c04 fix(tests): assert composite color via Pillow for IM6 CI
Test / pytest (push) Successful in 10s
Test / pytest (pull_request) Successful in 11s
ImageMagick 6 convert cannot run `identify` as a subcommand; use Pillow
mode so Gitea runners without magick pass the composite color check.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:49:16 +02:00
Frank Schwenk 5920766f42 feat(pipelines): add watermark f12 2000px resize pipeline
Test / pytest (push) Failing after 35s
Resize to 2000px max edge then apply F12 watermark darktable style.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:19 +02:00
Frank Schwenk ffc28914e1 docs: expand README and add architecture/contributing notes
Document resume, dependencies, external tools, dev commands, and MIT license.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:19 +02:00
Frank Schwenk 3443c8826d ci: add Gitea Actions workflow for ruff and unit tests
Run ruff check/format and pytest -m "not integration" on push/PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:19 +02:00
Frank Schwenk 92337b7dbc test: skip watermark integration when darktable export fails
Add darktable style probe and pytest integration/slow markers so CI and
machines without a working darktable-cli setup skip the full workflow test.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:19 +02:00
Frank Schwenk fd4658434a refactor: clarify module bootstrap and G'MIC output handling
Import all built-in modules explicitly, remove dead ImageMagick branch,
and call finalize_gmic_output in gmic_grayscale for resume parity with gmic.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:18 +02:00
Frank Schwenk a60a18a253 chore: add Ruff and apply formatting across codebase
Introduce ruff lint/format config, expand .gitignore, and reformat Python sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:14 +02:00
Frank Schwenk 84447d1d2c docs: add cleanup roadmap for quality pass
Phase 0 analysis and prioritized roadmap for the cleanup/quality-pass branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:34:12 +02:00
Frank Schwenk 9b6c80da42 feat: add aichelberg-indians pipeline and rebuild RECIPES.md
Replace the verbose recipe catalog with a compact agent reference (modules,
ImageMagick ops, G'MIC commands, combines) and add the Indians Aichelberg
tone-mapping pipeline with gmic variants and xcf export.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 10:15:28 +02:00
Frank Schwenk 765ebbe3da feat: optional step_id for custom output folder names
Allow readable step folders and xcf_stack layer labels via p.step(..., step_id=...)
while keeping the per-module auto counter unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 22:21:01 +02:00
Frank Schwenk 0daf3e2315 refactor(xcf_stack): use explicit inputs for layer list and scheduling
Replace prior_steps and runs_last with inputs=[...] step refs so GIMP
export waits only on listed layers. Add rezepttest pipeline and
bokeh-oktagon recipe.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 12:51:35 +02:00
Frank Schwenk cbca473f06 fix(xcf_stack): run last, configurable timeout, tolerate GIMP exit hang
Defer xcf_stack to the final pipeline step via runs_last, expose per-image
timeout (default 120s), accept XCF output when gimp-console hangs on quit,
and discover .xcf outputs for resume.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 12:18:32 +02:00
Frank Schwenk 100302bf01 fix: xcf_stack GIMP 3 headless script execution
Use gimp-console when available, GIMP 3 Script-Fu API, and temp .scm
batch files so layer stacking works without a display.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 11:32:03 +02:00
Frank Schwenk 1c36fc1968 docs: add RECIPES.md declarative pipeline recipes
Catalog of single-step and composite/pipeline recipes for agents to
expand into pipelines, with human notes, recipe inclusion, and xcf_stack.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 11:32:01 +02:00