kyeongmin
5484077a53
Multi-MDX Regression (IMP-91) / multi-mdx-regression (push) Failing after 21s
feat(#94): IMP-94 u1~u6 Layer A region/content marker injection (stamper + render_slide chain + 4 zones_data.append placement_markers + 35 parity tests)
u1 (src/region_marker_stamper.py): deterministic root-div stamper injecting data-region-id + data-content-unit-id onto each family-partial root div anchored by data-template-id. Idempotent (re-stamp = no-op), AI=0, additive only, empty/None markers no-op, F9/F29 frame-slot axis preserved.
u2 (src/phase_z2_pipeline.py render_slide chain): _stamp_region_markers chained after IMP-56 u9 _stamp_zone_html. Marker source = zone.get("placement_markers") or [] — Codex #16 P4b crash risk closed via the or-[] call-site fallback.
u3 (_derive_placement_markers helper): projects PlacementPlan.slot_assignments[] → list[dict] carrying region_id + content_unit_id + frame_slot_id (frame_slot_id reserved for #96 89-d). Live B4 path emits at primary zones_data.append.
u4 (3 non-live zones_data.append defaults): placement_markers: [] at IMP-30 u4 empty-shell, IMP-86 u1 adapter_needed, post-loop unrenderable plan-record paths — uniform zone shape, stamper no-op surface.
u5/u6 (tests/test_phase_z2_imp94_marker_parity.py): 33 hard tests + 2 cross-axis skip-if-anchor-absent (Emergency P4/P4b future axis). Coverage: 13 family-partial root anchors, F29 + F9 frame-slot preservation, idempotence, live render_slide stamping, P4b empty-marker no-crash, MDX 01 strip-attr parity, trace-to-DOM parity.
Disjoint from #96 (data-frame-slot-id) by attribute name. SPEC anchor: docs/architecture/PHASE-Z-CONTENT-OBJECT-SUBZONE-SPEC.md §6.4 + §7.2 (Layer A read targets + render-path activation).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 08:15:08 +09:00
..
2026-05-24 18:53:20 +09:00
2026-05-21 14:56:56 +09:00
2026-05-08 09:47:58 +09:00
2026-05-23 07:36:57 +09:00
2026-05-26 14:15:02 +09:00
2026-05-23 22:07:25 +09:00
2026-05-25 03:26:03 +09:00
2026-05-24 07:01:58 +09:00
2026-05-25 15:49:23 +09:00
2026-03-24 17:25:47 +09:00
2026-05-19 20:23:36 +09:00
2026-05-23 16:56:38 +09:00
2026-05-23 16:56:38 +09:00
2026-05-23 16:56:38 +09:00
2026-05-23 16:56:38 +09:00
2026-05-20 19:31:26 +09:00
2026-05-21 22:14:05 +09:00
2026-05-21 19:39:16 +09:00
2026-05-18 06:25:05 +09:00
2026-05-22 21:54:38 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 00:19:10 +09:00
2026-05-23 22:07:25 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 00:19:10 +09:00
2026-05-22 02:49:43 +09:00
2026-05-20 20:44:19 +09:00
2026-05-23 16:56:38 +09:00
2026-05-23 16:56:38 +09:00
2026-05-25 03:26:03 +09:00
2026-05-23 22:07:25 +09:00
2026-05-25 03:26:03 +09:00
2026-05-25 03:26:03 +09:00
2026-05-22 05:00:07 +09:00
2026-05-26 14:15:02 +09:00
2026-05-23 20:40:54 +09:00
2026-05-27 08:15:08 +09:00
2026-05-23 16:56:38 +09:00
2026-05-23 16:56:38 +09:00
2026-05-21 22:14:05 +09:00
2026-05-22 05:00:07 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 22:44:27 +09:00
2026-05-24 22:44:27 +09:00
2026-05-14 07:41:12 +09:00
2026-05-25 03:26:03 +09:00
2026-05-17 22:29:17 +09:00
2026-05-26 06:12:13 +09:00
2026-05-16 02:28:46 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-22 00:19:10 +09:00
2026-05-24 02:18:17 +09:00
2026-05-24 17:12:07 +09:00
2026-05-25 03:26:03 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-26 06:12:13 +09:00
2026-05-21 22:14:05 +09:00