docs(M05): add M05_run1.md CI analysis report

Made-with: Cursor
This commit is contained in:
Michael Cahill 2026-03-09 14:49:48 -07:00
parent 5fe8245957
commit cbf1dbc59b
2 changed files with 167 additions and 0 deletions

View file

@ -0,0 +1,165 @@
# M05 CI Run 1 — Override Isolation / Temporary Opts Seam
**Date:** 2026-03-09
**Branch:** m05-override-isolation
**PR:** #18
**Trigger:** pull_request (PR to main)
---
## 1. Workflow Identity
| Workflow | Run ID | Trigger | Branch | Commit | Status |
|----------|--------|---------|--------|--------|--------|
| Smoke Tests | 22876253113 | pull_request | m05-override-isolation | 5fe82459 | ✓ success |
| Linter | 22876253091 | pull_request | m05-override-isolation | 5fe82459 | ✓ success |
**Quality Tests:** Not yet run (triggered on push to main; will run post-merge).
---
## 2. Change Context
| Item | Value |
|------|-------|
| Milestone | M05 — Override isolation / temporary opts seam |
| Phase | Phase II — Runtime Seam Preparation |
| Posture | Behavior-preserving |
| Refactor target | `modules/processing.py` (override apply/restore), new `modules/runtime_utils.py` |
| Run type | Corrective (first CI verification of M05 implementation) |
---
## 3. Step 1 — Workflow Inventory
### Smoke Tests (22876253113)
| Job / Step | Required? | Purpose | Pass/Fail |
|------------|-----------|---------|-----------|
| Verify repository | Yes | Guardrail: m-cahill/serena only | ✓ |
| Verify base branch | Yes | Guardrail: PR targets main | ✓ |
| Checkout Code | Yes | Fetch PR branch | ✓ |
| Set up Python 3.10 | Yes | Runtime | ✓ |
| Cache models | Yes | Deterministic model path | ✓ |
| Install test dependencies | Yes | pytest, coverage | ✓ |
| Install runtime dependencies | Yes | torch, CLIP, open_clip, requirements_versions | ✓ |
| Create stub repositories | Yes | CI fake inference support | ✓ |
| Setup environment | Yes | launch.py --exit | ✓ |
| Smoke startup | Yes | Verify server can start | ✓ |
| Start test server | Yes | Live server for API tests | ✓ |
| **Run smoke tests** | **Yes** | **pytest test/smoke** | **✓** |
| Kill test server | Yes | Cleanup | ✓ |
| Upload main app output | No (always) | Artifact for debugging | ✓ |
**Duration:** 2m48s (Run smoke tests ~45s)
### Linter (22876253091)
| Job | Required? | Purpose | Pass/Fail |
|-----|-----------|---------|-----------|
| ruff | Yes | Python lint | ✓ |
| eslint | Yes | JS lint | ✓ |
---
## 4. Step 2 — Refactor Signal Integrity
### A) Tests
- **Tier:** Smoke only (test/smoke)
- **Coverage of refactor target:** Smoke tests exercise txt2img and img2img API endpoints, which call `process_images()``temporary_opts``process_images_inner`. The override seam is on the critical path.
- **Failures:** None
- **Golden/snapshot:** Smoke tests use CI fake inference (deterministic 1×1 PNG); no golden image comparison. API contract (response schema) is exercised.
- **Missing:** `test_opts_override.py` (quality tier) did not run; it will run on push to main.
### B) Coverage
- Smoke run does not enforce a coverage gate (Quality Tests do, on push to main).
- Coverage gate: ≥40% (M04 baseline).
- Post-merge Quality run will report coverage and run `test_opts_override.py`.
### C) Static / Policy Gates
- Ruff and eslint passed on new and modified files.
- No import boundary breaks, circular deps, or layering violations observed.
### D) Security / Supply Chain
- Not run in Smoke (Quality runs pip-audit).
### E) Performance
- No benchmarks. Smoke tests complete in expected time (~45s for pytest).
---
## 5. Step 3 — Delta Analysis
### Change inventory
| File | Change |
|------|--------|
| modules/runtime_utils.py | New (temporary_opts context manager) |
| modules/processing.py | Modified (use temporary_opts, preserve model/VAE reload, token merging) |
| test/quality/test_opts_override.py | New (unit tests for seam) |
| docs/milestones/M05/* | Plan, toolcalls |
**Public surfaces:** None. API endpoints, CLI, schemas unchanged.
### Expected vs observed
- **Expected:** Override logic relocated to context manager; behavior identical.
- **Observed:** Smoke tests pass; txt2img/img2img path exercises the new seam without regression.
### Refactor-specific drift
- **Signal drift:** None. All required checks ran and passed.
- **Coupling revealed:** None.
- **Hidden dependencies:** None observed.
---
## 6. Step 4 — Failure Analysis
No failures. All jobs passed.
---
## 7. Step 5 — Invariants & Guardrails Check
| Invariant | Status |
|-----------|--------|
| Required checks enforced | ✓ Smoke, Linter both required and passed |
| No scope creep | ✓ Only override seam; no feature work |
| Public surfaces compatible | ✓ API/CLI/schemas unchanged |
| Schema/contract outputs valid | ✓ Smoke exercises API responses |
| Determinism preserved | ✓ CI fake inference; no golden drift |
| No green-but-misleading path | ✓ No skips, continues, or muted gates |
---
## 8. Step 6 — Verdict
**Verdict:** Smoke Tests and Linter both passed. The refactor target (`process_images``temporary_opts`) is on the critical path exercised by smoke tests (txt2img, img2img). No behavioral drift observed. Quality Tests (including `test_opts_override.py` and coverage) will run post-merge on push to main.
**Recommended outcome:** ✅ **Merge approved**
---
## 9. Step 7 — Next Actions
| Action | Owner | Scope | Milestone |
|--------|-------|-------|-----------|
| Merge PR #18 | Human | m05-override-isolation → main | M05 |
| Verify Quality run post-merge | Human/Cursor | Run ID, coverage ≥40%, test_opts_override pass | M05 |
| Generate M05_summary, M05_audit, ledger update | Cursor | After Quality green | M05 closeout |
---
## 10. Summary Table
| Check | Run ID | Result |
|-------|--------|--------|
| Smoke Tests | 22876253113 | ✓ success |
| Linter | 22876253091 | ✓ success |
| Quality Tests | — | Pending (push to main) |

View file

@ -11,3 +11,5 @@
| 2026-03-09 | search_replace | Refactor process_images to use temporary_opts | modules/processing.py | done |
| 2026-03-09 | write | Add test_opts_override.py | test/quality/test_opts_override.py | done |
| 2026-03-09 | ruff | Lint runtime_utils, test_opts_override | modules/runtime_utils.py, test/quality/test_opts_override.py | pass |
| 2026-03-09 | git | Create branch, commit, push | m05-override-isolation, 5fe82459 | done |
| 2026-03-09 | write | Generate M05_run1.md | docs/milestones/M05/M05_run1.md | done |