Files
local-deep-research/scripts
LearningCircuit 9988f70318 refactor: remove fallback LLM (FakeListChatModel) from all providers (#2717)
* cleanup: remove @pytest.mark.requires_llm decorators and fallback LLM doc references

Remove the `@pytest.mark.requires_llm` decorator from all test files since
the fallback LLM infrastructure is being removed. Update docs to remove
references to `LDR_TESTING_USE_FALLBACK_LLM` and `LDR_USE_FALLBACK_LLM`
environment variables from troubleshooting and CI configuration tables.

* test: remove fallback LLM references from test files

Remove all fallback-related test code: TestGetFallbackModel classes,
FakeListChatModel assertions, check_fallback_llm parameters, and
LDR_USE_FALLBACK_LLM skipif markers. Replace fallback-returning tests
with ValueError-expecting tests for missing API keys and unavailable
providers.

* cleanup: remove remaining use_fallback_llm references from source and tests

Remove use_fallback_llm() imports and calls from db_utils.py and
rate_limiting/tracker.py. Clean up test files that referenced
check_fallback_llm, get_llm_setting_from_snapshot, and
LDR_USE_FALLBACK_LLM env var.

* cleanup: remove remaining fallback LLM references from test files

Remove all use_fallback_llm mocks, LDR_USE_FALLBACK_LLM env var checks,
and related skip logic from test files since the fallback LLM feature
has been removed from source code.

- test_db_utils.py: Remove use_fallback_llm mock patches from 4 tests
- test_rate_limiter.py: Replace use_fallback_llm mock with is_ci_environment
- test_tracker.py: Replace fallback mode test with CI mode test
- test_tracker_quality_stats.py: Remove 8 use_fallback_llm decorators
- test_openai_api_key_usage.py: Remove LDR_USE_FALLBACK_LLM skipif
- test_llm_provider_integration.py: Remove LDR_USE_FALLBACK_LLM skipif
- test_ci_config.py: Remove LDR_USE_FALLBACK_LLM env var setting
- test_search_system.py: Remove LDR_USE_FALLBACK_LLM skipif
- run_all_tests.py: Remove LDR_USE_FALLBACK_LLM log line
- test_env_auto_generation.py: Remove testing.use_fallback_llm mapping
- test_lmstudio_provider.py: Fix docstring referencing removed function

* refactor: remove fallback LLM from providers, settings, CI, and tests

- Remove FakeListChatModel import and get_llm_setting_from_snapshot wrapper
- Update all provider imports to use get_setting_from_snapshot directly
- Remove LDR_USE_FALLBACK_LLM env var from CI workflows
- Remove use_fallback_llm setting and registry function
- Remove skip_if_using_fallback_llm fixture from conftest.py
- Update tests to expect ValueError instead of fallback model

* refactor: remove fallback model from llm_config and thread_settings

- Remove get_fallback_model() and all call sites in get_llm()
- Replace fallback returns with descriptive ValueError raises
- Remove LDR_USE_FALLBACK_LLM env check block from get_llm()
- Remove check_fallback_llm parameter from get_setting_from_snapshot
- Remove get_llm_setting_from_snapshot convenience wrapper
- Add ValueError re-raise in Ollama model-not-found path
- Regenerate golden master with ensure_ascii=False for proper Unicode

* fix: restore requires_llm skip mechanism and fix CI test failures

Three fixes for CI regressions from fallback LLM removal:

1. Restore @pytest.mark.requires_llm decorator and skip fixture
   (skip_if_no_real_llm) that checks LDR_TESTING_WITH_MOCKS env var.
   Re-add decorators to 17+ tests across 9 files that need real LLMs.

2. Fix type coercion in test_openai_api_key_usage.py by converting
   fixture from dict format to simplified raw-value format, bypassing
   get_typed_setting_value string coercion.

3. Fix golden master format mismatch by adding ensure_ascii=False to
   test serialization to match regeneration script. Narrow pre-commit
   hook trigger to only defaults/*.json files.

* fix: remove remaining fallback LLM references from coverage tests

- Delete TestGetFallbackModel class from test_llm_config_coverage.py
  (5 tests that imported removed get_fallback_model)
- Update test_llm_config_missing_coverage.py: 6 tests that expected
  FakeListChatModel fallback now expect ValueError/exception raises
- Remove use_fallback_llm mocks from test_rate_limiting_tracker_coverage.py
  (delete 4 fallback-specific tests, fix 9 tests)
- Remove use_fallback_llm mocks from rate_limiting/test_tracker_coverage.py
  (fix _make_tracker helper and 25 tests)
- Add @pytest.mark.requires_llm to test_analyze_documents_minimal
- Merge upstream main to pick up new coverage test files

* fix: remove dead LDR_USE_FALLBACK_LLM env var from accessibility tests CI

This env var was added to the accessibility test server but has no
effect since the fallback LLM code was removed.

* fix: align pre-commit hook description and error listing with defaults-only trigger

The hook file pattern was narrowed to defaults/ only, but the description
and error-listing code still referenced config/. Remove dead config/ path
from the file listing and update messaging to match.

* fix: update test_llm_config_deep_coverage.py for fallback LLM removal

File was added on main after branch diverged. Remove TestGetLlmFallbackEnvVar
class (tests removed functionality) and update test_provider_lowercased to
expect ValueError instead of fallback model.

* fix: improve "none" provider error message and fix stale CI-mode test

- Add explicit handler for provider="none" with user-friendly message
  instead of misleading "this is a bug" error
- Fix test_load_estimates_skipped_in_ci_mode: _load_estimates no longer
  checks is_ci_environment, test now correctly verifies deferred loading
  behavior in non-programmatic mode
- Update 4 test assertions to match new "none" provider error message
2026-03-20 13:24:59 +01:00
..