Commit graph

63 commits

Author SHA1 Message Date
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
Michael Cahill
a12028b148 docs(M13): update toolcalls log
Made-with: Cursor
2026-03-13 15:21:55 -07:00
Michael Cahill
c59832e3c3 docs(M13): closeout — run2, summary, audit, ledger
Made-with: Cursor
2026-03-13 15:21:49 -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
40b4aebb07 docs(M12): closeout — run2, summary, audit, ledger
Made-with: Cursor
2026-03-12 22:35:07 -07:00
Michael Cahill
46cf6d1cb6 docs(M12): update toolcalls log
Made-with: Cursor
2026-03-12 14:26:18 -07:00
Michael Cahill
bf1f85f53a Merge main into m12-runner-instrumentation 2026-03-12 14:26:02 -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
8063f2e945 docs(M11): update toolcalls log
Made-with: Cursor
2026-03-11 23:50:17 -07:00
Michael Cahill
1f2d642a47 docs(M11): closeout — run2, summary, audit, ledger, M12 seed
Made-with: Cursor
2026-03-11 23:50:08 -07:00
Michael Cahill
d91e5bc794 docs(M11): CI run1 analysis, toolcalls
Made-with: Cursor
2026-03-11 23:43:46 -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
Michael Cahill
bc626a60b1 docs(M10): seed M11 milestone folder
Made-with: Cursor
2026-03-11 22:58:19 -07:00
Michael Cahill
290b58124f docs(M10): closeout — run2, summary, audit, ledger
Made-with: Cursor
2026-03-11 22:58:14 -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
11b9e0f16e docs(M09): update toolcalls log
Made-with: Cursor
2026-03-11 21:39:21 -07:00
Michael Cahill
292115c8f0 docs(M09): closeout — run1, run2, audit, summary, ledger
Made-with: Cursor
2026-03-11 21:39:12 -07:00
Michael Cahill
398e281d4b docs(M09): update toolcalls log
Made-with: Cursor
2026-03-11 20:07:11 -07:00
Michael Cahill
372e0673f3 feat(M09): introduce RuntimeContext and attach to processing object
- Add modules/runtime_context.py with RuntimeContext dataclass
- Attach p.runtime_context in process_images_inner() after opts_snapshot
- Write-only: no migration of shared.* reads yet
- Completes Phase II runtime seam preparation

Made-with: Cursor
2026-03-11 20:06:35 -07:00
Michael Cahill
666b159d0b docs(M09): add full M09 plan
Made-with: Cursor
2026-03-11 20:05:54 -07:00
Michael Cahill
fbc8519c98 docs(M08): regenerate audit and summary per RefactorMilestoneAuditPrompt and RefactorSummaryPrompt
Made-with: Cursor
2026-03-11 20:00:32 -07:00
Michael Cahill
fd363db66a docs(M08): closeout — run2, audit, summary, ledger, M09 seed
Made-with: Cursor
2026-03-11 19:57:46 -07:00
Michael Cahill
827bc655fd docs(M08): add M08_run1.md CI report and toolcalls
Made-with: Cursor
2026-03-11 19:50:13 -07:00
Michael Cahill
be214f4eda M08: Thread opts_snapshot into process_images_inner for save-related reads
- Replace opts.foo with p.opts_snapshot.foo for safe read-only settings
- Migrated: save_images_before_face_restoration, save_images_before_color_correction,
  samples_format, return_mask, save_mask, return_mask_composite, save_mask_composite,
  grid_only_if_multiple, return_grid, grid_save, grid_format, grid_extended_filename
- Leave save_samples(), sample_hr_pass(), create_infotext(), metadata on shared.opts
- Behavior-preserving; no change to save paths or naming

Made-with: Cursor
2026-03-11 19:43:06 -07:00
Michael Cahill
c943849d1d docs(M07): update toolcalls with closeout steps
Made-with: Cursor
2026-03-11 19:21:39 -07:00
Michael Cahill
3e59f6636b docs(M07): closeout — run2, audit, summary, ledger, M08 seed
Made-with: Cursor
2026-03-11 19:21:30 -07:00
Michael Cahill
63fa49c35e docs(M07): add M07_run1.md CI analysis, toolcalls update
Made-with: Cursor
2026-03-10 12:29:15 -07:00
Michael Cahill
87c8fe8651 M07: Opts snapshot introduction
- Add modules/opts_snapshot.py with create_opts_snapshot(opts)
- Capture snapshot in process_images_inner after prepare_prompt_seed_state
- Full shallow copy of opts.data via SimpleNamespace
- No runtime behavior change; snapshot write-only for M07

