Skip to content

Release v3.9.1 - #444

Merged
yusufkaraaslan merged 15 commits into
mainfrom
development
Aug 3, 2026
Merged

Release v3.9.1#444
yusufkaraaslan merged 15 commits into
mainfrom
development

Conversation

@yusufkaraaslan

Copy link
Copy Markdown
Owner

Promotes development to main for the v3.9.1 patch release. After merge, the v3.9.1 tag 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. The 3.10.0.dev0 dev version has been corrected to 3.9.1.

What's in it

Added

  • Sponsorship program (feat(sponsors): sponsorship program with generated placements #442) — tiers, rules, sponsors.json as a single source of truth rendered into all 12 READMEs by scripts/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

  • README restructured into a lean landing page (1,371 → 424 lines), mirrored across all 11 translations (~16,500 → ~5,100 lines total)
  • Repo root decluttered; QWEN.md cut 719 → 64 lines (it duplicated AGENTS.md while advertising three version numbers at once)

Fixed

  • Stale README claims corrected against the codebase — including documented scan flags that don't exist, now create --preset ...
  • Three overlapping troubleshooting guides unified into one canonical doc (they shared only 2 of 22 headings, so none was a stale copy)
  • 92 broken relative links repaired (109 → 17; the rest are intentional)
  • Version stamps refreshed in 28 docs files
  • test_cli_paths.py no longer pins a version literal
  • Docker MCP smoke test polls for readiness instead of a fixed 10s sleep

Release gates verified

  • Version consistency (tag == pyproject == skill_seekers.__version__): 3.9.1
  • uv buildskill_seekers-3.9.1 sdist + wheel ✅
  • render_sponsors.py --check clean ✅
  • CHANGELOG [3.9.1] section extracts cleanly as release notes ✅

🤖 Generated with Claude Code

yusufkaraaslan and others added 14 commits July 30, 2026 17:12
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

codecov Bot commented Aug 2, 2026

Copy link
Copy Markdown

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>
@yusufkaraaslan
yusufkaraaslan merged commit c333a37 into main Aug 3, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant