From dc6b82f06de4b99bb5c1e49394a387c81e70eac6 Mon Sep 17 00:00:00 2001 From: yusyus Date: Sun, 18 Jan 2026 22:39:34 +0300 Subject: [PATCH] chore: Bump version to 2.7.1 for hotfix release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Version Bump: - pyproject.toml: 2.8.0-dev → 2.7.1 - src/skill_seekers/__init__.py: 2.8.0-dev → 2.7.1 - src/skill_seekers/cli/__init__.py: 2.8.0-dev → 2.7.1 - src/skill_seekers/mcp/__init__.py: 2.8.0-dev → 2.7.1 - src/skill_seekers/mcp/tools/__init__.py: 2.8.0-dev → 2.7.1 CHANGELOG: - Added v2.7.1 entry documenting critical config download bug fix - Root cause, solution, files fixed, impact, and testing documented This hotfix resolves the critical 404 error bug when downloading configs from the skillseekersweb.com API. Co-Authored-By: Claude Sonnet 4.5 --- CHANGELOG.md | 20 ++++++++++ configs/godot.json | 49 +++++++++++++++++++++++++ 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 +- 7 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 configs/godot.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d3e978..15d3058 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [2.7.1] - 2026-01-18 + +### 🚨 Critical Bug Fix - Config Download 404 Errors + +This **hotfix release** resolves a critical bug causing 404 errors when downloading configs from the API. + +### Fixed + +- **Critical: Config download 404 errors** - Fixed bug where code was constructing download URLs manually instead of using the `download_url` field from the API response + - **Root Cause**: Code was building `f"{API_BASE_URL}/api/download/{config_name}.json"` which failed when actual URLs differed (CDN URLs, version-specific paths) + - **Solution**: Changed to use `config_info.get("download_url")` from API response in both MCP server implementations + - **Files Fixed**: + - `src/skill_seekers/mcp/tools/source_tools.py` (FastMCP server) + - `src/skill_seekers/mcp/server_legacy.py` (Legacy server) + - **Impact**: Fixes all config downloads from skillseekersweb.com API and private Git repositories + - **Reported By**: User testing `skill-seekers install --config godot --unlimited` + - **Testing**: All 15 source tools tests pass, all 8 fetch_config tests pass + +--- + ## [2.7.0] - 2026-01-18 ### 🔐 Smart Rate Limit Management & Multi-Token Configuration diff --git a/configs/godot.json b/configs/godot.json new file mode 100644 index 0000000..786f22b --- /dev/null +++ b/configs/godot.json @@ -0,0 +1,49 @@ +{ + "name": "godot", + "description": "Complete Godot Engine knowledge base combining official documentation and source code analysis", + "merge_mode": "claude-enhanced", + "sources": [ + { + "type": "documentation", + "base_url": "https://docs.godotengine.org/en/stable/", + "extract_api": true, + "selectors": { + "main_content": "div[role='main']", + "title": "title", + "code_blocks": "pre" + }, + "url_patterns": { + "include": [], + "exclude": ["/search.html", "/_static/", "/_images/"] + }, + "categories": { + "getting_started": ["introduction", "getting_started", "step_by_step"], + "scripting": ["scripting", "gdscript", "c_sharp"], + "2d": ["2d", "canvas", "sprite", "animation"], + "3d": ["3d", "spatial", "mesh", "shader"], + "physics": ["physics", "collision", "rigidbody"], + "api": ["api", "class", "reference", "method"] + }, + "rate_limit": 0.5, + "max_pages": 500 + }, + { + "type": "github", + "repo": "godotengine/godot", + "enable_codebase_analysis": true, + "code_analysis_depth": "deep", + "fetch_issues": true, + "max_issues": 100, + "fetch_changelog": true, + "fetch_releases": true, + "file_patterns": [ + "core/**/*.h", + "core/**/*.cpp", + "scene/**/*.h", + "scene/**/*.cpp", + "servers/**/*.h", + "servers/**/*.cpp" + ] + } + ] +} diff --git a/pyproject.toml b/pyproject.toml index bad50c7..511626f 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.1" 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..0068cf6 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.1" __author__ = "Yusuf Karaaslan" __license__ = "MIT" diff --git a/src/skill_seekers/cli/__init__.py b/src/skill_seekers/cli/__init__.py index 97909a0..f7becd1 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.1" __all__ = [ "LlmsTxtDetector", diff --git a/src/skill_seekers/mcp/__init__.py b/src/skill_seekers/mcp/__init__.py index b0a299d..f153a9b 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.1" __all__ = ["agent_detector"] diff --git a/src/skill_seekers/mcp/tools/__init__.py b/src/skill_seekers/mcp/tools/__init__.py index 376b5a2..c2d201f 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.1" from .config_tools import ( generate_config as generate_config_impl,