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

This commit is contained in:
kmlee1 committed 2026-05-21 22:07:41 +09:00
commit 8f085a28d3
3220 files changed
+985495

No files matched your search

@@ -0,0 +1 @@
[{"id": 21838, "html_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/38#issuecomment-21838", "pull_request_url": "", "issue_url": "https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/38", "user": {"id": 28, "login": "Kyeongmin", "login_name": "", "source_id": 0, "full_name": "이경민", "email": "kyeongmin@noreply.localhost", "avatar_url": "https://gitea.hmac.kr/avatars/d883a35f9197b080b2a0c535c3f9357dcd5c7d40b3c42bd8f40218cb94609a8e", "html_url": "https://gitea.hmac.kr/Kyeongmin", "language": "", "is_admin": false, "last_login": "0001-01-01T00:00:00Z", "created": "2025-12-30T10:51:04+09:00", "restricted": false, "active": false, "prohibit_login": false, "location": "", "website": "", "description": "", "visibility": "public", "followers_count": 0, "following_count": 0, "starred_repos_count": 1, "username": "Kyeongmin"}, "original_author": "", "original_author_id": 0, "body": "[Claude #1] Stage 1 problem-review — IMP-29 frontend zone-level override bridge\n\n=== ROOT CAUSE ===\n\nIMP-05 (#5 closed `23d1b25`) shipped Step 9 `candidate_evidence[]` as the new IMP-05 L2 per-unit decision-chain evidence field, with `fallback_chain` left as a compat alias (commit `21476ae`, src/phase_z2_pipeline.py:2731-2748). Verified verbatim on disk fixture:\n\n- `Front/client/public/data/runs/mdx04_b3_v12/steps/step09_application_plan.json` → `data.units[0]` has `candidate_evidence` length=1, fields = `rank, template_id, frame_id, frame_number, confidence, label, v4_label, phase_z_status, catalog_registered, filtered_for_direct_execution, route_hint, decision, reason, capacity_fit` (13 + 1 optional). `fallback_chain == candidate_evidence` confirmed (identical alias by design).\n- Older fixture `mdx03_f29_fix_check` lacks the field (pre-IMP-05 generation) — frontend must tolerate absence.\n\nFrontend gap (verified — Front/client/src/services/designAgentApi.ts:506-534):\n\n```\nconst rawSource = (unit.v4_all_judgments?.length > 0)\n ? unit.v4_all_judgments\n : (unit.v4_candidates ?? []);\n```\n\n`loadRun` never reads `unit.candidate_evidence`. The Top-N card list is built solely from `v4_all_judgments` (Step 7-A axis, 0~32 entries) with `v4_candidates` legacy fallback. Decision/reason fields exposed by IMP-05 L2 (`decision`, `reason`, `phase_z_status`, `route_hint`, `filtered_for_direct_execution`) are not surfaced to `FrameCandidate` and consequently not shown in FramePanel.\n\nThe deterministic override path itself is already complete and out of IMP-29 scope:\n\n- Frontend: `userSelection.overrides.zone_frames[regionId]` → `overrides.frames[unit_id]` (Front/client/src/pages/Home.tsx:270-290, Front/client/src/services/designAgentApi.ts:265-294).\n- Vite middleware: `Front/vite.config.ts:310-311` forwards `overrides.frames` to backend.\n- Backend: `override_frames` parameter (src/phase_z2_pipeline.py:1493, 2756) → `frame_overrides_applied / frame_overrides_skipped` audit trace (src/phase_z2_pipeline.py:3249-3303, 4320-4321) → Step 7-A.\n\nSo IMP-29 = frontend **read-source switch** only. No new override mechanism, no backend change.\n\n=== SCOPE-LOCK ===\n\n**IN SCOPE (frontend-only, deterministic):**\n\n1. Add `CandidateEvidence` TypeScript interface to `Front/client/src/types/designAgent.ts` — verbatim mirror of IMP-05 L2 step09 schema (rank, template_id, frame_id, frame_number, confidence, label, v4_label, phase_z_status, catalog_registered, filtered_for_direct_execution, route_hint, decision, reason, optional capacity_fit). Treat strings as opaque (no enum redefinition — same rule as IMP-10 D-1 FilteredSectionReason).\n2. `loadRun` in `Front/client/src/services/designAgentApi.ts`: read `unit.candidate_evidence` as primary, `unit.fallback_chain` as compat alias, `[]` when both absent (pre-IMP-05 fixtures). Per-template lookup map by `template_id` to enrich existing FrameCandidate cards. Existing Top-N alternatives list continues to source from `v4_all_judgments` (full 32-frame universe) — candidate_evidence enriches **decision/reason fields per matching template**, does not replace the list. v4_all_judgments is necessary for non-chain alternatives the user may want to pick.\n3. Extend `FrameCandidate` (Front/client/src/types/designAgent.ts) with optional evidence fields surfaced from candidate_evidence: `decision`, `reason`, `routeHint`, `filteredForDirectExecution`, `phaseZStatus`. All optional — undefined when template not present in candidate_evidence chain.\n4. `FramePanel` (Front/client/src/components/FramePanel.tsx): render a small evidence badge when `decision` / `reason` present (e.g., \"selected: primary_selected\" or \"skipped: capacity_mismatch:overflow\"). Reuse existing badge layout — no new components.\n\n**OUT OF SCOPE (explicit hand-off):**\n\n- AI-assisted adaptation for `restructure` / `reject` routes → IMP-31.\n- First-render invariant when no direct candidate viable → IMP-30.\n- Backend schema changes — schema already shipped in IMP-05 L2.\n- ProductiLine truncated