diff --git a/CURRENT_CHECKPOINT.md b/CURRENT_CHECKPOINT.md index e2aabdc3..95d7b03f 100644 --- a/CURRENT_CHECKPOINT.md +++ b/CURRENT_CHECKPOINT.md @@ -14,9 +14,9 @@ ## Current State - Stage: `M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR` -- Active implementation step: `M34-A` (`IN_PROGRESS`) — M34 Knockout Review - View activation boundary. M33 Reward Choice View remains complete; no - gameplay, visual, Save or localization semantics are changing. +- Active implementation step: `M34-D` (`IN_PROGRESS`) — M34 Knockout Review + handoff and closure. M34-A/B/C are complete; no gameplay, visual, Save or + localization semantics are changing. The owner-requested target is a layered Passive View + Presenter/ViewData + Domain/Application Service architecture with an explicit Router/Context boundary. `entry_shell.gd` will be reduced incrementally, starting with the @@ -1575,7 +1575,21 @@ gate. Runtime product code changes. Result, Reward Choice, Recovery, Market and Battle Views remain outside this plan. - M34-A is complete at source `9bbdbb9`; M34-B is complete at source - `7a4c1ca` (product integration; docs recorded at d6208d8). The extracted UI-only + `7a4c1ca` (product integration; docs recorded at `d6208d8`). The extracted UI-only Knockout Review View preserves the accepted node tree, portrait/identity presentation and deferred `back`/`acknowledge` intent wiring. M34-C is now the sole `IN_PROGRESS` step; no later page migration is active. + +### 2026-08-25 - M34 Knockout Review View Verification Complete + +- M34-C passes at source `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef`. The + source-bound View contract, M28/M29/M30 controller and M12/DEV-5 route + regressions, DEV-5 candidate and full MVP first-cycle audit all pass with + exact-once markers, strict diagnostics `0`, parsed touch, owned cleanup and + normal `100%` frames. +- The four Knockout Review captures are byte-identical to the M28 baseline at + `760x360`/`zh_CN`, `844x390`/`en`, `1280x720`/`zh_CN` and + `1280x720`/`en`. Evidence is recorded in + `docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. +- M34-D is now the sole `IN_PROGRESS` step and is limited to final handoff + documentation and closure; no next page migration is activated here. diff --git a/docs/06_DEVELOPMENT_AND_REVIEW.md b/docs/06_DEVELOPMENT_AND_REVIEW.md index 38e9c4c9..a8e69b6d 100644 --- a/docs/06_DEVELOPMENT_AND_REVIEW.md +++ b/docs/06_DEVELOPMENT_AND_REVIEW.md @@ -3614,3 +3614,15 @@ they are not duplicated here. `IN_PROGRESS` step and may run only the focused contract, route regressions and source-bound capture equivalence checks. No Battle, Economy, Save, localization, packaging or 130% scope is opened. + +### 2026-08-25 - M34 Knockout Review View Verification Complete + +- M34-C passes at source `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef`. The + source-bound View contract, M28/M29/M30 controller and M12/DEV-5 route + regressions, DEV-5 candidate and full MVP first-cycle audit all pass with + exact-once markers, strict diagnostics `0`, parsed touch, owned cleanup and + normal `100%` frames. +- The four Knockout Review captures are byte-identical to the M28 baseline. + See `docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. +- M34-D is now the sole `IN_PROGRESS` step and is limited to final handoff + documentation and closure; no next page migration is activated here. diff --git a/docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md b/docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md index 802d4a88..ea49c998 100644 --- a/docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md +++ b/docs/plans/M34_KNOCKOUT_REVIEW_PAGE_VIEW_REFACTOR.md @@ -83,7 +83,7 @@ EntryShell / composition root - Keep controller, BattleService, receipt and continuation semantics unchanged. - Complete at source `7a4c1ca`; the source-bound documentation update is recorded at `d6208d8`. -### M34-C — Focused verification (`IN_PROGRESS`) +### M34-C — Focused verification (`COMPLETE`) - Add `ABG_M34_KNOCKOUT_REVIEW_VIEW_CONTRACT_OK`. - Run the focused Knockout controller/View and M12/M28/M29/M30 route @@ -92,8 +92,10 @@ EntryShell / composition root test-attempt runner with strict diagnostics and exact-once markers. - Compare normal Knockout Review captures with the M28 baseline at the four required fixtures/locales. +- Complete at source `4c7a0ac`; evidence is recorded in + `docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md`. -### M34-D — Handoff (`PENDING`) +### M34-D — Handoff (`IN_PROGRESS`) - Record source-bound evidence and visual equivalence in a runtime audit. - Close only Knockout Review; do not claim Battle Result, Risk, Market or live diff --git a/docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md b/docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md new file mode 100644 index 00000000..0f9020e9 --- /dev/null +++ b/docs/runtime/M34_KNOCKOUT_REVIEW_PAGE_VIEW_VISUAL_AUDIT.md @@ -0,0 +1,62 @@ +# M34 Knockout Review Page View — Source-Bound Audit + +## Scope + +OUT-002 Knockout Review was extracted from `entry_shell.gd` into the UI-only +`ABGKnockoutReviewPageView`. EntryShell remains the composition root and +translates only deferred `back` and `acknowledge` intents. The existing +`ABGKnockoutReviewPageController` remains the authority for copied settled +facts, battle-local knockout identity, settlement receipt and the +Reward-Choice/Recovery acknowledgement target. + +The migration preserves the accepted M28 page. It does not alter Battle, +settlement, Reward, Recovery, Economy, Save, localization or input semantics. +Normal `100%` landscape is the visual scope; 130% text scale is not a gate. + +## Source-bound evidence + +| Check | Attempt / source | Result | +| --- | --- | --- | +| View contract | `m34-knockout-review-view-contract-source-bound-v3` / `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef` | PASS; `ABG_M34_KNOCKOUT_REVIEW_VIEW_CONTRACT_OK` exactly once; strict diagnostics 0; owned workspace/process cleanup | +| Controller and route regressions | `m34-knockout-review-regression-source-bound` / `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef` | PASS; M28 controller, M29 controller, M30 controller, M12 domain/runtime and DEV-5 Result/Recovery markers exactly once; strict diagnostics 0 | +| DEV-5 candidate | `m34-dev5-candidate` / `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef` | PASS; `ABG_DEV5_CANDIDATE_SUITE_OK` exactly once; 24 normal frames; parsed touch; strict diagnostics 0; archive SHA-256 `7fd99ad582b3ee7661b01ba3ef467e56ddea85ae6b66dd876de7ab5df50b8768` | +| MVP first-cycle audit | `m34-mvp-audit` / `4c7a0ac55b2825ccf3d24ebac6ebb9e33e1267ef` | PASS; `ABG_MVP_FIRST_CYCLE_AUDIT_OK` exactly once; 128 normal `100%` frames; `zh_CN`/`en`; `760x360`, `844x390`, `1280x720`; strict diagnostics 0; parsed touch/restart; archive SHA-256 `827d54d92da832991155fa9991d2261c385f39a28dd9e3320b76fb113c6fe0eb` | + +All formal attempts used `tools/run_test_attempt.py`, owned source/HOME/cache/ +TMP/browser roots, and removed their complete process groups and workspaces. + +## Visual equivalence + +The four M34 Knockout Review captures from the source-bound MVP archive were +compared with the M28 baseline archive +`m28-mvp-audit/20260825T110840Z-18171`: + +- `760x360`, `zh_CN` +- `844x390`, `en` +- `1280x720`, `zh_CN` +- `1280x720`, `en` + +Each comparison reported `same_bytes=true`, `bbox=None` and zero changed +pixels. This is a structural equivalence check, not a replacement for Owner +visual acceptance. + +## Boundary audit + +- `ABGKnockoutReviewPageView` imports only the passive View base and the + UI-only `InitialCompanyArt` portrait mapping. +- The View owns Godot nodes, layout, focus, local localization and copied + identity formatting; it emits only `back` and `acknowledge` intents. +- It has no BattleService, Save, compatibility-facade, + RuntimeContentRegistry, `current_screen` or EntryShell-global dependency. +- EntryShell enriches only changed equipment IDs with presentation-ready names; + no content lookup occurs inside the View. +- EntryShell uses a deferred intent connection, so page replacement does not + free a locked Godot node. +- BattleService, controller snapshots, settlement receipts and continuation + routes remain unchanged. + +## Remaining scope + +M34 closes only Knockout Review. Battle Result, Risk, Market, Guild, +preparation and live Battle Views remain on their existing paths until separate +plans are activated.