Roberto Musso
3cc32569d9
chore(tests): remove Langfuse scoring from preprocess tests
...
Scoring is only meaningful for LLM-backed steps. Preprocess tests are
deterministic Python, so scores add no value. Kept only for detect tests.
- test_preprocess: drop _lf_score call, simplify _run_assertions return type
- cases.yaml: remove score_name from all op=preprocess entries
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 11:21:42 +02:00
Roberto Musso
bf445ac2ce
refactor(tests): YAML-driven fixtures for preprocessor tests
...
- cases.yaml: 10 test cases con schema dichiarativo (op, assertions)
- data/: 7 file reali (email_action.html, email_thread.html, email_single.html,
email_heavy.html, generic_page.html, notes.txt, fallback.txt)
- test_preprocessors.py: parametrize da YAML via test_detect / test_preprocess;
assertion engine generico (no_html_tags, min_length, compression_ratio,
metadata_keys, contains, not_contains, content_type)
- requirements.txt: add PyYAML
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 10:44:41 +02:00
Roberto Musso
a2d6d689e4
feat: add preprocessor system (Step 1 — Local Agent V2)
...
- app/core/preprocessors/__init__.py: detect_content_type + preprocess dispatcher
- app/core/preprocessors/base.py: PreprocessResult dataclass
- app/core/preprocessors/email_html.py: BeautifulSoup HTML stripping, metadata extraction, thread splitting
- requirements.txt: add beautifulsoup4 and lxml
- tests/test_preprocessors.py: 10 tests with Langfuse scoring (preprocess.* scores)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 10:19:02 +02:00