reddacted v0.2.3
📦 Release v0.2.3 · April 4, 2025
This release focuses on major internal refactoring, improved configuration management, enhanced LLM model fetching logic, improved CLI parsing, and strengthened robustness for the Textual UI.
✨ Highlights
- 🧱 Refactored Textual CLI logic into separate configuration modules
- ⚙️ New flexible configuration loading, validation, and saving system
- 📑 Improved CLI argument handling and boolean parsing logic
- 🔄 Automatic LLM model recovery and async cancellation handling
- 🐛 Critical OpenAI base URL fix and enhanced edge case handling
🚀 Features & Enhancements
✅ Configuration Management Overhaul
- 🔧 Introduced new cli_config.py module
- Handles:
- Config file I/O via JSON
- Environment variable mapping
- Boolean conversion from CLI flags or strings
- Consistent validation for Textual input widgets
- Handles:
- 🧪 add validate_inputs() utility method for UI input checks
🖥️ Textual UI (ConfigApp)
- 🔄 Migrated all config-related logic to use new cli_config.py methods
- ✨ New improved validation summary messaging
- 🧹 Removed in-class validation complexities with clean callbacks
- ✏️ Updated button text ("Submit Configuration" ➝ "Submit", etc.)
- 🌐 Fixed OpenAI URL default (
https://api.openai.com/v1➝https://api.openai.com)
🤖 LLM Model Selection
- ⏱️ Sleep added between base URL and API key fetch to prevent UI race conditions
- 🧠 Model fetch cancellation now handled safely before Textual exits
- 🧭 Fallback to saved config for previously selected model (if still available)
⚠️ Graceful message prompts for unexpected model fetch errors
💻 CLI Improvements
- 🧹 Refactored CLI argument parsing logic
- Default limits and clearer intent for zero-based logic
- Imports tidied and aligned for consistency
- 🐛 Fixed argparser bugs that caused default fallbacks to fail
🐞 Bug Fixes
- 🛠️ Fixed OpenAI base URL issues in model lookups for compatibility
- 📉 Correctly handles "0" limits as "unlimited"
- 🔒 Fixed edge case causing worker thread issues during screen suppression in Textual UI
- 📄 Resolved string-vs-list parsing edge case in PII summary screen
🧪 Dev Quality & Internals
- 📁 Reorganize ENV_VARS_MAP to reside cleanly in cli_config
- 📜 Converted constant definitions to more centralized/shared
- 🧪 Improved test coverage & type annotations (TYPE_CHECKING, etc.)
📂 Files Changed
- 5 source files updated
- 319 insertions, 178 deletions
🔧 How to Upgrade
Pull the latest tag and reinstall dependencies:
git checkout v0.2.2
pip install -r requirements.txt📣 Feedback, suggestions, or bugs? Please open an issue or discussion. We're excited to keep iterating based on community feedback!