Made-with: Cursor
2026-03-10 00:33:55 -07:00
Michael Cahill
044e827dee docs(M07): seed M07 plan and toolcalls scaffold
Made-with: Cursor
2026-03-09 23:45:23 -07:00
Michael Cahill
5f54c4510c docs(M06): closeout — run2, audit, summary, ledger update
Made-with: Cursor
2026-03-09 23:45:15 -07:00
Michael Cahill
0675b336aa docs(M06): add M06_run1.md CI analysis, toolcalls
Made-with: Cursor
2026-03-09 23:19:58 -07:00
Michael Cahill
92fbf62319 M06: Extract prompt/seed prep to prompt_seed_prep.py
- Add modules/prompt_seed_prep.py with prepare_prompt_seed_state(p)
- Replace inline all_seeds/all_subseeds logic in process_images_inner
- Mutate p.seed/p.subseed before call; prepare_prompt_seed_state writes to p
- Behavior-preserving: fill_fields_from_opts, setup_prompts unchanged
- Phase II runtime seam preparation

Made-with: Cursor
2026-03-09 23:15:47 -07:00
Michael Cahill
595ea21752 docs(M05): closeout — summary, audit, ledger, M06 seed
Made-with: Cursor
2026-03-09 22:53:27 -07:00
Michael Cahill
0654b9a9f7 docs(M05): update M05_run2 with Quality success (22888808682)
Made-with: Cursor
2026-03-09 22:41:55 -07:00
Michael Cahill
715db891f3 docs(M05): add M05_run2.md CI report for fix PR
Made-with: Cursor
2026-03-09 16:43:19 -07:00
Michael Cahill
3039abb1a0 fix(M05): ensure config exists so opts.data populated for test_opts_override
When opts.load() gets FileNotFoundError, opts.data = {}.
temporary_opts only applies overrides for keys in opts.data.
Initialize fixture now creates minimal config.json when missing.

Made-with: Cursor
2026-03-09 15:33:11 -07:00
Michael Cahill
cbf1dbc59b docs(M05): add M05_run1.md CI analysis report
Made-with: Cursor
2026-03-09 14:49:48 -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
Michael Cahill
9952611b02 docs(M04): closeout - summary, audit, ledger, M05 seed
Made-with: Cursor
2026-03-09 12:45:58 -07:00
m-cahill
126733c892
M04: Coverage/security/reproducibility guardrails (#4)
* docs(M03): closeout - ledger merge SHA 975dda4b, Quality 22834861040; seed M04

Made-with: Cursor

* M04: Coverage/security/reproducibility guardrails

- Smoke: remove pip-audit (keep fast)
- Quality: add pip-audit (fail on vuln), verify pinned deps, ci_environment.txt
- Quality: coverage gate 33% -> 40%, --cov-report=term
- Quality: upload coverage.xml, ci_environment.txt artifacts
- Add scripts/ci/verify_pinned_deps.sh

Made-with: Cursor

* ci: trigger Smoke Tests for M04 PR

Made-with: Cursor

* docs(M04): run1 analysis, toolcalls

Made-with: Cursor
2026-03-08 20:06:10 -07:00
m-cahill
3bf5283388
docs(M03): closeout - ledger merge SHA 975dda4b, Quality 22834861040; seed M04 (#3)
Made-with: Cursor
2026-03-08 19:15:27 -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
Michael Cahill
ffad3a73ee docs(M02): run1, summary, audit, ledger update
Made-with: Cursor
2026-03-08 15:57:49 -07:00
Michael Cahill
7484170dda ci(M02): set coverage baseline 33%, defer 60% to M04
Made-with: Cursor
2026-03-08 15:53:22 -07:00
Michael Cahill
fa0575c929 ci(M02): enforce coverage gate on combined pytest+server coverage
Made-with: Cursor
2026-03-08 15:48:46 -07:00
Michael Cahill
fbd17d1162 M02: API CI truthfulness, fake inference for txt2img/img2img, CONTRIBUTING
Made-with: Cursor
2026-03-08 15:43:47 -07:00
Michael Cahill
31342a5b31 docs(M01): CI report Run 4 closeout verification
Made-with: Cursor
2026-03-07 23:12:57 -08:00
Michael Cahill
0bd566f5b3 docs(M01): milestone closeout, audit, and M02 plan
Made-with: Cursor
2026-03-07 22:39:54 -08:00
Michael Cahill
2f6640490c docs(M01): update CI report and run3 with dynamic stub results
Made-with: Cursor
2026-03-07 21:38:49 -08:00
Michael Cahill
bdda999f81 ci(M01): replace manual LDM stubs with dynamic stub module
Made-with: Cursor
2026-03-07 21:03:52 -08:00