untracked files on main: dceb101 feat(#63): IMP-34 R1 donor capacity measured bound (u1+u2)

This commit is contained in:
2026-05-21 22:07:41 +09:00
commit 8f085a28d3
3220 changed files with 985495 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
Executing unit: u2
[Claude #4] Stage 3 code-edit Round #2 — u2 verification (`continue_same` after u1 PASS)
## unit_executed
- **u2** — Axis 2 frontend type: `FrameCandidate.minHeightPx?: number` (additive optional field).
- u2 source diff was already applied in the original Round #1 implementation; this turn formally executes the unit step under the per-turn workflow (Codex #N closed u1 verified, `rewind_target: continue_same`, remaining = [u2, u3, u4, u5]).
- No new source edit required. Per-unit verification: type diff inspection + frontend typecheck delta.
## files_changed
- `Front/client/src/types/designAgent.ts` (already modified, +4 lines, no further edit this turn)
## diff_summary
Exact diff currently on disk (matches Stage 2 plan u2 estimate = 4 lines):
```diff
@@ -127,6 +127,10 @@ export interface FrameCandidate {
/** backend frame_contracts.yaml 에 catalog 등록 여부. false 면 사용자가 override
* 시도해도 Step 7-A 가 skip (render path 미연결). UI 회색 + "render path 미적용" 표시. */
catalogRegistered?: boolean;
+ /** IMP-11 D-2 — frame contract visual_hints.min_height_px (logical 1280x720 px).
+ * Source = templates/phase_z2/catalog/frame_contracts.yaml visual_hints.min_height_px.
+ * Undefined when contract unregistered or visual_hints absent (frontend tolerates undefined). */
+ minHeightPx?: number;
}
```
Properties:
- Additive only — no existing field rename / removal / type narrowing.
- Optional (`?:`) — legacy `v4_candidates` path that leaves it `undefined` is graceful (Stage 1 scope_lock axis_2 guardrail).
- Type comment documents source (catalog `visual_hints.min_height_px`) and undefined-tolerance, satisfying Stage 1 evidence chain.
- Pairs with u3 mapper (`min_height_px` → `minHeightPx`) and u5 consumer (zoneHeightPx comparison). u4 (`activeFrameId` lookup) does not depend on `minHeightPx` type, only on `FrameCandidate.id`.
## typecheck delta verification
Stage 2 plan u2 test command: `cd Front && npm run check` (tsc --noEmit, single npm root at `Front/package.json:11`).
**Baseline (git stash applied — pre-IMP-11 changes removed):**
```
client/src/components/BottomActions.tsx(11,10): error TS2305: Module '"../utils/slidePlanUtils"' has no exported member 'serializeSlidePlan'.
```
**With IMP-11 changes restored (u1+u2+u3+u4+u5 in place):**
```
client/src/components/BottomActions.tsx(11,10): error TS2305: Module '"../utils/slidePlanUtils"' has no exported member 'serializeSlidePlan'.
```
Identical single error in both cases. The `BottomActions.tsx` / `serializeSlidePlan` issue is a **pre-existing typecheck error on `main` HEAD `0fb168b`** (IMP-10 D-1 ramp), entirely outside IMP-11 scope (does not touch `designAgent.ts` or `FrameCandidate`). The u2 addition (`minHeightPx?: number`) introduces **zero new TS errors**.
Per Stage 1 guardrail "Additive only — no field rename, no removal, no semantic change to existing fields" and Stage 2 estimate_lines: 4 — both satisfied.
## remaining_units
- `u3` — frontend mapper: `min_height_px` → `minHeightPx` on `v4_all_judgments` path (`Front/client/src/services/designAgentApi.ts`, est. 3 lines).
- `u4` — SlideCanvas active-frame lookup: `activeFrameId = overrideFrameId ?? defaultFrameId`, `activeCandidate = region.frame_candidates.find(...)` (`Front/client/src/components/SlideCanvas.tsx`, est. 6 lines).
- `u5` — SlideCanvas visual hint: `zoneHeightPx = height * SLIDE_H` < `activeCandidate.minHeightPx` → red ring + 'min H Npx' badge (pendingLayout mode only, resize `minSize=0.05` unchanged) (`Front/client/src/components/SlideCanvas.tsx`, est. 20 lines).
## follow_up_issue_candidates
- **Pre-existing `BottomActions.tsx` typecheck error** — `serializeSlidePlan` not exported from `../utils/slidePlanUtils`. Out of IMP-11 scope, blocks `npm run check` clean exit. Suggest separate issue against IMP-10 D-1 ramp or whichever recent change removed/renamed the export. Not blocking IMP-11 verification because Stage 1 scope_lock confines IMP-11 to `designAgent.ts` / `designAgentApi.ts` / `SlideCanvas.tsx` / `phase_z2_pipeline.py`, and u2's contribution to the typecheck output is null.
## stage_3_continue_signal
- This is unit 2 of 5; u3/u4/u5 remain. Per consensus rule "Stage 3 (code-edit) unit progress: use continue_same per unit; FINAL_CONSENSUS: YES only when ALL implementation_units complete", this turn expects Codex verification with `rewind_target: continue_same` and `FINAL_CONSENSUS: NO`, advancing to u3.
No commit / no push — Stage 3 per-unit verification only.