Skip to content

release: cut MCPg v0.8.0 - #317

Merged
devopam merged 3 commits into
mainfrom
release/0.8.0
Aug 19, 2026
Merged

release: cut MCPg v0.8.0#317
devopam merged 3 commits into
mainfrom
release/0.8.0

Conversation

@devopam

@devopam devopam commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

Release preparation for MCPg v0.8.0 (MINOR bump — new opt-in behaviour, defaults unchanged), following docs/release-process.md §5/§5.1.

  • Version bump: __init__.py0.8.0, synced to packaging/mcpb/{manifest.json,pyproject.toml} and server.json via their respective scripted syncers.
  • CHANGELOG.md: rolled [Unreleased] into a dated [0.8.0] section; fresh empty [Unreleased] added above it.
  • New docs/release-notes-0.8.0.md, mirroring the 0.7.0 notes' structure, linked from docs/index.md.
  • Documentation validation pass (§5.1): fixed stale hand-written tool-count references that had drifted behind the real 256-tool maximal snapshot (dynamic session intent's 2 new meta-tools, roadmap 22) — CLAUDE.md, docs/tour.md (count + a broken #tool-index-N-tools anchor), and docs/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.
  • 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.

Verification

  • ruff check / ruff format --check: clean
  • mypy --strict src/mcpg: clean
  • bandit -r src/mcpg: clean (0 High/Medium)
  • pip-audit --strict: no known vulnerabilities
  • Full unit suite: 2909 passed, 3 skipped
  • Full contract suite: green
  • python -m build && twine check dist/*: both artifacts PASSED

Advances 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:

  • Add MCPg v0.8.0 release notes covering the new core session-intent preset, opt-in dynamic session-intent growth, and Docker MCP Registry submission.

Bug Fixes:

  • Synchronize the checked-in server metadata version and correct stale documentation and progress references.

Enhancements:

  • Update the project version and release metadata to 0.8.0 while preserving existing default behavior.
  • Document the expanded 256-tool maximal surface and release the changelog from Unreleased.
  • Harden the nested pg_turboquant CI workflow and clear repository-wide zizmor findings.

Build:

  • Upgrade the locked Twine tooling so built distribution artifacts pass metadata validation.

CI:

  • Pin GitHub Actions to immutable commits and restrict workflow permissions and checkout credentials in the nested CI workflow.

Documentation:

  • Add and index the v0.8.0 release notes and refresh tool-count, roadmap, and release-process documentation.

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

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, 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.
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.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

devopam and others added 2 commits August 19, 2026 01:31
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
@devopam
devopam merged commit bfa4510 into main Aug 19, 2026
16 checks passed
@devopam
devopam deleted the release/0.8.0 branch August 19, 2026 04:29
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