Private
Public Access
0
0
Files
manual_slop/conductor/tracks/fix_test_failures_20260624/metadata.json
T
ed 7a9261c425 conductor(test-fix): fix_test_failures_20260624 - make the 14 post-polish failures green
3 surgical fixes:
1. src/openai_schemas.py: add custom __init__ to NormalizedResponse
   that accepts BOTH the new nested usage: UsageStats AND the legacy
   flat usage_input_tokens=... kwargs. Fixes 12 of the 14 failing tests
   in one place (no test changes needed).
2. tests/test_auto_whitelist.py: use dataclasses.replace() instead of
   mutating a frozen Session via dict assignment.
3. tests/test_command_palette_sim.py: use a deterministic close callback
   (or push toggle twice as fallback) instead of the non-deterministic
   _toggle_command_palette callback.

4 phases, 4 tasks, 6 atomic commits expected. Verification: full
scripts/run_tests_batched.py is green; 4 audit gates remain clean;
no new failures introduced.
2026-06-24 10:48:04 -04:00

59 lines
2.4 KiB
JSON

{
"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"
}
]
}