{ "track_id": "fix_test_failures_20260624", "name": "Fix 14 Test Failures (post-polish merge)", "created_date": "2026-06-24", "branch": "master", "depends_on": ["code_path_audit_polish_20260622"], "blocks": [], "scope": { "new_files": [], "modified_files": [ "src/openai_schemas.py", "tests/test_auto_whitelist.py", "tests/test_command_palette_sim.py" ], "deleted_files": [] }, "estimated_effort": { "method": "scope (per workflow.md §Tier 1 Track Initialization Rules). NO day estimates.", "phase_1": "1 task: add custom __init__ to NormalizedResponse (fixes 12 tests)", "phase_2": "1 task: update test_auto_whitelist_keywords to use dataclasses.replace", "phase_3": "1 task: update test_palette_starts_hidden to use deterministic close", "phase_4": "1 task: 6 verification criteria + TRACK_COMPLETION + state + tracks.md" }, "verification_criteria": [ "VC1: 12 NormalizedResponse tests pass", "VC2: test_auto_whitelist_keywords passes", "VC3: test_palette_starts_hidden passes", "VC4: full batched test suite is green (all 11 tiers PASS)", "VC5: 4 audit gates remain clean", "VC6: no new test failures introduced" ], "known_issues": [], "deferred_to_followup_tracks": [], "regressions_and_pre_existing_failures": [], "pre_existing_failures_remaining": [], "risk_register": [ { "id": "risk-1", "description": "Custom __init__ with init=False breaks other NormalizedResponse callers passing positional args", "likelihood": "low", "impact": "Phase 1 Task 1.1 may break production code at src/ai_client.py:908 or the 12 tests", "mitigation": "All 12 tests + 1 production site use kwargs; verify with ast.parse + 12-test run" }, { "id": "risk-2", "description": "dataclasses.replace for Session may not work if Session is slotted or has __slots__", "likelihood": "low", "impact": "Phase 2 Task 2.1 fails", "mitigation": "Session is a regular @dataclass(frozen=True); replace() works on regular dataclasses" }, { "id": "risk-3", "description": "A deterministic close callback does not exist in _predefined_callbacks", "likelihood": "medium", "impact": "Phase 3 Task 3.1 needs fallback (push toggle twice)", "mitigation": "Plan includes the toggle-twice fallback in the Task 3.1 WHAT description" } ] }