Add conftest.py with shared fixtures, new test_qdrant_service.py covering
all QdrantService methods, and expand curator/proxy/integration/utils tests
to cover debug_log, forward_to_ollama, curator.run(), load_system_prompt,
and health check edge cases.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Add portalocker file locking to debug_log() to prevent interleaved entries
- Add exc_info=True to curator _call_llm error logging for stack traces
- Add debug log message on JSON parse fallback in _parse_json_response
- Warn when cloud is enabled but API key env var is not set
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Handle all 4 combinations of caller system message and systemprompt.md
correctly: append when both exist, passthrough when only one exists,
omit when neither exists. Fixes leading \n\n when no caller system msg.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
The chained .replace("Z", "+00:00").replace("+00:00", "") calls were
undoing each other, causing Z-suffixed timestamps to lose timezone info.
Now strips "Z" directly and ensures naive datetime for cutoff comparison.
Added regression test for old Z-suffixed timestamps.
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- make_curator() now patches app.curator.load_curator_prompt directly instead
of env var, since PROMPTS_DIR is a module-level constant set at import time
- _append_rule_to_file tests patch app.curator.PROMPTS_DIR via patch.object
- test_list_content: document that passing a list raises TypeError (expected)
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>