Repository navigation
v3.1.0 - Interactive Python Selection & LLM-Based Insights
🚨 Breaking Changes
- Mail Rule Configuration: Users must re-run
./setup-mail-rule.shto regenerate Mail rule script with new Python selection- Previous Mail scripts used dynamic
which python3detection (could select wrong Python) - New Mail scripts use user-selected Python path configured during setup
- Action required: Run
./setup-mail-rule.shto interactively select and configure Python installation
- Previous Mail scripts used dynamic
✨ Features
Interactive Python Selection with User-Friendly UI
- Problem fixed: ModuleNotFoundError when Mail rule auto-selected wrong Python installation (e.g., miniconda without dependencies)
- New setup experience:
- Detects all Python installations (system, Homebrew, Miniconda, Anaconda)
- Automatically verifies dependencies against
Summarizer/requirements.txt - Groups display by status: ✓ Ready to use / ○ Needs setup / ⚠ Not recommended
- Uses plain language names: "Miniconda Python 3.12" instead of
/Users/you/miniconda/bin/python3 - Detects PEP 668 restrictions on Python 3.14+ to prevent incompatible selections
- Offers automated dependency installation via pip (with confirmation)
- Option to install Python 3.11 via Homebrew when no suitable Python exists
- Smart default selection: press Enter to use recommended ready-to-use Python
LLM-Based Cross-Article Insights
- Intelligent pattern detection: Replaced regex-based pattern matching with LLM analysis
- Identifies emerging themes across articles
- Detects methodological patterns and research approaches
- Highlights knowledge gaps and underexplored areas
- Improved executive summary:
- Better decimal preservation in sentence splitting (e.g., "11.2 months")
- Increased word limit to 40 for complete findings
- Publisher metadata fallback: Articles without title sources now use publisher field from alert data
Bullet Validation with Retry
- Validates 4-bullet structure with required labels:
- KEY FINDING, TACTICAL WIN [tag], MARKET SIGNAL [tag], CONCERN
- Retries once on validation failure (max 2 attempts per article)
- Ensures consistent summary format across all articles
🐛 Bug Fixes
Test Suite Alignment
- Fixed 9 test failures caused by recent code changes
- Updated mocks for content-type header checking (binary detection)
- Added topic parameter support in test fixtures
- Updated assertions to match 4-bullet validation requirements
- All 43 tests now passing
Documentation Accuracy
- Fixed dependencies: Added missing
python-dotenvtorequirements.txt - Fixed SMTP env vars: Corrected help text to use
SMTP_*(notGMAIL_*) - Removed obsolete: Cleaned up Playwright references (not used in current codebase)
- Line endings: Added
.gitattributesto enforce Unix LF for scripts
📚 Documentation
LM Studio Configuration
- Added clear LM Studio setup section to SETUP.md
- Documented Ollama as optional fallback (not required)
- Clarified configuration priority and backend fallback behavior
- Added LM Studio troubleshooting section
Mail Rule Setup
- Updated CLAUDE.md with new interactive Python selection process
- Documented PEP 668 detection and handling
- Added guidance for dependency installation
🔧 Changes Since v3.0.0
5 commits:
- Interactive Python selection with user-friendly UI
- Test suite fixes (9 → 0 failures)
- Documentation cleanup (SMTP config notes)
- Documentation alignment with code implementation
- Digest formatting improvements and LLM-based insights
Files changed: 13 files, +567 insertions, -98 deletions
Key files:
setup-mail-rule.sh- Complete rewrite of Python detection and selectionSummarizer/templates/process-alert.scpt- Use {{PYTHON_PATH}} template variabledigest_renderer.py- LLM-based cross-article insightssummarizer.py- Bullet validation with retry logicconfig.py- Cross-article insights prompt, increased token limitCLAUDE.md,README.md,SETUP.md,TROUBLESHOOTING.md- Comprehensive updates
📝 Upgrade Instructions
For Existing Users
-
Re-run Mail rule setup (required):
cd /path/to/AppletScriptorium git pull ./setup-mail-rule.sh -
Select your Python installation:
- Look for installations marked with ✓ (ready to use)
- Press Enter to use the recommended option
- Or select a different number if needed
-
Install missing dependencies if prompted:
- Script will offer to auto-install via pip
- Or install manually:
python3 -m pip install --user -r Summarizer/requirements.txt
For New Users
Follow the standard setup in docs/SETUP.md - the new interactive Python selection will guide you through configuration automatically.
✅ Benefits
- Reliable Python detection: No more ModuleNotFoundError from wrong Python selection
- User-friendly setup: Non-technical users can easily select correct Python installation
- Smarter insights: LLM-based cross-article analysis replaces brittle regex patterns
- Better quality: Bullet validation ensures consistent summary structure
- Accurate docs: All documentation now matches actual implementation