Michael Cahill
961297f09d
M14: API runner contract test (verification milestone)
...
- Add test_api_runner_contract.py: proves API txt2img path invokes ProcessingRunner
- No routing changes: API continues to call process_images (orchestration boundary)
- Monkeypatch CI env + runner.run; call API method directly
- M14_plan.md, M14_toolcalls.md: governance docs
Phase III — Runner & Service Boundary
Made-with: Cursor
2026-03-16 23:21:18 -07:00
m-cahill
4dd0499987
M13: txt2img path through runner ( #31 )
...
* M13: txt2img path through runner — contract test and verification
- Add test_txt2img_runner_contract.py verifying txt2img invokes ProcessingRunner
- No routing changes: process_images already delegates to runner (M10)
- Update M13_plan, M13_toolcalls, M13_run1
- Scope: UI txt2img only; API/img2img in M14/M15
Made-with: Cursor
* docs(M13): add CI run1 results — smoke tests pass
Made-with: Cursor
2026-03-13 15:17:06 -07:00
Michael Cahill
c146ef787c
M12: Add runner instrumentation hooks (on_prepare, on_execute, on_finalize)
...
- Add optional no-op hooks to ProcessingRunner lifecycle
- Hooks invoked: prepare -> on_prepare -> execute -> on_execute -> finalize -> on_finalize
- Add test_runner_hooks_called contract test
- No runtime behavior change; structural seam for M13+ progress/cancellation
Made-with: Cursor
2026-03-12 14:25:36 -07:00
Michael Cahill
fb705fe646
M11: Runner lifecycle surface (prepare/execute/finalize)
...
- Refactor ProcessingRunner.run() to delegate through lifecycle stages
- Add prepare(), execute(), finalize() with pass-through behavior
- Add test_runner_lifecycle_order contract test
- Preserve identical behavior; no API/CLI changes
Phase III — Runner & Service Boundary
Made-with: Cursor
2026-03-11 23:38:17 -07:00
m-cahill
0d11b587ca
fix(M10): defer modules.processing import in test_processing_runner ( #28 )
...
Quality tests fail during collection because test_processing_runner imports
modules.processing at module level, which triggers sd_samplers before
shared.opts is initialized. Defer import to inside test and add initialize
fixture so webui/opts are loaded first.
Made-with: Cursor
2026-03-11 22:54:02 -07:00
m-cahill
880723f100
M10: ProcessingRunner skeleton ( #27 )
...
* M10: ProcessingRunner skeleton
- Add modules/runtime/runner.py with ProcessingRunner and ProcessingRequest
- Wire process_images to delegate through runner (internal only)
- Add test/quality/test_processing_runner.py contract test
Behavior-preserving. Zero blast radius. All callers unchanged.
Made-with: Cursor
* M10: Add run1 and toolcalls update
Made-with: Cursor
* M10: Update Phase III roadmap, add closeout prompt
- Phase III: M11 lifecycle, M12 instrumentation, M13 txt2img, M14 API, M15 queue
- Phase IV-VII renumbered (M16-M33)
- Add M10_closeout_prompt.md for Cursor
Made-with: Cursor
2026-03-11 22:46:56 -07:00
Michael Cahill
5fe8245957
M05: Override isolation / temporary opts seam
...
- Add modules/runtime_utils.py with temporary_opts context manager
- Refactor process_images() to use temporary_opts for override application
- Preserve opts.set(is_api=True, run_callbacks=False) and setattr restore
- Add test/quality/test_opts_override.py (samples_save, restore_afterwards)
- Model/VAE reload and token merging remain in process_images per decisions
Made-with: Cursor
2026-03-09 14:14:13 -07:00
m-cahill
077e4b93f4
fix: get_multicond_prompt_list preserves whitespace in split ( #14 )
...
Made-with: Cursor
2026-03-08 22:07:57 -07:00
m-cahill
12fba26e0a
test(M04): add API endpoints and prompt_parser tests for 40% coverage ( #13 )
...
Made-with: Cursor
2026-03-08 22:03:50 -07:00
m-cahill
298606f818
fix(M04): remove modules.util import to avoid circular import in tests ( #12 )
...
Made-with: Cursor
2026-03-08 21:59:17 -07:00
m-cahill
ea04028758
test(M04): add test_util_modules for coverage gate 40% ( #11 )
...
Made-with: Cursor
2026-03-08 21:56:10 -07:00
m-cahill
12f5c39a44
fix: remove merge conflict markers from test_api_extended.py ( #10 )
...
Made-with: Cursor
2026-03-08 20:27:24 -07:00
m-cahill
9aa32e8917
fix: remove test_interrogate_deepbooru ( #9 )
...
* test(M04): add quality tests for coverage gate 40%
Made-with: Cursor
* fix: remove test_interrogate_deepbooru (404 in CI stub)
Made-with: Cursor
2026-03-08 20:23:51 -07:00
m-cahill
c342f4bbc7
test(M04): add quality tests for coverage gate 40% ( #8 )
...
Made-with: Cursor
2026-03-08 20:19:53 -07:00
m-cahill
975dda4b56
M03: Test architecture ( #2 )
...
* docs(M03): seed M03 plan and toolcalls
Made-with: Cursor
* ci: add repository guardrail, update CONTRIBUTING workflow
Made-with: Cursor
* M03: Test architecture (smoke/quality/nightly)
- Move tests to test/smoke/, scaffold test/quality and test/nightly
- Add pytest.ini with smoke/quality/nightly markers
- Split CI: run_smoke_tests (PR), run_quality_tests (push main), run_nightly_tests (schedule)
- Remove run_tests.yaml
- Add prevent_upstream_push.sh pre-push hook template
- Update CONTRIBUTING.md with hook install and test tier docs
- Add repo and base-branch guardrails to workflows
Made-with: Cursor
* ci: remove obsolete warns_merge_master workflow (Serena uses main)
Made-with: Cursor
* fix: add base_url to pytest.ini for pytest-base-url plugin
Made-with: Cursor
* docs(M03): ledger, run1, audit, summary
Made-with: Cursor
* docs(M03): ledger commit 4ce5cde9
Made-with: Cursor
2026-03-08 18:39:40 -07:00