From ac53017ec855c2857e334b85ba51ccaf6afac103 Mon Sep 17 00:00:00 2001 From: yusyus Date: Wed, 21 Jan 2026 23:23:33 +0300 Subject: [PATCH] chore: Bump version to 2.7.2 for hotfix release Co-Authored-By: Claude Sonnet 4.5 --- CHANGELOG.md | 48 +++++++++++++++++++++++++ pyproject.toml | 2 +- src/skill_seekers/__init__.py | 2 +- src/skill_seekers/cli/__init__.py | 2 +- src/skill_seekers/mcp/__init__.py | 2 +- src/skill_seekers/mcp/tools/__init__.py | 2 +- 6 files changed, 53 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15d3058..db4bfbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [2.7.2] - 2026-01-21 + +### 🚨 Critical CLI Bug Fixes + +This **hotfix release** resolves 4 critical CLI bugs reported in issues #258 and #259 that prevented core commands from working correctly. + +### Fixed + +- **Issue #258: `install --config` command fails with unified scraper** (#258) + - **Root Cause**: `unified_scraper.py` missing `--fresh` and `--dry-run` argument definitions + - **Solution**: Added both flags to unified_scraper argument parser and main.py dispatcher + - **Impact**: `skill-seekers install --config react` now works without "unrecognized arguments" error + - **Files Fixed**: `src/skill_seekers/cli/unified_scraper.py`, `src/skill_seekers/cli/main.py` + +- **Issue #259 (Original): `scrape` command doesn't accept URL and --max-pages** (#259) + - **Root Cause**: No positional URL argument or `--max-pages` flag support + - **Solution**: Added positional URL argument and `--max-pages` flag with safety warnings + - **Impact**: `skill-seekers scrape https://example.com --max-pages 50` now works + - **Safety Warnings**: + - ⚠️ Warning if max-pages > 1000 (may take hours) + - ⚠️ Warning if max-pages < 10 (incomplete skill) + - **Files Fixed**: `src/skill_seekers/cli/doc_scraper.py`, `src/skill_seekers/cli/main.py` + +- **Issue #259 (Comment A): Version shows 2.7.0 instead of actual version** (#259) + - **Root Cause**: Hardcoded version string in main.py + - **Solution**: Import `__version__` from `__init__.py` dynamically + - **Impact**: `skill-seekers --version` now shows correct version (2.7.2) + - **Files Fixed**: `src/skill_seekers/cli/main.py` + +- **Issue #259 (Comment B): PDF command shows empty "Error: " message** (#259) + - **Root Cause**: Exception handler didn't handle empty exception messages + - **Solution**: + - Improved exception handler to show exception type if message is empty + - Added proper error handling with context-specific messages + - Added traceback support in verbose mode + - **Impact**: PDF errors now show clear messages like "Error: RuntimeError occurred" instead of just "Error: " + - **Files Fixed**: `src/skill_seekers/cli/main.py`, `src/skill_seekers/cli/pdf_scraper.py` + +### Testing + +- ✅ Verified `skill-seekers install --config react --dry-run` works +- ✅ Verified `skill-seekers scrape https://tailwindcss.com/docs/installation --max-pages 50` works +- ✅ Verified `skill-seekers --version` shows "2.7.2" +- ✅ Verified PDF errors show proper messages +- ✅ All 202 tests passing + +--- + ## [2.7.1] - 2026-01-18 ### 🚨 Critical Bug Fix - Config Download 404 Errors diff --git a/pyproject.toml b/pyproject.toml index bad50c7..ea1b37c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "skill-seekers" -version = "2.8.0-dev" +version = "2.7.2" description = "Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills" readme = "README.md" requires-python = ">=3.10" diff --git a/src/skill_seekers/__init__.py b/src/skill_seekers/__init__.py index 375f58c..b691d5e 100644 --- a/src/skill_seekers/__init__.py +++ b/src/skill_seekers/__init__.py @@ -5,7 +5,7 @@ This package provides tools for automatically scraping, organizing, and packagin documentation from various sources into uploadable Claude AI skills. """ -__version__ = "2.8.0-dev" +__version__ = "2.7.2" __author__ = "Yusuf Karaaslan" __license__ = "MIT" diff --git a/src/skill_seekers/cli/__init__.py b/src/skill_seekers/cli/__init__.py index 97909a0..eda6b86 100644 --- a/src/skill_seekers/cli/__init__.py +++ b/src/skill_seekers/cli/__init__.py @@ -28,7 +28,7 @@ except ImportError: open_folder = None read_reference_files = None -__version__ = "2.8.0-dev" +__version__ = "2.7.2" __all__ = [ "LlmsTxtDetector", diff --git a/src/skill_seekers/mcp/__init__.py b/src/skill_seekers/mcp/__init__.py index b0a299d..9bf880a 100644 --- a/src/skill_seekers/mcp/__init__.py +++ b/src/skill_seekers/mcp/__init__.py @@ -28,6 +28,6 @@ Usage: in ~/.config/claude-code/mcp.json """ -__version__ = "2.8.0-dev" +__version__ = "2.7.2" __all__ = ["agent_detector"] diff --git a/src/skill_seekers/mcp/tools/__init__.py b/src/skill_seekers/mcp/tools/__init__.py index 376b5a2..783774e 100644 --- a/src/skill_seekers/mcp/tools/__init__.py +++ b/src/skill_seekers/mcp/tools/__init__.py @@ -11,7 +11,7 @@ Tools are organized by functionality: - source_tools: Config source management (fetch, submit, add/remove sources) """ -__version__ = "2.8.0-dev" +__version__ = "2.7.2" from .config_tools import ( generate_config as generate_config_impl,