docs(M08): closeout — run2, audit, summary, ledger, M09 seed
Made-with: Cursorpull/17332/head
parent
710a0abd33
commit
fd363db66a
|
|
@ -0,0 +1,71 @@
|
||||||
|
# M08 Audit — Opts Snapshot Threading
|
||||||
|
|
||||||
|
**Milestone:** M08
|
||||||
|
**Title:** Opts snapshot threading
|
||||||
|
**Branch:** m08-snapshot-threading
|
||||||
|
**Audit date:** 2026-03-12
|
||||||
|
**Mode:** DELTA AUDIT
|
||||||
|
**Range:** 8ea50d35 (M07) → 710a0abd (M08 merge)
|
||||||
|
**CI Status:** Green (Quality 22984445599)
|
||||||
|
**Refactor Posture:** Behavior-Preserving
|
||||||
|
**Audit Verdict:** 🟢 Milestone objectives met. Runtime now reads from p.opts_snapshot for save-related settings. Proceed to M09.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Executive Summary
|
||||||
|
|
||||||
|
M08 successfully threaded p.opts_snapshot into process_images_inner for safe read-only option access, establishing the fourth Phase II runtime seam.
|
||||||
|
|
||||||
|
**Wins:**
|
||||||
|
* Migrated 12 save-related opts reads from shared.opts to p.opts_snapshot
|
||||||
|
* Limited blast radius to process_images_inner only; save_samples(), sample_hr_pass(), metadata logic unchanged
|
||||||
|
* Same inputs → same outputs; no behavior drift
|
||||||
|
* txt2img and img2img smoke tests exercise the critical path
|
||||||
|
* Quality Tests pass; coverage ≥40%; verify_pinned_deps ✓
|
||||||
|
|
||||||
|
**Risks:** None identified.
|
||||||
|
|
||||||
|
**Next action:** Proceed to M09 (execution context seam).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. CI Evidence
|
||||||
|
|
||||||
|
| Check | Result |
|
||||||
|
|-------|--------|
|
||||||
|
| Smoke Tests (PR #24) | 22984306614 ✓ |
|
||||||
|
| Linter (PR #24) | 22984306617 ✓ |
|
||||||
|
| Quality Tests (post-merge) | 22984445599 ✓ |
|
||||||
|
| Coverage | ≥40% gate satisfied |
|
||||||
|
| verify_pinned_deps | ✓ Passed |
|
||||||
|
| pip-audit | Informational (M27) |
|
||||||
|
| Artifacts | coverage.xml ✓, ci_environment ✓ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Delta Map & Blast Radius
|
||||||
|
|
||||||
|
| Changed | Impact |
|
||||||
|
|---------|--------|
|
||||||
|
| modules/processing.py | Modified — p.opts_snapshot for save-related reads in process_images_inner |
|
||||||
|
| docs/milestones/M08/* | Plan, toolcalls, run reports |
|
||||||
|
|
||||||
|
**Blast radius:** process_images_inner image/grid saving logic only. No API/CLI/schema changes. Extensions continue reading shared.opts; save_samples() and sample_hr_pass() unchanged per M08 scope.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Category Scores
|
||||||
|
|
||||||
|
| Category | Score | Notes |
|
||||||
|
|----------|-------|-------|
|
||||||
|
| Refactor discipline | 5 | Scope respected; no creep |
|
||||||
|
| Behavior preservation | 5 | No runtime drift; smoke + quality pass |
|
||||||
|
| Test coverage | 5 | Existing smoke tests cover critical path |
|
||||||
|
| CI integrity | 5 | All gates green |
|
||||||
|
| **Overall** | **5.0** | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Verdict
|
||||||
|
|
||||||
|
Milestone objectives met. Runtime begins reading from p.opts_snapshot for save-related config. Fourth Phase II seam; enables M09 execution context and ProcessingRunner architecture (M10+).
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
# M08 CI Run 2 — Post-Merge Quality Verification
|
||||||
|
|
||||||
|
**Date:** 2026-03-12
|
||||||
|
**Branch:** main (post-merge)
|
||||||
|
**Merge commit:** 710a0abd
|
||||||
|
**Trigger:** push (Merge PR #24)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Workflow Identity
|
||||||
|
|
||||||
|
| Workflow | Run ID | Trigger | Branch | Commit | Status |
|
||||||
|
|----------|--------|---------|--------|--------|--------|
|
||||||
|
| Quality Tests | **22984445599** | push | main | 710a0abd | ✓ success |
|
||||||
|
| Linter | 22984445598 | push | main | 710a0abd | ✓ success |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Quality Tests (22984445599)
|
||||||
|
|
||||||
|
| Job / Step | Required? | Purpose | Pass/Fail |
|
||||||
|
|------------|-----------|---------|-----------|
|
||||||
|
| Verify repository | Yes | Guardrail: m-cahill/serena only | ✓ |
|
||||||
|
| Verify ref | Yes | Guardrail: push to main | ✓ |
|
||||||
|
| Checkout Code | Yes | Fetch merge commit | ✓ |
|
||||||
|
| Set up Python 3.10 | Yes | Runtime | ✓ |
|
||||||
|
| Cache models | Yes | Deterministic model path | ✓ |
|
||||||
|
| Install dependencies | Yes | torch, CLIP, requirements_versions | ✓ |
|
||||||
|
| pip-audit | Informational | Dependency vuln scan | ⚠ (deferred M27) |
|
||||||
|
| verify_pinned_deps | Yes | Pinned deps enforcement | ✓ |
|
||||||
|
| Create stub repositories | Yes | CI fake inference | ✓ |
|
||||||
|
| Setup environment | Yes | launch.py --exit | ✓ |
|
||||||
|
| Start test server | Yes | Live server for API tests | ✓ |
|
||||||
|
| **Run quality tests** | **Yes** | **pytest test** (coverage ≥40%) | **✓** |
|
||||||
|
| Kill test server | Yes | Cleanup | ✓ |
|
||||||
|
| Show coverage | Yes | --fail-under=40 | ✓ |
|
||||||
|
| Upload artifacts | No (always) | coverage.xml, htmlcov, output | ✓ |
|
||||||
|
|
||||||
|
**Duration:** 3m25s
|
||||||
|
|
||||||
|
**Annotation:** pip-audit found vulnerabilities. Remediation deferred to M27. See M04_audit.md.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. CI Confirmation
|
||||||
|
|
||||||
|
| Check | Status |
|
||||||
|
|-------|--------|
|
||||||
|
| Quality Tests | ✓ |
|
||||||
|
| Coverage | ≥ 40% |
|
||||||
|
| pip-audit | Informational (M27) |
|
||||||
|
| verify_pinned_deps | ✓ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Verdict
|
||||||
|
|
||||||
|
**CI Status:** Green
|
||||||
|
|
||||||
|
All gates passed. M08 closeout verified. Ready for audit and summary generation.
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
# M08 Summary — Opts Snapshot Threading
|
||||||
|
|
||||||
|
**Project:** Serena
|
||||||
|
**Phase:** Phase II — Runtime Seam Preparation
|
||||||
|
**Milestone:** M08 — Opts snapshot threading
|
||||||
|
**Status:** Closed
|
||||||
|
**Branch:** m08-snapshot-threading
|
||||||
|
**PR:** #24
|
||||||
|
**Commit:** 710a0abd (merge)
|
||||||
|
**Quality Run:** 22984445599 ✓
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Accomplished
|
||||||
|
|
||||||
|
| Item | Status |
|
||||||
|
|------|--------|
|
||||||
|
| Migrated save-related opts reads to p.opts_snapshot in process_images_inner | ✓ |
|
||||||
|
| save_images_before_face_restoration, save_images_before_color_correction | ✓ |
|
||||||
|
| samples_format, return_mask, save_mask, return_mask_composite, save_mask_composite | ✓ |
|
||||||
|
| grid_only_if_multiple, return_grid, grid_save, grid_format, grid_extended_filename | ✓ |
|
||||||
|
| Left save_samples(), sample_hr_pass(), create_infotext(), metadata on shared.opts | ✓ |
|
||||||
|
| Preserved behavior (same inputs → same outputs) | ✓ |
|
||||||
|
| Extension compatibility preserved | ✓ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## CI Layout After M08
|
||||||
|
|
||||||
|
| Workflow | Trigger | Coverage | Security |
|
||||||
|
|----------|---------|----------|----------|
|
||||||
|
| Smoke Tests | pull_request (main) | No gate | None |
|
||||||
|
| Linter | pull_request | — | — |
|
||||||
|
| Quality Tests | push to main | ≥40% | pip-audit (informational) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Invariants Preserved
|
||||||
|
|
||||||
|
- Generation behavior unchanged
|
||||||
|
- File output behavior (save paths, naming) unchanged
|
||||||
|
- Extension compatibility (shared.opts still exists)
|
||||||
|
- API compatibility (txt2img/img2img)
|
||||||
|
- CLI behavior unchanged
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Blast Radius
|
||||||
|
|
||||||
|
| File | Change |
|
||||||
|
|------|--------|
|
||||||
|
| modules/processing.py | Modified — p.opts_snapshot for save-related reads |
|
||||||
|
| docs/milestones/M08/* | Plan, toolcalls, run reports |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Refactor Result
|
||||||
|
|
||||||
|
First deterministic runtime boundary: generation pipeline now reads save-related config from p.opts_snapshot instead of shared.opts within process_images_inner. Fourth Phase II runtime seam; enables M09 execution context and ProcessingRunner architecture (M10+).
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# M09 Plan — Execution Context Seam
|
||||||
|
|
||||||
|
(To be populated.)
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
# M09 Toolcalls — Execution Context Seam
|
||||||
|
|
||||||
|
Implementation toolcalls for Cursor execution.
|
||||||
|
|
||||||
|
(To be filled during milestone execution.)
|
||||||
|
|
@ -137,6 +137,7 @@ Core principles:
|
||||||
| M05 | Override isolation / temporary opts seam | Completed | m05-override-isolation | #18 (+ #19 fix) | ae161cbb | Quality 22888808682 ✓ | 5.0 / 5 | 2026-03-10 |
|
| M05 | Override isolation / temporary opts seam | Completed | m05-override-isolation | #18 (+ #19 fix) | ae161cbb | Quality 22888808682 ✓ | 5.0 / 5 | 2026-03-10 |
|
||||||
| M06 | Prompt/seed prep extraction | Completed | m06-prompt-seed-prep | #20 | 6744152a | Quality 22890285319 ✓ | 5.0 / 5 | 2026-03-10 |
|
| M06 | Prompt/seed prep extraction | Completed | m06-prompt-seed-prep | #20 | 6744152a | Quality 22890285319 ✓ | 5.0 / 5 | 2026-03-10 |
|
||||||
| M07 | Opts snapshot introduction | Completed | m07-opts-snapshot | #22 | 8ea50d35 | Quality 22983583947 ✓ | 5.0 / 5 | 2026-03-12 |
|
| 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 |
|
||||||
|
|
||||||
**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).
|
**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).
|
||||||
|
|
||||||
|
|
@ -144,6 +145,8 @@ Core principles:
|
||||||
|
|
||||||
**M07:** Introduced `create_opts_snapshot(opts)` in `modules/opts_snapshot.py`. Third Phase II runtime seam. Captures deterministic snapshot of opts.data in process_images_inner after prepare_prompt_seed_state; stored on p.opts_snapshot. Write-only in M07; enables M08 snapshot threading.
|
**M07:** Introduced `create_opts_snapshot(opts)` in `modules/opts_snapshot.py`. Third Phase II runtime seam. Captures deterministic snapshot of opts.data in process_images_inner after prepare_prompt_seed_state; stored on p.opts_snapshot. Write-only in M07; enables M08 snapshot threading.
|
||||||
|
|
||||||
|
**M08:** Threaded p.opts_snapshot into process_images_inner for save-related reads. Fourth Phase II runtime seam. Migrated 12 opts (save_images_before_face_restoration, samples_format, grid_save, etc.) from shared.opts to p.opts_snapshot. save_samples(), sample_hr_pass(), metadata unchanged. Enables M09 execution context.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Standing Invariants
|
## 5. Standing Invariants
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue