kyeongmin
a79bd8bc43
feat(IMP-11): D-2 — frame min_height_px hint (backend → UI)
Step 9 v4_all_judgments[] now exposes per-candidate min_height_px from
catalog frame_contracts.visual_hints.min_height_px (None when contract
unregistered). SlideCanvas pendingLayout zones render a red ring + 'min H
Npx' badge when zone height falls below the active frame's threshold.
Visual hint only; resize clamp (minSize=0.05) unchanged.
5 axes (single commit per Stage 5 plan):
- u1 backend: src/phase_z2_pipeline.py — Step 9 builder adds min_height_px
via single get_contract(c.template_id) lookup; reuses _contract for
catalog_registered (no double-lookup).
- u2 type: Front/client/src/types/designAgent.ts — FrameCandidate gains
optional minHeightPx?: number.
- u3 mapper: Front/client/src/services/designAgentApi.ts — maps snake-case
min_height_px → camelCase minHeightPx on v4_all_judgments path;
v4_candidates fallback remains undefined (graceful).
- u4 active-frame lookup: Front/client/src/components/SlideCanvas.tsx —
activeFrameId = overrideFrameId ?? defaultFrameId; activeCandidate via
region.frame_candidates.find.
- u5 hint render: Front/client/src/components/SlideCanvas.tsx —
zoneHeightPx = height * SLIDE_H (logical px, no double-apply); compare
against activeCandidate.minHeightPx in pendingLayout mode only; red
border + badge when below.
Tests: 5/5 pass in tests/test_phase_z2_step9_v4_all_judgments_min_height.py
(source-string + catalog-shape guards + None propagation, registered and
unregistered template_ids).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 22:29:17 +09:00
..
2026-05-08 09:47:58 +09:00
2026-05-17 18:51:23 +09:00
2026-03-24 17:25:47 +09:00
2026-05-13 23:06:39 +09:00
2026-05-14 07:41:12 +09:00
2026-05-17 22:29:17 +09:00
2026-05-16 02:28:46 +09:00
2026-05-14 00:24:42 +09:00