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.