Repository navigation
Releases: starfysh-tech/AppletScriptorium
Release list
v5.1.0
v5.0.0
v4.2.0 - SwiftHAL v2.1 with Staff-Level Refactoring
✨ Features
SwiftHAL v2.1
- Visual TUI with architecture insights: Risk distribution histogram, architecture hotspots grouped by directory, files needing attention, well-factored files, and comprehensive project health metrics
- Smart summary output: Default format shows high-risk and well-factored files with intelligent filtering (use
--verbosefor all files) - ArgumentParser CLI: Professional declarative CLI with automatic
--helpgeneration, dual path support (--pathflag + positional argument) - Staff-level refactoring: Type-safe MetricKey enum with KeyPath mapping, RiskThresholds/DifficultyThresholds structs eliminating magic numbers, Swift naming conventions throughout
Summarizer
- Multi-model evaluation system: Corpus caching, LM Studio parser improvements, Patient Reported Outcome sample for evals
- Improved LLM consistency: Debug logging and better prompts
CommitCraft
- CHANGELOG automation: Automatic update on commits with conventional format parsing
🐛 Bug Fixes
SwiftHAL
- Fixed compiler warnings (unused variables)
- CI compatibility with Swift 5.9+ (lowered tools version from 6.2)
- Updated to macos-latest runner (resolves deprecation warning)
Summarizer
- Mail rule From filter for better targeting
- Multi-model eval support with LM Studio parser
- Handle None values in digest rendering
CommitCraft
- Working directory detection in Claude Code
- macOS compatibility and uninstall safety
📚 Documentation
SwiftHAL
- Complete Homebrew packaging guide (TODO-HOMEBREW.md)
- Updated README with v2.1 feature descriptions, positional args, --verbose behavior
- Marked swifthal-req.md as historical document
Summarizer
- Mail rule updates: use 'contains' + document IMAP seen flag bug
Project
- Backfilled CHANGELOG with missing commits
🔧 Other Changes
- Emoji-only tag format for Summarizer
- Relaxed validation and removed prompt examples in Summarizer
- Test file verification for CHANGELOG automation
SwiftHAL Binary Included:
SwiftHAL(18MB) - Release binary for macOS (arm64)- Compatible with macOS 13+ (Ventura and later)
- Install:
cp SwiftHAL /usr/local/bin/hal
Installation:
See SwiftHAL README for full installation instructions.
v4.1.0 - M3U8 Video Downloader & CHANGELOG Automation
This release adds M3U8 video downloading capabilities and implements automated CHANGELOG maintenance.
What's New
- M3U8/HLS video stream downloader with parallel segment downloads and smart retry logic
- Complete CHANGELOG.md with all project history (backfilled 12 releases)
- Automated CHANGELOG maintenance - [Unreleased] section updates automatically with each commit
See CHANGELOG.md for complete details.
Full Changelog: v4.0.1...v4.1.0
v4.0.1 - Developer-First README
📚 Documentation
Restructure README for Developer-First Experience
Goal: Transform README from Summarizer-heavy documentation into a balanced, choose-your-own-adventure guide that helps curious developers succeed quickly.
Major improvements:
- Complexity indicators: 🟢 Easy (5 min) | 🟡 Medium (10 min) | 🔴 Advanced (30 min)
- "Pick Your Path" Quick Start: Three clear paths based on developer goals and time commitment
- ExtensionAuditor: Instant gratification (zero deps, 30 seconds to CSV)
- CommitCraft: Best for developers (one install, works everywhere)
- Summarizer: Most powerful (full setup guide linked)
- Balanced tool coverage: All three tools get equal representation
- Philosophy section: Added Larry Wall's three great virtues with concrete examples
- Laziness: Automate tedious tasks
- Impatience: Get results immediately
- Hubris: Build tools others want to use
Content streamlined:
- Removed 100+ lines of Summarizer-specific details (now in docs/SETUP.md)
- Condensed Testing section to show all three tools
- Condensed Development section (removed tool-specific details)
- Line count: 290 → 270 lines (7% reduction, 100% more useful)
Developer experience optimized:
- Clone repo → Read README
- See ExtensionAuditor is 🟢 5 minutes
- Run
python3 ExtensionAuditor/extension-auditor.py - Get CSV output in 30 seconds
- Feel accomplished → Explore other tools ✓
Sections restructured:
- Tools: Added "Get started" quick commands for each tool
- Quick Start: Three progressive paths (easy/medium/advanced)
- Testing: Examples for all three tools (not just one)
- Development: Condensed, focuses on conventions not specifics
- Philosophy: NEW - explains virtues that influenced design
Files Changed
README.md: 117 insertions, 136 deletions- Add complexity indicators and time estimates
- Replace generic quick start with pick-your-path guide
- Add Philosophy section with Larry Wall's virtues
- Balance coverage across all three tools
Upgrade Notes
No breaking changes. README is now more helpful for new developers.
For existing users: No action needed. This is purely documentation improvement.
🤖 Generated with Claude Code
v4.0.0 - CommitCraft Architecture Simplification & Automated Releases
🚨 Breaking Changes
CommitCraft: Architecture simplified to 2-tier system
- Old workflow: Install globally → Run per-repo setup → Commands work
- New workflow: Install globally → Commands work everywhere immediately
- Removed:
commitcraft-init.sh- Per-repo installer no longer neededpost-checkouthook - No git hook-based discovery- Git template directory setup
- Shell alias auto-configuration
- Impact: Existing users need to re-run
./commitcraft-install.shto update. Local.claude/directories are no longer used—commands reference~/.claude/scripts/directly.
✨ Features
CommitCraft: Add automated release command with semantic versioning
- New
/commitcraft-releasecommand for automated GitHub releases - Auto-detects version bump from conventional commits (BREAKING CHANGE/feat/fix)
- Generates structured release notes with categorized sections
- Integrates with GitHub CLI (
gh) for release publishing - Includes
commitcraft-release-analyze.shfor version analysis and validation - Comprehensive user guide at
docs/commitcraft-release.md(390 lines)
CommitCraft: Add development workflow enhancement toolkit
- New CommitCraft system for propagating Claude Code enhancements across repositories
/commitcraft-pushcommand for AI-assisted commits with security scanning- Pre-commit analysis with secret detection, sync status, and large file warnings
- TUI installer with hash-based state detection and delta diffs
- Comprehensive documentation with setup guides and extension patterns
ExtensionAuditor: Add Chrome extension security scanner
- Cross-platform tool for analyzing installed browser extensions
- Hybrid approach: local manifests + web enrichment
- Generates CRXplorer-compatible CSV for security analysis
- Zero external dependencies (Python stdlib only)
- Professional output with progress tracking
📚 Documentation
CommitCraft Documentation Overhaul
- README.md: Rewrite for 2-tier architecture (-50% complexity, 337 lines)
- docs/commitcraft-release.md: Complete user guide with troubleshooting (390 lines)
- docs/commitcraft-push.md: Updated workflow without per-repo setup
- docs/adding-tools.md: Rewritten for global-only pattern (493 lines)
- Main README.md: Add strategy/goals section with contributing guidelines
- Update repository structure diagrams to reflect current files
🔧 Other Changes
CommitCraft: Installer improvements
- Remove git template directory setup (no longer used)
- Remove shell alias prompts (manual configuration via
shell-aliasesfile) - Fix obsolete script references (
install-hooks.sh→commitcraft-install.sh) - Keep cleanup logic for users upgrading from v3.x
- Update file counts: 2 scripts + 2 commands (previously showed 1 command)
📝 Upgrade Instructions
For CommitCraft Users (v3.x → v4.0.0)
Breaking change: Architecture simplified. Follow these steps:
-
Pull latest code:
cd ~/Code/AppletScriptorium git pull
-
Re-run installer:
cd CommitCraft ./commitcraft-install.shThis updates
~/.claude/with new commands and removes obsolete hooks. -
Clean up local directories (optional):
# In any repo where you previously ran commitcraft-init rm -rf .claude/Local
.claude/directories are no longer used. Commands now reference~/.claude/scripts/directly. -
Test commands:
# Commands work immediately in any repository /commitcraft-push /commitcraft-release
What changed:
- ✗ No more per-repo setup required
- ✗ No git hooks for passive discovery
- ✓ Commands work in all repos after single global install
- ✓ Simpler, faster workflow
🎯 What's New in v4.0.0
Major improvements:
- Simpler setup: One install, works everywhere (no per-repo configuration)
- Automated releases: New
/commitcraft-releasecommand with semver detection - Better docs: Strategy/goals, comprehensive guides, troubleshooting
- New tools: ExtensionAuditor for browser security scanning
Files changed: 12 files, 1,420 insertions, 678 deletions
Key additions:
commitcraft-release-analyze.sh- Release version analysis scriptcommitcraft-release.md- Automated release commanddocs/commitcraft-release.md- Release command user guide
Key deletions:
commitcraft-init.sh- No longer needed (2-tier architecture)post-checkout- No longer needed (no git hooks)
🙏 Credits
All commits co-authored by Claude Code.
🤖 Generated with Claude Code
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
v3.0.0 - Binary Content Support & Topic Threading
🚨 Breaking Changes
- Configuration:
.envnow uses standardizedSMTP_*variable names instead ofGMAIL_*prefixesGMAIL_SMTP_USER→SMTP_USERNAMEGMAIL_APP_PASSWORD→SMTP_PASSWORDGMAIL_SMTP_HOST→SMTP_HOSTGMAIL_SMTP_PORT→SMTP_PORT- Added:
SMTP_FROM_EMAIL,ALERT_DIGEST_EMAIL - Action required: Update your
.envfile to use new variable names
🐛 Bug Fixes
Binary Content Handling
- Root cause: PDF and EPUB files were downloaded as binary and sent to LM Studio as malformed text, causing HTTP 400 errors
- Fix: Added Content-Type detection and URL transformation logic
- PDF files: Strip
.pdfextension to fetch HTML version - EPUB files: Strip
/epubsuffix to fetch HTML version - Fall back to Markdown extraction for remaining binaries
- PDF files: Strip
- Evidence:
- PDF (cureus.com): 2.3MB binary → 236KB HTML ✓
- EPUB (frontiersin.org): 1.8MB binary → 427KB HTML ✓
LM Studio Error Diagnostics
- Log prompt size (chars + estimated tokens) before each request
- Capture first 200 chars of HTTP error response body
- Include detailed error context in exception messages
✨ Features
Topic Threading
- Alert topic now flows through complete pipeline: AppleScript → CLI → Email
- Added
--topicCLI parameter - Email subject now includes topic: "Google Alert Intelligence: {topic} — {date}"
- Digest titles (HTML/text) display topic
Emoji Tags
- Tactical Win tags now have emoji indicators (matching Market Signal style):
[🚀 SHIP NOW]- Quick win available immediately[🗺️ ROADMAP]- Requires planning/multi-step effort[👀 WATCH]- Early signal, no action yet
Tag Normalization
- Added automatic tag formatting with case-insensitive regex
- Handles variations:
[Urgent]→[🔴 URGENT],[ship now]→[🚀 SHIP NOW] - Ensures consistent emoji formatting in all summaries
📚 Documentation
- Updated
.env.templatewith standardized SMTP variables - Added clear guidance for
ALERT_DIGEST_EMAILconfiguration - Documented LM Studio as primary backend with optional Ollama fallback
🔧 Changes Since v2.3.1
Full changelog (7 commits):
- Binary content detection and HTML fallback
- Topic threading through complete pipeline
- Emoji indicators for Tactical Win tags
- Tag normalization for consistent formatting
- SMTP email delivery (replaced UI automation)
- Ollama health detection and auto-recovery
- Debug logging improvements
Files changed: 10 files, +442 insertions, -76 deletions
v2.3.2
v2.3.1 — Documentation Audit & Accuracy Fix
Overview
This release focuses on documentation accuracy and consistency. We've conducted a comprehensive audit of all user-facing documentation and corrected discrepancies between docs and the actual codebase implementation.
🔧 What's Fixed
Documentation Corrections
- Fixed npm package name: Corrected
url-to-markdown-cli→url-to-markdown-cli-toolacross all installation docs (SETUP.md, README.md) - Added missing module references: Documented
urltomd_fetcher.py,jina_fetcher.py, andmarkdown_cleanup.pyin repository structure - Documented
run_workflow.sh: Added usage guide for the sequential workflow script as alternative to parallel CLI processing - Removed dead references: Eliminated reference to non-existent PRD file
Architecture Documentation Updates
- Updated workflow diagram to reflect current
url-to-md+Jinafallback strategy (replaced Playwright references) - Updated deployment docs to reference
url-to-md/Jinainstead of Playwright for Cloudflare bypass - Updated troubleshooting guide to reflect current tooling and dependencies
Code Cleanup
- Deleted obsolete test scripts referencing removed Playwright dependency:
scripts/debug-playwright-headed.pyscripts/test-jina-cli.shscripts/test-jina-feasibility.pyscripts/test-jina-real-articles.pyscripts/test-playwright-comparison.py
📋 Changes
Files Modified:
- CLAUDE.md
- README.md
- docs/SETUP.md
- docs/TROUBLESHOOTING.md
- docs/workflow-diagram.mmd
- AGENTS.md
- Summarizer/deploy/README.md
Files Deleted: 5 obsolete test scripts
✅ Benefits
- Accurate onboarding: Users get the correct npm package name on first install
- Complete module reference: Developers can now find all pipeline modules documented
- Current architecture: Documentation accurately reflects url-to-md + Jina fallback strategy (not Playwright)
- Reduced confusion: Removed dead PRD references and obsolete test scripts
📝 Notes for Users
- No code changes—documentation only
- Ensure you have
url-to-markdown-cli-toolinstalled (noturl-to-markdown-cli) for Cloudflare-protected sites run_workflow.shis available as an alternative topython3 -m Summarizer.cli runfor sequential processing