stable-diffusion-webui/docs/milestones/M10/M10_run1.md

3.8 KiB

M10 CI Run 1 — ProcessingRunner Skeleton

Date: 2026-03-11
Branch: m10-processing-runner
PR: (verify target repo — gh may have created against upstream)
Trigger: pull_request (PR to main)
Commit: 59e46fa0


1. Workflow Identity

Workflow Run ID Trigger Branch Commit Status
Linter (pending) pull_request m10-processing-runner 59e46fa0
Smoke Tests (pending) pull_request m10-processing-runner 59e46fa0
Quality Tests (post-merge) push main

Note: PR created via gh pr create. Monitor CI at GitHub Actions. Quality Tests run on push to main after merge.


2. Change Context

Item Value
Milestone M10 — ProcessingRunner Skeleton
Phase Phase III — Runner & Service Boundary
Posture Behavior-preserving
Refactor target modules/runtime/runner.py (new), modules/processing.py (delegation)
Run type First CI verification of M10 implementation

3. Step 1 — Workflow Inventory

(To be populated after CI run completes.)

Linter

Job Required? Purpose Pass/Fail
ruff Yes Python lint
eslint Yes JS lint

Smoke Tests

Job / Step Required? Purpose Pass/Fail
Run smoke tests Yes pytest test/smoke

Quality Tests (post-merge)

Job / Step Required? Purpose Pass/Fail
Run quality tests Yes pytest test/quality, coverage ≥40%

4. Step 2 — Refactor Signal Integrity

A) Tests

  • Tier: Smoke + Quality (new contract test: test_processing_runner_delegates)
  • Coverage of refactor target: Smoke tests exercise txt2img/img2img API → process_images() → runner → process_images_inner(). Contract test verifies runner delegates correctly.
  • Failures: (to be filled after CI)
  • Golden/snapshot: Behavior-preserving; no output changes.

B) Coverage

  • Quality tier enforces ≥40%. New test adds minimal coverage for runner module.

C) Static Gates

  • Ruff, eslint: (to be filled after CI)

5. Step 3 — Delta Analysis

Change Inventory

File Change
modules/runtime/init.py New: Package init
modules/runtime/runner.py New: ProcessingRunner, ProcessingRequest
modules/processing.py Delegate to runner inside process_images
test/quality/test_processing_runner.py New: Contract test
docs/milestones/M10/* Plan, toolcalls

Call graph (unchanged from caller perspective):

UI/API/scripts
      │
      ▼
process_images(p)
      │
      ▼
ProcessingRunner.run(request)
      │
      ▼
process_images_inner(p)

6. Step 4 — Invariant Verification

Invariant Verification Status
CLI behavior No CLI changes
API responses Same path; smoke tests
Processing results Byte-identical (runner is thin adapter)
Runtime state No new side effects
CI coverage ≥40% (Quality gate)

7. Blast Radius

Files changed:

  • modules/runtime/ (new)
  • modules/processing.py (modified)
  • test/quality/test_processing_runner.py (new)
  • docs/milestones/M10/*

Zero blast radius to callers. All UI, API, scripts call process_images(p) unchanged.


8. Verdict

CI Status: (pending — monitor GitHub Actions)

Refactor posture: Behavior-preserving. First Phase III execution boundary. Runner is thin adapter; no behavior change.

Next step: Monitor CI. After green: await merge permission. Post-merge: Quality Tests, then audit/summary/ledger/tag per governance.