mirror of
https://github.com/lfnovo/open-notebook.git
synced 2026-07-24 23:26:14 +00:00
* feat(sources): add Crawl4AI URL engine and honor persisted engine settings (#432) - Add "crawl4ai" as a selectable URL processing engine (domain Literal, settings API validation, SettingsForm select, and label across all 14 locales; urlHelp updated in en-US to describe the new fallback chain). - The source graph now loads the persisted ContentSettings and passes the document/URL engine choices to ContentCoreConfig. Previously it built a hard-coded ContentSettings with "auto" engines, so a user's selection in Settings never took effect. Falls back to defaults if settings can't load. - Crawl4AI Docker mode is driven by content-core's native CRAWL4AI_API_URL env var (documented separately under #1105). Part of #939. * fix(432): bundle Crawl4AI runtime + address review - Bundle the Crawl4AI runtime so its local, no-API-key mode works out of the box: depend on content-core[crawl4ai] and install the Chromium browser via playwright in the Docker runtime-base (both image variants). Footprint is modest (no torch/transformers/CUDA); image grows ~300 MB from Chromium + system libs. - Preserve the server-side traceback when persisted content settings fail to load (logger.opt(exception=True)) instead of only the message. - Reset the ContentSettings singleton between domain tests (clear_instance) so a non-default value can't leak into neighboring tests. Addresses review on #432. * i18n(432): translate urlHelp Crawl4AI description across all 13 non-en locales The Crawl4AI engine label was already localized; this brings the URL-engine 'help me choose' text in line with en-US in every locale — describing Crawl4AI (local JS rendering, no API key) and its place in the auto fallback chain (Firecrawl -> Jina -> Crawl4AI -> simple). |
||
|---|---|---|
| .. | ||
| routers | ||
| __init__.py | ||
| AGENTS.md | ||
| auth.py | ||
| CLAUDE.md | ||
| command_service.py | ||
| credentials_service.py | ||
| main.py | ||
| middleware.py | ||
| models.py | ||
| podcast_service.py | ||