release: cut MCPg v0.8.0 - #317
Merged
Merged
Conversation
Version bump: __init__.py, packaging/mcpb (manifest.json + pyproject.toml), server.json, all synced via their respective scripted syncers (packaging/mcpb/sync_version.py, tools/sync_server_json_version.py). CHANGELOG.md: rolled [Unreleased] into a dated [0.8.0] section, added a fresh empty [Unreleased] above it. New docs/release-notes-0.8.0.md mirrors the 0.7.0 structure and is linked from docs/index.md. Documentation validation pass (release-process.md §5.1): fixed stale hand-written tool-count references that had drifted behind the actual 256-tool maximal snapshot (dynamic session intent's 2 new meta-tools, roadmap 22) — CLAUDE.md's tool_surface.snapshot.json note, docs/tour.md's count + broken #tool-index-N-tools anchor, and docs/release-process.md's own checklist row (now count-agnostic to avoid the same drift next release). docs/PROGRESS.md's stale post-0.6.10 header brought current. Dev-tooling fix found during the pre-flight build check: `uv run twine check` failed on `Metadata-Version: 2.5` (hatchling 1.32.0, released 2026-08-11, made 2.5 its default) — root-caused to a stale locked twine==6.2.0; twine 7.0.0 (2026-07-27) fixes exactly this. Upgraded via `uv lock --upgrade-package twine`; both dist/ artifacts now pass `twine check`. No production dependency touched. Verified before this commit: ruff, mypy --strict, bandit, pip-audit --strict all clean; full unit suite (2909 passed, 3 skipped) and full contract suite green on this exact tree; `python -m build` + `twine check dist/*` both PASSED. Advances roadmap row: 22 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PdN8kDW5Yc8rFb6scthKef
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The various tool-count narratives (254 vs 256, maximal vs default) are slightly inconsistent across
docs/release-notes-0.8.0.md,docs/PROGRESS.md,docs/tour.md, andpackaging/mcpb/manifest.json(e.g., release notes call 254 the “maximal (all flags on)” ceiling while other docs state 256 maximal / 186 default), so it would be good to pick a single definition and align the wording and counts everywhere. - In
docs/release-notes-0.8.0.md, the paragraphs describingMCPG_SESSION_INTENT=corevs the “static intent (coreby default)” are a bit ambiguous about what the default session-intent actually is; consider tightening this section so it clearly states the out-of-the-box default and howcorechanges behavior relative to that.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The various tool-count narratives (254 vs 256, maximal vs default) are slightly inconsistent across `docs/release-notes-0.8.0.md`, `docs/PROGRESS.md`, `docs/tour.md`, and `packaging/mcpb/manifest.json` (e.g., release notes call 254 the “maximal (all flags on)” ceiling while other docs state 256 maximal / 186 default), so it would be good to pick a single definition and align the wording and counts everywhere.
- In `docs/release-notes-0.8.0.md`, the paragraphs describing `MCPG_SESSION_INTENT=core` vs the “static intent (`core` by default)” are a bit ambiguous about what the default session-intent actually is; consider tightening this section so it clearly states the out-of-the-box default and how `core` changes behavior relative to that.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Sourcery review on PR #317 caught a real inconsistency: the release notes' header block labeled 254 as "the maximal (all flags on) ceiling," but the true all-flags-on maximal is 256 once the new MCPG_DYNAMIC_SESSION_INTENT flag is counted -- 254 is the ceiling *without* that flag. Reworded the header, the dynamic-growth section, and the upgrade-impact bullet to consistently use 254 = existing/ unopted-in ceiling, 256 = new opt-in all-flags-on maximal. Also tightened the "starts at its static intent (core by default)" line, which conflated the dynamic layer's own core fallback with what MCPG_SESSION_INTENT itself defaults to (empty/unfiltered) when unset -- now states both explicitly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PdN8kDW5Yc8rFb6scthKef
12 open code-scanning alerts (github.com/devopam/MCPg/security/code-scanning) traced to scratch/pg_turboquant/.github/workflows/ci.yml -- a first-party Postgres extension's own CI config, checked into the repo whole but never actually triggered by GitHub Actions (nested .github/workflows dirs aren't discovered as workflow sources; only the repo root is). The real actions-security.yml job runs `uvx zizmor@1.9.0 --format sarif .` against the whole repo tree, which recursively picked this file up too -- missed by the earlier "zizmor baseline cleared" pass (CHANGELOG, this release). Findings and fixes, all in that one file: - 1x unpinned-uses: SonarSource/sonarqube-scan-action@v6 -> pinned to its v6 commit SHA. - 6x excessive-permissions (workflow level + all 5 jobs): added a single workspace-level `permissions: contents: read` -- none of these jobs push, release, or need an OIDC token. - 5x artipacked (every actions/checkout step): added `persist-credentials: false`. - Also pinned actions/upload-artifact@v4 and actions/download-artifact@v4 to SHAs while in there, matching the same-repo convention even though zizmor's unpinned-uses only flagged the Sonar action explicitly. Verified clean with the exact invocation CI uses: `GH_TOKEN=$(gh auth token) uvx zizmor@1.9.0 scratch/pg_turboquant/.github/workflows/ci.yml` -> "No findings to report." CHANGELOG.md and docs/release-notes-0.8.0.md updated to describe both zizmor-cleanup rounds honestly (round 1's "zizmor now reports no findings" claim was true only for the top-level workflows). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PdN8kDW5Yc8rFb6scthKef
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.
Summary
Release preparation for MCPg v0.8.0 (MINOR bump — new opt-in behaviour, defaults unchanged), following
docs/release-process.md§5/§5.1.__init__.py→0.8.0, synced topackaging/mcpb/{manifest.json,pyproject.toml}andserver.jsonvia their respective scripted syncers.CHANGELOG.md: rolled[Unreleased]into a dated[0.8.0]section; fresh empty[Unreleased]added above it.docs/release-notes-0.8.0.md, mirroring the0.7.0notes' structure, linked fromdocs/index.md.CLAUDE.md,docs/tour.md(count + a broken#tool-index-N-toolsanchor), anddocs/release-process.md's own checklist row (now count-agnostic to avoid the same drift recurring).docs/PROGRESS.md's stale post-0.6.10 header brought current.uv run twine checkfailed onMetadata-Version: 2.5(hatchling 1.32.0, released 2026-08-11, made 2.5 its default) — root-caused to a stale lockedtwine==6.2.0;twine7.0.0 (2026-07-27) fixes exactly this. Upgraded viauv lock --upgrade-package twine; bothdist/artifacts now passtwine check. No production dependency touched.Verification
ruff check/ruff format --check: cleanmypy --strict src/mcpg: cleanbandit -r src/mcpg: clean (0 High/Medium)pip-audit --strict: no known vulnerabilitiespython -m build && twine check dist/*: both artifacts PASSEDAdvances roadmap row: 22
🤖 Generated with Claude Code
Summary by Sourcery
Prepare and document the MCPg v0.8.0 release with synchronized metadata, updated release documentation, and strengthened CI security.
New Features:
Bug Fixes:
Enhancements:
Build:
CI:
Documentation: