mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2026-03-22 06:10:51 -07:00
docs(M10): closeout — run2, summary, audit, ledger
Made-with: Cursor
This commit is contained in:
parent
0d11b587ca
commit
290b58124f
5 changed files with 399 additions and 65 deletions
139
docs/milestones/M10/M10_audit.md
Normal file
139
docs/milestones/M10/M10_audit.md
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
# M10 Audit — ProcessingRunner Skeleton
|
||||
|
||||
**Milestone:** M10
|
||||
**Title:** ProcessingRunner skeleton
|
||||
**Mode:** DELTA AUDIT
|
||||
**Range:** 2c6a2510 (M09) → 0d11b587 (M10 + fix)
|
||||
**CI Status:** Green (Quality 22988627838)
|
||||
**Refactor Posture:** Behavior-Preserving
|
||||
**Audit Verdict:** 🟢 Milestone objectives met. First Phase III execution boundary. Proceed to M11.
|
||||
|
||||
---
|
||||
|
||||
## 1. Executive Summary (Delta-First)
|
||||
|
||||
**Wins:**
|
||||
* Introduced ProcessingRunner and ProcessingRequest in modules/runtime/runner.py
|
||||
* process_images delegates through runner; all callers unchanged (zero blast radius)
|
||||
* First Phase III execution boundary — enables lifecycle, instrumentation, feature routing
|
||||
* Contract test verifies delegation; fixed collection error via initialize fixture
|
||||
* Phase III roadmap corrected (M11 lifecycle before txt2img routing)
|
||||
|
||||
**Risks:** None identified. Fix PR #28 addressed Quality test collection error.
|
||||
|
||||
**Next action:** Proceed to M11 (Runner lifecycle surface).
|
||||
|
||||
---
|
||||
|
||||
## 2. Delta Map & Blast Radius
|
||||
|
||||
| Changed | Impact |
|
||||
|---------|--------|
|
||||
| modules/runtime/runner.py | New — ProcessingRunner, ProcessingRequest |
|
||||
| modules/processing.py | Modified — delegate to runner inside process_images |
|
||||
| test/quality/test_processing_runner.py | New — contract test (defer import, initialize fixture) |
|
||||
| docs/serena.md | Phase III roadmap (M11–M15) |
|
||||
| docs/milestones/M10/* | Plan, toolcalls, run1, run2, closeout prompt |
|
||||
|
||||
**Consumer surfaces touched:** None. API, CLI, file formats, extension API unchanged.
|
||||
|
||||
**Blast radius:** Internal delegation only. Call graph: process_images → runner.run → process_images_inner. Breakage would require runner or delegation failure — covered by smoke/quality tests.
|
||||
|
||||
---
|
||||
|
||||
## 3. Architecture & Modularity Review
|
||||
|
||||
* **Boundary violations:** None. Runner is thin adapter.
|
||||
* **Coupling added:** Minimal — processing imports runner (deferred inside function); runner imports process_images_inner (inside run()).
|
||||
* **Dead abstractions:** None. Runner is first step toward lifecycle, instrumentation, feature routing.
|
||||
* **Layering leaks:** None.
|
||||
|
||||
**Keep:** Current structure. **Fix now:** None. **Defer:** None.
|
||||
|
||||
---
|
||||
|
||||
## 4. CI/CD & Workflow Audit
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| Linter (PR #27) | 22987245316 ✓ (rerun after transient checkout failure) |
|
||||
| Smoke Tests (PR #27) | 22987245317 ✓ |
|
||||
| Quality Tests (post-merge, initial) | 22988456117 ✗ (test collection error) |
|
||||
| Fix PR #28 Linter | ✓ |
|
||||
| Fix PR #28 Smoke Tests | ✓ |
|
||||
| Quality Tests (post fix merge) | 22988627838 ✓ |
|
||||
| Coverage | ≥40% gate satisfied |
|
||||
| verify_pinned_deps | ✓ Passed |
|
||||
| pip-audit | Informational (M27) |
|
||||
|
||||
**CI Root Cause Summary:** Initial Quality failure due to test_processing_runner importing modules.processing at collection time before shared.opts initialized. Fixed by deferring import and adding initialize fixture.
|
||||
|
||||
**Minimal Fix Set:** Applied in PR #28.
|
||||
**Guardrails:** Quality tests importing heavy modules must use initialize fixture and defer imports.
|
||||
|
||||
---
|
||||
|
||||
## 5. Tests, Coverage, and Invariants (Delta-Only)
|
||||
|
||||
* **Coverage delta:** runner.py covered by contract test; overall ≥40% maintained.
|
||||
* **New tests:** test_processing_runner_delegates (contract test).
|
||||
* **Invariant verification:** PASS — generation behavior, file output, API, CLI preserved.
|
||||
* **Flaky tests:** None introduced.
|
||||
|
||||
**Missing Invariants:** None.
|
||||
**Missing Tests:** None for M10 scope.
|
||||
**Fast Fixes:** None.
|
||||
|
||||
---
|
||||
|
||||
## 6. Security & Supply Chain (Delta-Only)
|
||||
|
||||
* **Dependency deltas:** None. No new dependencies.
|
||||
* **Secrets exposure:** None.
|
||||
* **Workflow trust boundary:** Unchanged.
|
||||
* **pip-audit:** Informational; vulns deferred to M27 (M04 baseline).
|
||||
|
||||
---
|
||||
|
||||
## 7. Refactor Guardrail Compliance Check
|
||||
|
||||
| Guardrail | Status |
|
||||
|-----------|--------|
|
||||
| Invariant declaration | PASS — M10 plan declared invariants; verified by CI |
|
||||
| Baseline discipline | PASS — Range 2c6a2510...0d11b587; delta vs M09 documented |
|
||||
| Consumer contract protection | PASS — API/CLI/schema unchanged; smoke tests exercise contracts |
|
||||
| Extraction/split safety | N/A |
|
||||
| No silent CI weakening | PASS — All gates enforced |
|
||||
|
||||
---
|
||||
|
||||
## 8. Top Issues (Max 7, Ranked)
|
||||
|
||||
None. Fix PR #28 resolved Quality test collection error.
|
||||
|
||||
---
|
||||
|
||||
## 9. PR-Sized Action Plan
|
||||
|
||||
| ID | Task | Category | Acceptance Criteria | Risk | Est |
|
||||
|----|------|----------|---------------------|------|-----|
|
||||
| — | None required | — | — | — | — |
|
||||
|
||||
---
|
||||
|
||||
## 10. Deferred Issues Registry (Cumulative)
|
||||
|
||||
| ID | Issue | Discovered | Deferred To | Reason | Blocker? | Exit Criteria |
|
||||
|----|-------|------------|-------------|--------|----------|---------------|
|
||||
| (none new) | | | | | | |
|
||||
|
||||
---
|
||||
|
||||
## 11. Score Trend (Cumulative)
|
||||
|
||||
| Milestone | Invariants | Compat | Arch | CI | Sec | Tests | DX | Docs | Overall |
|
||||
|-----------|------------|--------|------|-----|-----|-------|-----|------|---------|
|
||||
| M09 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 |
|
||||
| M10 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 | 5.0 |
|
||||
|
||||
M10: First Phase III boundary. Runner skeleton introduces execution surface without behavior change. Quality test fix applied; CI green.
|
||||
|
|
@ -1,82 +1,65 @@
|
|||
# M10 CI Run 1 — ProcessingRunner Skeleton
|
||||
|
||||
**Date:** 2026-03-11
|
||||
**Date:** 2026-03-12
|
||||
**Branch:** m10-processing-runner
|
||||
**PR:** (verify target repo — gh may have created against upstream)
|
||||
**Trigger:** pull_request (PR to main)
|
||||
**Commit:** 59e46fa0
|
||||
**PR:** [#27](https://github.com/m-cahill/serena/pull/27) (m-cahill/serena)
|
||||
**Trigger:** pull_request
|
||||
**Commit:** 23e10892 (includes roadmap update)
|
||||
|
||||
---
|
||||
|
||||
## 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 | — | — |
|
||||
| Workflow | Run ID | Trigger | Branch | Status |
|
||||
|----------|--------|---------|--------|--------|
|
||||
| Linter | 22987245316 | pull_request | m10-processing-runner | ✓ success (rerun after transient checkout failure) |
|
||||
| Smoke Tests | 22987245317 | pull_request | m10-processing-runner | ✓ success |
|
||||
|
||||
**Note:** PR created via `gh pr create`. Monitor CI at GitHub Actions. Quality Tests run on push to main after merge.
|
||||
**Quality Tests:** Post-merge only (runs on push to main).
|
||||
|
||||
---
|
||||
|
||||
## 2. Change Context
|
||||
## 2. Workflow Inventory
|
||||
|
||||
| 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 |
|
||||
### Linter (22987245316)
|
||||
|
||||
---
|
||||
| Job | Required? | Purpose | Pass/Fail | Notes |
|
||||
|-----|-----------|---------|-----------|-------|
|
||||
| ruff | Yes | Python lint | ✓ | 8s |
|
||||
| eslint | Yes | JS lint | ✓ | Passed on rerun (initial run had transient checkout failure) |
|
||||
|
||||
## 3. Step 1 — Workflow Inventory
|
||||
**Note:** Initial run failed at Checkout Code (GitHub auth/infra). Rerun succeeded; both ruff and eslint pass.
|
||||
|
||||
(To be populated after CI run completes.)
|
||||
|
||||
### Linter
|
||||
|
||||
| Job | Required? | Purpose | Pass/Fail |
|
||||
|-----|-----------|---------|-----------|
|
||||
| ruff | Yes | Python lint | — |
|
||||
| eslint | Yes | JS lint | — |
|
||||
|
||||
### Smoke Tests
|
||||
### Smoke Tests (22987245317)
|
||||
|
||||
| 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% | — |
|
||||
| smoke tests | Yes | pytest test/smoke | ✓ |
|
||||
| Duration | — | — | 2m33s |
|
||||
|
||||
---
|
||||
|
||||
## 4. Step 2 — Refactor Signal Integrity
|
||||
## 3. 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)
|
||||
- **Tier:** Smoke (passed)
|
||||
- **Coverage of refactor target:** Smoke tests exercise txt2img/img2img API → `process_images()` → runner → `process_images_inner()`. Full generation path exercised.
|
||||
- **Failures:** None in smoke tier.
|
||||
- **Golden/snapshot:** Behavior-preserving; no output changes.
|
||||
|
||||
### B) Coverage
|
||||
### B) Static Gates
|
||||
|
||||
- Quality tier enforces ≥40%. New test adds minimal coverage for runner module.
|
||||
- **ruff:** ✓ Passed. M10 Python changes (runner, processing delegation, test) pass lint.
|
||||
- **eslint:** ✓ Passed (on rerun). No M10 changes touch JS.
|
||||
|
||||
### C) Static Gates
|
||||
### C) Coverage
|
||||
|
||||
- Ruff, eslint: (to be filled after CI)
|
||||
- Quality tier (post-merge) enforces ≥40%. New contract test adds coverage for runner module.
|
||||
|
||||
---
|
||||
|
||||
## 5. Step 3 — Delta Analysis
|
||||
## 4. Delta Analysis
|
||||
|
||||
### Change Inventory
|
||||
|
||||
|
|
@ -86,7 +69,8 @@
|
|||
| 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 |
|
||||
| docs/serena.md | Phase III roadmap update (M11–M15) |
|
||||
| docs/milestones/M10/* | Plan, toolcalls, closeout prompt |
|
||||
|
||||
**Call graph (unchanged from caller perspective):**
|
||||
|
||||
|
|
@ -105,34 +89,28 @@ process_images_inner(p)
|
|||
|
||||
---
|
||||
|
||||
## 6. Step 4 — Invariant Verification
|
||||
## 5. Invariant Verification
|
||||
|
||||
| Invariant | Verification | Status |
|
||||
|-----------|--------------|--------|
|
||||
| CLI behavior | No CLI changes | ✓ |
|
||||
| API responses | Same path; smoke tests | — |
|
||||
| Processing results | Byte-identical (runner is thin adapter) | — |
|
||||
| API responses | Smoke tests pass; same path | ✓ |
|
||||
| Processing results | Byte-identical (runner is thin adapter) | ✓ |
|
||||
| Runtime state | No new side effects | ✓ |
|
||||
| CI coverage | ≥40% (Quality gate) | — |
|
||||
| CI coverage | Quality gate post-merge | — |
|
||||
|
||||
---
|
||||
|
||||
## 7. Blast Radius
|
||||
## 6. Verdict
|
||||
|
||||
**Files changed:**
|
||||
- `modules/runtime/` (new)
|
||||
- `modules/processing.py` (modified)
|
||||
- `test/quality/test_processing_runner.py` (new)
|
||||
- `docs/milestones/M10/*`
|
||||
| Check | Status | Notes |
|
||||
|-------|--------|-------|
|
||||
| ruff | ✓ | Python lint passed |
|
||||
| eslint | ✓ | Passed on rerun |
|
||||
| Smoke Tests | ✓ | All smoke tests passed |
|
||||
|
||||
**Zero blast radius to callers.** All UI, API, scripts call `process_images(p)` unchanged.
|
||||
|
||||
---
|
||||
|
||||
## 8. Verdict
|
||||
|
||||
**CI Status:** (pending — monitor GitHub Actions)
|
||||
**CI Status:** ✓ **Green** — All PR checks pass.
|
||||
|
||||
**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.
|
||||
**Next step:** Merge PR, monitor post-merge Quality Tests, then closeout per M10_closeout_prompt.md.
|
||||
|
|
|
|||
45
docs/milestones/M10/M10_run2.md
Normal file
45
docs/milestones/M10/M10_run2.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# M10 CI Run 2 — Post-Merge Quality Tests
|
||||
|
||||
**Date:** 2026-03-12
|
||||
**Branch:** main
|
||||
**Merge commit:** 0d11b587 (M10 + fix PR #28)
|
||||
**Trigger:** push to main
|
||||
|
||||
---
|
||||
|
||||
## 1. Workflow Identity
|
||||
|
||||
| Workflow | Run ID | Trigger | Status |
|
||||
|----------|--------|---------|--------|
|
||||
| Linter | 22988627802 | push | ✓ success |
|
||||
| Quality Tests | 22988627838 | push | ✓ success |
|
||||
|
||||
---
|
||||
|
||||
## 2. Run 1 → Run 2 Delta
|
||||
|
||||
**Run 1 (22988456117):** Quality Tests failed — `test_processing_runner.py` collection error. Importing `modules.processing` at module level triggered `sd_samplers` before `shared.opts` was initialized.
|
||||
|
||||
**Fix (PR #28):** Defer `import modules.processing` to inside the test; add `initialize` fixture so webui/opts load first.
|
||||
|
||||
**Run 2 (22988627838):** Quality Tests passed after fix merge.
|
||||
|
||||
---
|
||||
|
||||
## 3. Quality Tests Summary
|
||||
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| Smoke tests | ✓ |
|
||||
| Quality tests | ✓ |
|
||||
| Coverage | ≥40% gate satisfied |
|
||||
| verify_pinned_deps | ✓ |
|
||||
| pip-audit | Informational (M27) |
|
||||
|
||||
---
|
||||
|
||||
## 4. Verdict
|
||||
|
||||
**CI Status:** ✓ Green — All post-merge checks pass.
|
||||
|
||||
M10 closeout can proceed: audit, summary, ledger, tag.
|
||||
169
docs/milestones/M10/M10_summary.md
Normal file
169
docs/milestones/M10/M10_summary.md
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
# M10 Summary — ProcessingRunner Skeleton
|
||||
|
||||
📌 Milestone Summary — M10: ProcessingRunner Skeleton
|
||||
==========================================================
|
||||
|
||||
**Project:** Serena
|
||||
**Phase:** Phase III — Runner & Service Boundary
|
||||
**Milestone:** M10 — ProcessingRunner skeleton
|
||||
**Timeframe:** 2026-03-11 → 2026-03-12
|
||||
**Status:** Closed
|
||||
**Baseline:** 2c6a2510 (M09 merge)
|
||||
**Refactor Posture:** Behavior-Preserving
|
||||
|
||||
---
|
||||
|
||||
## 1. Milestone Objective
|
||||
|
||||
M10 existed to introduce the **ProcessingRunner** abstraction as the unified execution entrypoint for Serena. The runner acts as a thin adapter around `process_images_inner`, creating the first true execution boundary between callers (UI/API/scripts) and the processing pipeline.
|
||||
|
||||
**What would remain unsafe or ungoverned if this refactor did not occur?** The pipeline would remain directly invoked with no abstraction layer. Phase III goals (CLI runner, queue runner, service mode, distributed execution) would be blocked. No single seam would exist for instrumentation, cancellation, or lifecycle control.
|
||||
|
||||
---
|
||||
|
||||
## 2. Scope Definition
|
||||
|
||||
### In Scope
|
||||
|
||||
* `modules/runtime/runner.py` — ProcessingRunner, ProcessingRequest
|
||||
* `modules/processing.py` — Delegate to runner inside process_images
|
||||
* `test/quality/test_processing_runner.py` — Contract test
|
||||
* `docs/serena.md` — Phase III roadmap update (M11–M15)
|
||||
* CI: Linter, Smoke Tests (PR), Quality Tests (post-merge)
|
||||
|
||||
### Out of Scope
|
||||
|
||||
* RuntimeContext in runner (deferred)
|
||||
* txt2img/img2img path through runner (M13)
|
||||
* API integration (M14)
|
||||
* Async, threading, multiprocessing
|
||||
|
||||
---
|
||||
|
||||
## 3. Refactor Classification
|
||||
|
||||
### Change Type
|
||||
|
||||
**Boundary refactor** — Introduced adapter layer (ProcessingRunner) between process_images and process_images_inner. Mechanical delegation; no logic change.
|
||||
|
||||
### Observability
|
||||
|
||||
* **API responses:** Unchanged
|
||||
* **CLI output:** Unchanged
|
||||
* **File formats / save paths:** Unchanged
|
||||
* **Model outputs:** Unchanged
|
||||
|
||||
---
|
||||
|
||||
## 4. Work Executed
|
||||
|
||||
* Created `modules/runtime/runner.py` with ProcessingRunner and ProcessingRequest
|
||||
* ProcessingRequest wraps `StableDiffusionProcessing`
|
||||
* ProcessingRunner.run(request) delegates to process_images_inner(request.processing)
|
||||
* Modified process_images to instantiate runner and delegate (import inside function to avoid circular import)
|
||||
* Added contract test with monkeypatch
|
||||
* Updated Phase III roadmap in serena.md (M11 lifecycle, M12 instrumentation, M13 txt2img, M14 API, M15 queue)
|
||||
* Fixed test_processing_runner collection error (PR #28): defer modules.processing import, add initialize fixture
|
||||
|
||||
---
|
||||
|
||||
## 5. Invariants & Compatibility
|
||||
|
||||
### Declared Invariants (must by default Not Change)
|
||||
|
||||
* CLI behavior unchanged
|
||||
* API responses unchanged
|
||||
* Processing results byte-identical
|
||||
* Runtime state unchanged
|
||||
* CI coverage ≥40%
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
* Backward compatibility preserved: Yes
|
||||
* Breaking changes introduced: No
|
||||
* Deprecations introduced: No
|
||||
|
||||
---
|
||||
|
||||
## 6. Validation & Evidence
|
||||
|
||||
| Evidence Type | Tool/Workflow | Result | Notes |
|
||||
|--------------|---------------|--------|-------|
|
||||
| Linter | ruff, eslint | ✓ | PR #27, 22987245316 (rerun); fix PR #28 |
|
||||
| Smoke Tests | pytest test/smoke | ✓ | PR #27, 22987245317 |
|
||||
| Quality Tests | pytest test/smoke test/quality | ✓ | Post-merge 22988627838 (after fix) |
|
||||
| Coverage | ≥40% gate | ✓ | Quality Tests |
|
||||
| verify_pinned_deps | scripts/ci/verify_pinned_deps.sh | ✓ | Quality Tests |
|
||||
| pip-audit | Informational | ⚠ | Deferred M27 |
|
||||
|
||||
---
|
||||
|
||||
## 7. CI / Automation Impact
|
||||
|
||||
* Workflows affected: None (unchanged)
|
||||
* Checks added/removed: None
|
||||
* Enforcement: Unchanged
|
||||
* Signal drift: None observed
|
||||
|
||||
---
|
||||
|
||||
## 8. Issues, Exceptions, and Guardrails
|
||||
|
||||
**Issue:** Quality Tests failed on initial merge (22988456117). `test_processing_runner.py` imported `modules.processing` at module level, triggering `sd_samplers.set_samplers()` before `shared.opts` was initialized.
|
||||
|
||||
**Resolution:** PR #28 — Defer import to inside test; add `initialize` fixture. Quality Tests passed on rerun (22988627838).
|
||||
|
||||
**Guardrail:** Quality tests that import heavy modules (processing, sd_samplers chain) must use `initialize` fixture and defer imports to test body.
|
||||
|
||||
---
|
||||
|
||||
## 9. Deferred Work
|
||||
|
||||
* pip-audit vulnerabilities: Pre-existing from M04; deferred to M27. Status unchanged.
|
||||
|
||||
---
|
||||
|
||||
## 10. Governance Outcomes
|
||||
|
||||
* First Phase III execution boundary established
|
||||
* Call graph: UI/API/scripts → process_images → ProcessingRunner → process_images_inner
|
||||
* Phase III roadmap corrected (M11 lifecycle before feature routing)
|
||||
|
||||
**What is now provably true that was not provably true before?** Serena has a single execution surface (ProcessingRunner) between callers and the pipeline. This enables future milestones: lifecycle (M11), instrumentation (M12), feature routing (M13–M14), queue/worker mode (M15).
|
||||
|
||||
---
|
||||
|
||||
## 11. Exit Criteria Evaluation
|
||||
|
||||
| Criterion | Status | Evidence |
|
||||
|-----------|--------|----------|
|
||||
| ProcessingRunner skeleton | Met | modules/runtime/runner.py |
|
||||
| process_images delegates through runner | Met | modules/processing.py |
|
||||
| Contract test | Met | test/quality/test_processing_runner.py |
|
||||
| CI fully green | Met | Linter, Smoke, Quality ✓ |
|
||||
| No behavior change | Met | Smoke + quality pass |
|
||||
| Milestone artifacts | Met | Plan, toolcalls, run1, run2, summary, audit |
|
||||
| Ledger updated | Met | docs/serena.md |
|
||||
| Tag created | Met | v0.0.10-m10 |
|
||||
|
||||
---
|
||||
|
||||
## 12. Final Verdict
|
||||
|
||||
Milestone objectives met. Refactor verified safe. Phase III execution boundary established. Proceed to M11 (Runner lifecycle surface).
|
||||
|
||||
---
|
||||
|
||||
## 13. Authorized Next Step
|
||||
|
||||
M11 — Runner lifecycle surface (prepare / execute / finalize). No additional constraints.
|
||||
|
||||
---
|
||||
|
||||
## 14. Canonical References
|
||||
|
||||
* PR #27: https://github.com/m-cahill/serena/pull/27
|
||||
* PR #28: https://github.com/m-cahill/serena/pull/28 (Quality test fix)
|
||||
* Merge commit: 0d11b587
|
||||
* Quality Tests: 22988627838
|
||||
* Linter: 22988627802
|
||||
|
|
@ -140,6 +140,7 @@ Core principles:
|
|||
| M07 | Opts snapshot introduction | Completed | m07-opts-snapshot | #22 | 8ea50d35 | Quality 22983583947 ✓ | 5.0 / 5 | 2026-03-12 |
|
||||
| M08 | Opts snapshot threading | Completed | m08-snapshot-threading | #24 | 710a0abd | Quality 22984445599 ✓ | 5.0 / 5 | 2026-03-12 |
|
||||
| M09 | Execution context introduction | Completed | m09-execution-context | #26 | 2c6a2510 | Quality 22986731960 ✓ | 5.0 / 5 | 2026-03-12 |
|
||||
| M10 | ProcessingRunner skeleton | Completed | m10-processing-runner | #27 (+ #28 fix) | 0d11b587 | Quality 22988627838 ✓ | 5.0 / 5 | 2026-03-12 |
|
||||
|
||||
**M05:** Introduced `temporary_opts()` context manager — first Phase II runtime seam. Isolates override_settings mutation from global `shared.opts`; preserves behavior (opts.set, setattr restore, k in opts.data). Model/VAE reload and token merging remain in process_images. Enables future opts snapshot injection (M07).
|
||||
|
||||
|
|
@ -151,6 +152,8 @@ Core principles:
|
|||
|
||||
**M09:** Introduced RuntimeContext in modules/runtime_context.py. Fifth Phase II runtime seam. Attached p.runtime_context in process_images_inner() after opts_snapshot (model, opts_snapshot, device, state, cmd_opts). Write-only in M09; no migration of shared.* reads yet. Completes Phase II — Runtime Seam Preparation. Enables Phase III ProcessingRunner.
|
||||
|
||||
**M10:** Introduced ProcessingRunner in modules/runtime/runner.py. First Phase III execution boundary. process_images delegates through runner; ProcessingRequest wraps StableDiffusionProcessing. Zero blast radius; all callers unchanged. Phase III roadmap updated (M11 lifecycle, M12 instrumentation, M13 txt2img, M14 API, M15 queue). Enables M11 Runner lifecycle surface.
|
||||
|
||||
---
|
||||
|
||||
## 5. Standing Invariants
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue