feat: vision rework with per-inbox config and Ollama support#11
Merged
feat: vision rework with per-inbox config and Ollama support#11
Conversation
- Add InboxConfig class with optional filename_template, language, rename_prompt - Add EffectiveInboxConfig dataclass for resolved values - Update AppConfig to use List[InboxConfig] + global defaults - Add get_effective_config() merge logic - Add backwards compatibility for inbox_paths with deprecation warning
- Add extract_content() to preview.py for text-first, vision-fallback strategy - Update renamer.py to iterate List[InboxConfig] and compute effective config - Update metadata.py to accept effective config values (language, prompt, llm_config)
- Update init command to generate [[inbox]] format config - Add Ollama setup example in comments - Update --inbox CLI override to use new InboxConfig model - Update config.toml.example with new format
- Reorder sections: Quick Start → Configuration → Ollama Setup → Cloud Providers → CLI → Privacy - Add Ollama Setup section with copy-paste example - Update Configuration section with [[inbox]] format documentation - Add privacy callout for local models - Document backwards compatibility for legacy inbox_paths
- Add tests for effective config merge logic - Add tests for backwards compatibility with inbox_paths - Add tests for hybrid extraction (text vs scan PDF) - Update test_renamer.py to use new inboxes format
- Update CHANGELOG.md with v1.2.0 release notes - Bump version in pyproject.toml from 1.1.1 to 1.2.0
- Use validation_alias="inbox" for TOML [[inbox]] array-of-tables parsing
- Fix backwards compat check to use raw_config.get("inbox") not "inboxes"
- Update tests to use inbox=... instead of inboxes=... for direct construction
- Add model_config with populate_by_name to AppConfig for field/alias flexibility - Fix test_metadata.py to use new extract_metadata signature - Fix test_cli.py to expect new [[inbox]] format in generated config - Fix test_renamer.py and test_models.py to use inboxes= consistently
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hybrid text-first extraction with vision fallback for scanned PDFs, per-inbox configuration support, and first-class Ollama backend support.
What changed
[[inbox]]TOML format allows different templates, languages, and prompts per folderinbox_pathsformat still works with deprecation warningWhy it changed
Validation
test_models.py)ruff check)Breaking changes
inbox_paths = [...]to[[inbox]]array-of-tablesMigration
Update your
config.toml: