Release v3.9.1 - #444
Merged
Merged
Conversation
Post-3.9.0 release: bump the working version so development builds aren't stamped with the released version. - pyproject.toml + _version.py fallbacks: 3.9.0 -> 3.10.0.dev0 - CHANGELOG: note the development version under [Unreleased] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The "Test MCP image" step waited a fixed 10s before curling /health, but the MCP server's heavy imports (fastmcp + deps) routinely need longer to boot, so this check failed on every PR run while real release pushes (which skip it) succeeded. Poll /health every 2s for up to 60s and dump container logs on timeout for debuggability. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move Sponsors up near the top (after the intro/roadmap) for prominent placement, and Ecosystem down to the end (after Security). Pure position swap — content unchanged (19 insertions / 19 deletions). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove the two blockquote callouts (Visit SkillSeekersWeb.com / View Development Roadmap) that sat above the Sponsors section; the intro now flows straight into it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Cut 1,371 -> 424 lines and fix every stale/incorrect claim found while auditing the README against the codebase. Factual fixes (all verified against source): - version badge 3.7.0 -> 3.9.0; "New in v3.6.0" -> "New in v3.9.0" - `scan --quick|--comprehensive|--enhance` documented flags do not exist -> `create --preset quick|standard|comprehensive` - export targets "16 formats"/"21 platforms" -> 22 (12 LLM + 8 RAG/vector + atlas, ibm-bob) - CLI reference "all 20 commands" -> 19 - install-agent table 15 entries -> 19 (adds Letta, Aide, Neovate, Copilot) - workflow presets "24+" -> 68 - drop the dead `# skill-seekers list-configs # Not available in v3.7.0` line Structural fixes: - merge the two duplicate "Documentation" sections into one table, now linking docs that existed but were never referenced (05-workflows, ENVIRONMENT_VARIABLES, MCP_REFERENCE, API_REFERENCE) - drop the orphaned "Instead of spending days..." paragraph stranded under the wrong heading - Key Features 457 lines -> 58 as six <details> blocks linking to the fuller docs/ deep-dives (no content lost; docs/ already covered all of it) - fold installation extras and the agent table into <details> All relative links verified to resolve. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rebuild every translated README from the restructured English source (9a3af15), so all 12 locales carry the same structure and the same corrected facts instead of the stale v3.7.0 clones. Each translation drops from ~1,370 to ~430 lines and picks up the same fixes as the English one: version badge 3.7.0 -> 3.9.0, "New in v3.6.0" -> v3.9.0 highlights, the nonexistent `scan --quick|--comprehensive|--enhance` flags -> `create --preset ...`, 22 export targets, 19 CLI commands, 19 install-agent targets, 68 workflow presets, the merged Documentation section, and the removed dead `list-configs` line. Preserved per-locale: the machine-translation disclaimer block (issue #260) and the language-switcher row with each file's own language unlinked. Verified across all 12 files: switcher row correct (own language plain, 11 separators), disclaimer present, 24 code fences, every shell command and link target byte-identical to the source, all relative links resolve, all counts preserved, and Arabic RTL tables keep matching column counts. Note: badge alt text is now English in all locales (previously localized); badge images render identically. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move two root-level docs into docs/ and repoint every reference. - DOCUMENTATION_AUDIT_REPORT_2026-05-30.md -> docs/archive/historical/ (531 lines, dated one-off report, zero inbound links) - BULLETPROOF_QUICKSTART.md -> docs/getting-started/ (linked from all 12 READMEs; its own root-relative links rewritten for the new depth) Verified: broken-link count across tracked markdown is unchanged at the pre-existing 109, so this introduced none. Deliberately left at root: - CLAUDE.md / AGENTS.md / QWEN.md — agent-instruction files that their respective tools read from the repo root; moving them breaks that - CHANGELOG.md / CONTRIBUTING.md / README*.md — GitHub-special files - ROADMAP.md — conventional at root - TROUBLESHOOTING.md — blocked: docs/TROUBLESHOOTING.md (1102 lines) and docs/user-guide/06-troubleshooting.md (108) already exist and share only 2 of 22 headings with this one, so consolidating is a content decision, not a move Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Repo-wide link audit and repair: 109 broken markdown links -> 17.
- 70 relinked by resolving the target's real location (e.g. CHANGELOG's
docs/ENHANCEMENT.md -> docs/features/ENHANCEMENT.md); ambiguous en/zh-CN
pairs resolved to the same language tree as the referring file
- 10 case/separator mismatches (integrations/cursor.md -> CURSOR.md,
advanced/api-reference.md -> reference/API_REFERENCE.md, and the
cline/windsurf/continue-dev equivalents)
- 2 wrong-depth links in src/skill_seekers/mcp/README.md
- 10 links pointing at docs that were planned but never written are now
plain text instead of 404s (DOCKER_COMPOSE, mcp-tools, CHUNKING,
ROUTER_SKILLS, OUTREACH_SCRIPTS, BLOG_POST_OUTLINES, github-actions)
The 17 remaining are intentional, not defects: 3 template placeholders
(path/to/new.md, {sanitized_title}), 8 inside an illustrative sample of
generated how-to output in docs/features/HOW_TO_GUIDES.md, and 6 inside
docs/archive/ historical snapshots.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The repo had three overlapping troubleshooting docs that shared only 2 of 22 headings, so none was a stale copy of another: TROUBLESHOOTING.md (root, 485) docs/TROUBLESHOOTING.md (1102) docs/user-guide/06-troubleshooting.md (108) Consolidated into a two-tier structure: - docs/TROUBLESHOOTING.md is now the single comprehensive reference (1,398 lines). Merged in the five sections that existed only in the root file: Runtime Issues, MCP Setup Issues, Platform-Specific Issues (macOS/Linux/WSL), Verification Commands, and Quick Fixes Checklist. Table of contents regenerated; all 20 anchors verified against headings. - Root TROUBLESHOOTING.md removed; its 16 referring files now point at docs/TROUBLESHOOTING.md with correct relative depth. - docs/user-guide/06-troubleshooting.md stays as the brief chapter in the numbered 01-06 user-guide series; it already linked to the full guide. No troubleshooting content was lost, and the broken-link count is unchanged at the 17 intentional ones. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
QWEN.md advertised three different versions at once — "(v3.6.0)" in the overview, "Current version: 3.3.0" at the bottom, and "17+ source types" one line above "18 source types" — while duplicating AGENTS.md, which the 2026-05-30 documentation audit already flagged as redundant and outdated. Rather than refresh 719 lines that would drift again, QWEN.md is now a 64-line pointer to AGENTS.md that keeps the essentials inline (commands, entry points, conventions) so a Qwen agent still has working context without following the link. It deliberately carries no hardcoded version — that belongs in pyproject.toml. Also refreshes the "> **Skill Seekers vX.Y.Z**" stamp in 28 docs files (14 English + 14 zh-CN) from v3.6.0 to v3.9.0. Historical version references (docs/guides/MIGRATION_GUIDE.md, "added in v3.2.0" notes, docs/archive/) are left alone — those are accurate history, not stale claims. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
test_main_cli_version_output asserted the literal "3.9.0", so it broke as soon as development moved to 3.10.0.dev0 — the same hardcoded-version fragility already fixed in test_package_structure.py, missed there because this one uses assertIn rather than ==. Now asserts against skill_seekers.__version__, so a release bump only needs to touch pyproject.toml. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Implements the sponsorship map: tiers, rules, and a single-source-of-truth
pipeline so adding a sponsor is one JSON edit instead of 13 hand edits.
- sponsors.json — canonical sponsor data (tier, name, clean url, logo, blurb)
- scripts/render_sponsors.py — renders the block between SPONSORS:TOP/BOTTOM
markers in all 12 READMEs and regenerates SPONSORS.md; --check mode is a CI
drift guard
- SPONSORSHIP.md — tiers (Supporter/Bronze/Silver/Gold/Platinum), the 8 rules,
and how to start; contact yusufkaraaslan.yk@pm.me
- SPONSORS.md — generated sponsor roll incl. the Supporter tier
- .github/FUNDING.yml — adds GitHub Sponsors (verified live) alongside BMC
- CI — Code Quality job now runs render_sponsors.py --check
Rule 4 ("no tracking parameters") is enforced in code: the renderer refuses
any sponsor URL carrying utm_/ref/fbclid/gclid-style params. This caught a
real violation — the existing Atlas Cloud links carried
?utm_source=github&utm_medium=link&utm_campaign=skill_seekers in all 12
READMEs (24 links). Those are now clean URLs.
Atlas Cloud is recorded as a grandfathered "Launch Partner", keeping its
current placement outside the standard tiers.
Logo moved to docs/assets/sponsors/atlas-cloud.png.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Documentation and project-infrastructure release. No runtime code changed — the published package is functionally identical to 3.9.0, so this is a patch rather than the 3.10.0 the dev version anticipated. - pyproject.toml + _version.py fallbacks: 3.10.0.dev0 -> 3.9.1 - CHANGELOG: writes up the 13 commits since v3.9.0 under [3.9.1] (sponsorship program, README restructure across 12 languages, troubleshooting unification, 92 link fixes, root declutter, QWEN.md rewrite, version-pinned test fix, Docker smoke-test fix) - claude plugin.json: 3.9.0 -> 3.9.1 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Dockerfile.mcp ran a bare `pip install mcp` after installing the package,
bypassing the `mcp>=1.25,<2` pin in pyproject.toml. Once mcp 2.0.0 shipped,
that resolved to 2.x — where FastMCP moved out of `mcp.server` — so the
container died at startup with:
cannot import name 'FastMCP' from 'mcp.server'
meaning the published skill-seekers-mcp image could not run at all.
Now installs via the [mcp] extra so the pin applies. Verified locally by
building the image: mcp 1.29.0 resolves, FastMCP imports, and the server
answers /health in ~4s.
Found because this release's smoke-test change dumps container logs on
timeout; the previous fixed 10s sleep failed silently and had masked this.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotes
developmenttomainfor the v3.9.1 patch release. After merge, thev3.9.1tag triggers the automated GitHub Release + PyPI + Docker Hub publish.Why a patch, not 3.10.0
There are zero functional changes since v3.9.0. Of the files touched, the only
src/edits are the version-string fallback and a README link — everything else is docs (63 files), tooling, and CI. The published package is functionally identical to 3.9.0, so a minor bump would signal features that don't exist. The3.10.0.dev0dev version has been corrected to3.9.1.What's in it
Added
sponsors.jsonas a single source of truth rendered into all 12 READMEs byscripts/render_sponsors.py, with CI drift-checking. Rule 4 ("no tracking parameters") is enforced in code and immediately caught 24 UTM-tagged sponsor links already in the READMEs.Changed
QWEN.mdcut 719 → 64 lines (it duplicatedAGENTS.mdwhile advertising three version numbers at once)Fixed
scanflags that don't exist, nowcreate --preset ...test_cli_paths.pyno longer pins a version literalRelease gates verified
skill_seekers.__version__): 3.9.1 ✅uv build→skill_seekers-3.9.1sdist + wheel ✅render_sponsors.py --checkclean ✅[3.9.1]section extracts cleanly as release notes ✅🤖 Generated with Claude Code