ed
405a161bd9
test(baseline): add 3 Phase 9 redo invariant tests (UNCLEAR=0)
...
TIER-2 READ TIER1_REVIEW Phase 9 redo.
Phase 9 redo per TIER1_REVIEW:
- Heuristic E added (narrow + structured error carrier)
- L332, L355 refactored to return ErrorInfo (now BOUNDARY_CONVERSION)
- L394, L716, L723, L994 migrated to Result[T]
Audit: ai_client UNCLEAR 6 -> 0.
Total tests: 31 pass (was 28).
2026-06-20 12:15:15 -04:00
ed
84b7a6937d
test(baseline): add 3 Phase 9 invariant tests (ai_client Batch A complete)
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 9.
Phase 9 Batch A migrated 8 sites in src/ai_client.py:
- 2 _classify_*_error functions: bare except: -> except (ValueError, AttributeError)
- set_provider: except Exception -> except (OSError, ValueError)
- set_tool_preset: except Exception -> except (OSError, ValueError, AttributeError)
- set_bias_profile: except Exception -> except (OSError, ValueError, AttributeError)
- _execute_tool_calls_concurrently x2 (deepseek + minimax): bare except -> except (ValueError, TypeError)
- _reread_file_items: except Exception -> except (OSError, UnicodeDecodeError)
Total tests: 28 pass (4 Phase 1 + 3 Phase 2 + 3 Phase 3 + 3 Phase 4 + 3 Phase 5 +
3 Phase 6 + 3 Phase 7 + 3 Phase 8 + 3 Phase 9).
Note: sites 4-5 (set_tool_preset, set_bias_profile) became narrow+log patterns
(SILENT_SWALLOW violation per anti-sliming) — will be addressed in Phase 11.
2026-06-20 11:11:05 -04:00
ed
dec1780c24
test(baseline): add 3 Phase 8 invariant tests (mcp_client SS=0, MIG=0)
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 8.
Phase 8 = mcp_client silent-swallow + UNCLEAR + nested BC cleanup:
- 5 INTERNAL_SILENT_SWALLOW sites migrated (L171 _is_allowed via Path.is_relative_to;
L1661+L1666 stop via ErrorInfo accumulation + stdout drain)
- 3 nested BC sites migrated (_search_file, derive_code_path_result, trace)
- mcp_client now has ZERO migration-target sites
Total tests: 25 pass (4 Phase 1 + 3 Phase 2 + 3 Phase 3 + 3 Phase 4 + 3 Phase 5 +
3 Phase 6 + 3 Phase 7 + 3 Phase 8).
Audit: mcp_client BOUNDARY_CONVERSION: 5, INTERNAL_COMPLIANT: 43.
Migration-target: 0 (was 9 after Phase 7).
2026-06-20 10:56:27 -04:00
ed
44607f79c7
test(baseline): add 3 Phase 7 invariant tests (Batch E complete)
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 7.
Phase 7 Batch E migrated 8 sites (1 of 8 was done in 57b67780; 7 added here).
Total tests: 22 pass (4 Phase 1 + 3 Phase 2 + 3 Phase 3 + 3 Phase 4 + 3 Phase 5 +
3 Phase 6 + 3 Phase 7).
Audit: mcp_client BC 9 -> 3. Total MIG 56 -> 48 (8 sites migrated).
2026-06-20 10:14:37 -04:00
ed
b06fa638aa
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 5: refactor(mcp_client): migrate 8 Batch C sites to Result[T]
...
Phase 5 Batch C (8 INTERNAL_BROAD_CATCH sites in mcp_client.py):
Added _result variants in the Result Variants region:
- ts_cpp_get_definition_result
- ts_cpp_get_signature_result
- ts_cpp_update_definition_result
- py_get_skeleton_result (uses ASTParser)
- py_get_code_outline_result (uses outline_tool, NOT ASTParser)
- py_get_symbol_info_result (returns Result[tuple[str, int]])
- py_get_definition_result (uses ast.parse directly)
- py_update_definition_result (delegates to set_file_slice_result)
Each legacy string-returning function now delegates to its _result variant;
the try/except Exception is REMOVED from the legacy function.
The _result variants for py_* functions use ast.parse directly (matching
the existing implementation pattern). py_get_code_outline_result uses
outline_tool (not ASTParser as originally assumed).
Phase 4 test loosened (BC<=24, total MIG<=72) to allow Batch C overshoot.
Audit: mcp_client BC 24 -> 16. Total MIG 72 -> 64.
2026-06-20 09:09:35 -04:00
ed
6bb7f92275
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 4: refactor(mcp_client): migrate 8 Batch B sites to Result[T]
...
Phase 4 Batch B (8 INTERNAL_BROAD_CATCH sites in mcp_client.py):
Added _result variants inside the Result Variants region:
- get_git_diff_result (subprocess.run + CalledProcessError)
- ts_c_get_skeleton_result (ASTParser.get_skeleton)
- ts_c_get_code_outline_result (ASTParser.get_code_outline)
- ts_c_get_definition_result (ASTParser.get_definition)
- ts_c_get_signature_result (ASTParser.get_signature)
- ts_c_update_definition_result (ASTParser.update_definition)
- ts_cpp_get_skeleton_result (ASTParser.get_skeleton with lang=cpp)
- ts_cpp_get_code_outline_result (ASTParser.get_code_outline with lang=cpp)
Plus 5 internal _ast_* helpers (extract ASTParser boilerplate).
Each legacy string-returning function now delegates to its _result variant;
the try/except Exception is REMOVED from the legacy function.
Updated test_baseline_result.py:
- Phase 3 tests loosened (BC<=32, total MIG<=80)
- Phase 4 tests added (BC=24, total MIG=72, modules import cleanly)
Audit: mcp_client BC 32 -> 24. Total MIG 80 -> 72.
2026-06-20 08:41:32 -04:00
ed
faa6ec6e51
test(baseline): add 3 Phase 3 invariant tests (Batch A complete)
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 3.
Phase 3 tests assert:
1. mcp_client BC count 40 -> 32 (Batch A migrated 8 sites)
2. Total MIG 88 -> 80 (88 - 8 Batch A)
3. PHASE1_AUDIT_BASELINE.json still has 88 baseline (immutable)
Total: 10 tests pass (4 Phase 1 + 3 Phase 2 + 3 Phase 3).
2026-06-20 08:35:44 -04:00
ed
4d391fd42f
test(baseline): add 3 Phase 2 invariant tests (audit gate baseline)
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 2.
Phase 2 tests assert the BASELINE state:
1. test_phase2_baseline_audit_runs: audit --include-baseline --json exits 0
2. test_phase2_all_3_targets_have_migration_sites: each baseline file has >0 MIG
3. test_phase2_per_file_baseline_counts_match_inventory: counts = 46/33/9
Total: 7 tests pass (4 Phase 1 + 3 Phase 2).
2026-06-20 08:18:37 -04:00
ed
169a58d68a
conductor(gui_2): Phase 1 checkpoint — 3-file inventory + 4 invariant tests
...
TIER-2 READ conductor/code_styleguides/error_handling.md end-to-end before Phase 1.
Tasks:
- 1.1: Run audit --include-baseline --json > PHASE1_AUDIT_BASELINE.json
- 1.2: Walk audit + write 3 inventory docs (46+33+9 = 88 sites)
- 1.3: Add 4 Phase 1 invariant tests in tests/test_baseline_result.py
Per-file migration-target counts (from audit):
mcp_client.py: 46 (40 BC + 5 SS + 1 UNCLEAR)
ai_client.py: 33 (17 BC + 9 SS + 7 RETHROW)
rag_engine.py: 9 ( 5 BC + 1 SS + 3 RETHROW)
Total: 88 sites
Stay-as-is counts:
mcp_client.py: 9 (all INTERNAL_COMPLIANT)
ai_client.py: 26 (4 BOUNDARY_SDK + 4 INTERNAL_PROGRAMMER_RAISE + 17 COMPLIANT + 1 BOUNDARY_CONVERSION)
rag_engine.py: 6 (5 INTERNAL_PROGRAMMER_RAISE + 1 COMPLIANT)
2026-06-20 08:16:02 -04:00