open-notebook/open_notebook/domain
Luis Novo 26d5349750
fix: handle empty/whitespace source content without retry loop (#576)
Source.vectorize() wrapped its own ValueError in DatabaseOperationError,
bypassing the stop_on=[ValueError] retry guard in process_source_command.
This caused up to 15 retries when processing files with no extractable
text, blocking sync API requests indefinitely.

- Re-raise ValueError directly in Source.vectorize() instead of wrapping
- Add .strip() check to catch whitespace-only content
- Skip vectorization gracefully in save_source() when content is empty
- Add unit tests for vectorize error handling

Fixes #560
2026-02-14 18:09:07 -03:00
..
__init__.py feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
base.py feat: content-type aware chunking and unified embedding (#444) 2026-01-21 23:49:08 -03:00
CLAUDE.md feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
content_settings.py Api podcast migration (#93) 2025-07-17 08:36:11 -03:00
credential.py feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
notebook.py fix: handle empty/whitespace source content without retry loop (#576) 2026-02-14 18:09:07 -03:00
provider_config.py feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
transformation.py refactor transformation, add graph and admin 2024-11-18 22:01:11 -03:00