This commit is contained in:
commit
8f085a28d3
3220 files changed
+985495
No files matched your search
@@ -0,0 +1 @@
|
||||
{"id":22905,"html_url":"https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/76#issuecomment-22905","pull_request_url":"","issue_url":"https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2/issues/76","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 #7] Stage 3 code-edit — IMP-47B u3\n\nExecuting unit: u3\n\n■ unit_executed\n- id: u3\n- summary: Mark override-selected reject units provisional\n\n■ files_changed\n- src/phase_z2_pipeline.py\n- tests/test_imp47b_override_provisional.py\n\n■ diff_summary\n- src/phase_z2_pipeline.py\n - Extracted the per-unit override application logic at L3648-3662 into\n a new module-level helper `_apply_frame_override_to_unit(unit, new_tid, v4)`\n placed right after `lookup_v4_candidates` (so the helper sits next to\n its dependency `lookup_v4_all_judgments`). Returns the meta_source\n string for the override book-keeping. Three probe layers, in order:\n 1. `unit.v4_candidates` exact match (non-reject; existing path) →\n copies frame_id / frame_number / confidence / label and returns\n `\"v4_candidates\"`.\n 2. **(new)** Full 32 V4 judgments probe via `lookup_v4_all_judgments`\n on the unit's primary `source_section_ids[0]`. When the override\n target template_id matches a `label=\"reject\"` judgment, copy the\n frame metadata, set `unit.label = \"reject\"` + `unit.provisional\n = True`, and return `\"v4_reject_judgment_provisional\"`. This is\n the IMP-47B u3 promotion that lets Step 12 (u4) admit the user-\n picked reject frame to the AI repair path — `_imp05_route_hint\n (\"reject\") = \"ai_adaptation_required\"` after u1 + `step12.py`\n provisional gate after u2.\n 3. Raw fall-through. Updates only `frame_template_id`, returns\n `\"raw_template_id_only\"` (existing behaviour for unknown\n templates).\n - Replaced the inline `match = None; for cand in ...` block inside the\n `if override_frames:` loop at L3648-3662 with a single call to the\n helper. Book-keeping (`frame_overrides_applied`, `print`) and the\n upstream catalog-presence guard / no-op skip / `frame_overrides_skipped`\n branches are untouched. Net runtime behavior for non-reject overrides\n is byte-identical (same field assignments, same return string\n `\"v4_candidates\"` / `\"raw_template_id_only\"`).\n - Augmented the Step 7-A comment block at L3614-3621 with an IMP-47B u3\n note explaining the reject-as-provisional promotion and the AI\n isolation contract guarantee (frame visual / contract untouched,\n auto frame swap forbidden — `[[feedback_ai_isolation_contract]]`).\n\n- tests/test_imp47b_override_provisional.py (new file)\n - Synthetic `_StubCandidate` (V4Match-like surface) + `_StubUnit`\n (CompositionUnit-like surface) — duck-typed to the helper's\n attribute reads only. Convention mirrors\n `tests/test_phase_z2_imp30_first_render.py` (MOCK_ prefix; no real\n catalog / V4 yaml dependency).\n - `_v4_with_reject(section_id, target_tid)` fixture builds a minimal\n V4 dict (mdx_sections → judgments_full32) with two judgments: a\n use_as_is decoy + the reject target. Two entries so the assertion\n proves the helper picks the matching reject specifically (not just\n \"any reject\").\n - 3 tests:\n - `test_override_to_reject_judgment_marks_unit_provisional` — user\n picks the reject frame → meta=`\"v4_reject_judgment_provisional\"`,\n frame_id / frame_number / confidence sourced from the reject\n judgment, label=\"reject\", provisional=True.\n - `test_override_to_v4_candidate_keeps_non_provisional` — user picks\n a non-reject candidate → meta=`\"v4_candidates\"`, label copied\n from candidate (light_edit), provisional stays False (normal-path\n AI=0 contract intact for this unit). V4 dict is empty so the\n full-judgment probe MUST NOT be reached.\n - `test_override_unknown_template_falls_through_without_provisional`\n — unknown template_id (not in v4_candidates, not in\n judgments_full32) → meta=`\"raw_template_id_only\"`, only\n frame_template_id updated; frame_id / label unchanged; provisional\n remains False.\n\n■ verification (scope-qualified)\n- `pytest -q tests/test_imp47b_override_provisional.py tests/test_phase_z2_section_assignmeLine truncated
|
||||
Reference in new issue
Block a user