From 32b16b24b60e80b1f6bfaece05bde2caeef8ed9e Mon Sep 17 00:00:00 2001 From: Michael Cahill Date: Wed, 11 Mar 2026 21:50:45 -0700 Subject: [PATCH] M10: Add run1 and toolcalls update Made-with: Cursor --- docs/milestones/M10/M10_run1.md | 138 +++++++++++++++++++++++++++ docs/milestones/M10/M10_toolcalls.md | 3 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 docs/milestones/M10/M10_run1.md diff --git a/docs/milestones/M10/M10_run1.md b/docs/milestones/M10/M10_run1.md new file mode 100644 index 000000000..fcf4df8ca --- /dev/null +++ b/docs/milestones/M10/M10_run1.md @@ -0,0 +1,138 @@ +# 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. diff --git a/docs/milestones/M10/M10_toolcalls.md b/docs/milestones/M10/M10_toolcalls.md index a75cc61e7..cec5f5e2a 100644 --- a/docs/milestones/M10/M10_toolcalls.md +++ b/docs/milestones/M10/M10_toolcalls.md @@ -8,4 +8,5 @@ Implementation toolcalls for Cursor execution. | 2026-03-11 | write | Create modules/runtime/runner.py | modules/runtime/ | done | | 2026-03-11 | search_replace | Wire process_images to delegate through runner | modules/processing.py | done | | 2026-03-11 | write | Add contract test for ProcessingRunner | test/quality/test_processing_runner.py | done | -| 2026-03-11 | run | Create branch m10-processing-runner | git | in_progress | +| 2026-03-11 | run | Create branch m10-processing-runner | git | done | +| 2026-03-11 | run | git add, commit, push, gh pr create | git, gh | done |