Files
manual_slop/conductor/tracks/fix_remaining_tests_20260513/plan.md
T
ed 7ba94d4a42 fix(app_controller): lazy load rag_engine to avoid blocking startup
Before this change, app_controller imported rag_engine at module level which
pulled in chromadb (~0.45s). Now rag_engine is only imported when RAG is
actually enabled and needed. This improves startup time significantly.
2026-05-13 15:28:41 -04:00

2.6 KiB

Track: Fix Test Patches for ai_client_stub Integration

Context

After the refactor to use ai_client_stub as the module alias for app_controller, several tests fail because they use patch('src.ai_client.X') which doesn't properly reach the stub's module-level functions. This is a pre-existing architectural issue that needs fixing.

Root Cause Analysis

When tests use patch('src.ai_client.get_current_tier', return_value='Tier 3'):

  1. patch creates/overrides src.ai_client in the src package namespace
  2. But app_controller does from src import ai_client_stub as ai_client at module load time
  3. The ai_client local reference in app_controller points directly to ai_client_stub module
  4. Patch modifies src.ai_client (a different object), not src.ai_client_stub
  5. Result: Functions in ai_client_stub aren't patched

Solution Applied

Changed all patches from patch('src.ai_client.X') to patch('src.ai_client_stub.X') where the stub was the actual target.

Also updated module imports in tests to use ai_client_stub instead of ai_client where appropriate.

Tasks Completed

  1. Fix AIProxyClient - add _pending_lock threading.Lock to init
  2. Fix test_discussion_takes_gui.py - proper mocking for tab_item via imscope
  3. Fix test_on_tool_log_offloading - patch path to src.ai_client_stub.get_current_tier
  4. Fix test_redundant_calls_in_process_pending_gui_tasks - patch paths to src.ai_client_stub
  5. Fix test_gcli_path_updates_adapter - use ai_client_stub module reference
  6. Fix test_telemetry_data_updates_correctly - patch path to src.ai_client_stub.get_token_stats
  7. Fix test_gui_updates_on_event - patch path to src.ai_client_stub.get_token_stats
  8. Run batch tests to verify all fixes

Files Modified

  • src/ai_client_proxy.py - added _pending_lock
  • src/ai_client_stub.py - added module-level import for GeminiCliAdapter
  • tests/test_app_controller_offloading.py
  • tests/test_process_pending_gui_tasks.py
  • tests/test_gui_updates.py
  • tests/test_discussion_takes_gui.py

Test Results

All previously failing tests now pass:

  • test_ai_client_proxy_run.py::test_initial_state_variables
  • test_discussion_takes_gui.py (both tests)
  • test_on_tool_log_offloading
  • test_redundant_calls_in_process_pending_gui_tasks
  • test_gcli_path_updates_adapter
  • test_telemetry_data_updates_correctly
  • test_gui_updates_on_event

Checkpoints

  • 169fe520 - fix(ai_client_stub): add module-level import for GeminiCliAdapter
  • 12f16e9a - fix(ai_client_proxy): add _pending_lock threading.Lock
  • db69e3cb - fix(tests): update discussion takes GUI tests with proper mocking