Skip to content

release: v0.18.2#356

Merged
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
release/v0.18.2
Apr 22, 2026
Merged

release: v0.18.2#356
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
release/v0.18.2

Conversation

@cmeans-claude-dev
Copy link
Copy Markdown
Contributor

@cmeans-claude-dev cmeans-claude-dev Bot commented Apr 22, 2026

Patch release stamping six PRs merged to main since v0.18.1 on 2026-04-20.

Summary

Two-file diff:

  • pyproject.tomlversion bump 0.18.10.18.2
  • CHANGELOG.md[Unreleased] renamed to [0.18.2] - 2026-04-21; new empty [Unreleased] section seeded; comparison-link footer updated

Why patch

  • No new MCP tools, no changed tool signatures, no resource changes.
  • No breaking config, no migration, no data-format change.
  • requires-python = ">=3.10" floor unchanged in pyproject.toml.
  • Dockerfile base bump (3.12 → 3.13) is runtime-transparent to image consumers; CI matrix widening (3.13, 3.14) is pure infra.
  • OAuth log-redaction is security-hardening with no behavior change on the happy path.
  • docker-compose host-port parameterization is backward-compatible — default behavior unchanged.

Textbook patch bump for a 0.x project.

Included PRs

PR Title Kind
#351 ci: cascade env-routing to pr-labels.yml + workflow permissions Security
#352 fix(oauth): redact URLs in log output (CodeQL #5-#9) Security
#350 ci: add docker-smoke workflow — build + import smoke on Dockerfile PRs Added
#353 chore(compose): parameterize host port in docker-compose.yaml Changed
#354 ci: extend Python test matrix to include 3.13 and 3.14 Added
#355 chore(docker): bump base image from python:3.12-slim to 3.13-slim Changed

All six merged via their own QA-Approved cycles — nothing in this release bypasses the standard pipeline.

What's unchanged

  • docker-compose.yaml — uses :latest, no version bump needed
  • README.md — tool count (32) and text-mode content unchanged; no update needed
  • uv.lock — no dep changes in any of the six PRs

QA

Lightweight per project convention — all substantive code was tested in its own PR. Review-only checks:

    • pyproject.toml version is 0.18.2. Verify line 3: version = "0.18.2".
    • CHANGELOG[0.18.2] - 2026-04-21 heading exists; the six rolled-up entries sit beneath it in their original order (Changed → Added → Changed → Security → Security → Added); empty [Unreleased] seeded above.
    • Comparison links[0.18.2]: …v0.18.1...v0.18.2 added; [Unreleased] now points at v0.18.2...HEAD.
    • Scopegit diff --stat origin/main shows exactly CHANGELOG.md (+4, -1) and pyproject.toml (+1, -1). Nothing else.
    • No accidental content drift in rolled-up entries — diff between this branch's [0.18.2] section and what was in [Unreleased] on main before this PR should be zero beyond the heading/anchor move.

Acceptance

  • ✅ CI green
  • ☐ Merge + tag (Dev authorization, executed post-merge)

Merge + tag (Dev post-merge action)

After merge, Dev runs:

```
git checkout main && git pull --ff-only origin main
git tag -a v0.18.2 -m "v0.18.2 — CI matrix widening (3.13/3.14), Dockerfile to python:3.13-slim, docker-smoke workflow, compose host-port parameterization, OAuth log redaction, workflow permission hardening"
git push origin v0.18.2
```

The tag triggers `docker-publish.yml` to build and publish the `:v0.18.2` + `:latest` images.

🤖 Generated with Claude Code

Stamp 0.18.2. Aggregates #351, #352, #350, #353, #354, #355 — all merged
to main since v0.18.1 on 2026-04-20:

- CI matrix widened to Python 3.10–3.14 (#354)
- Dockerfile base bumped to python:3.13-slim (#355)
- docker-smoke workflow added (#350)
- docker-compose host port parameterized (#353)
- OAuth URL log redaction (CodeQL #5-#9) (#352)
- Workflow permission hardening (#351)

Patch bump — no new user-facing features, no API changes, requires-python
floor unchanged at >=3.10.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cmeans-claude-dev cmeans-claude-dev Bot requested a review from cmeans as a code owner April 22, 2026 01:08
@github-actions github-actions Bot added the Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA label Apr 22, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions github-actions Bot added Ready for QA Dev work complete — QA can begin review and removed Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 22, 2026
@cmeans cmeans added the QA Active QA is actively reviewing; Dev should not push changes label Apr 22, 2026
@github-actions github-actions Bot removed the Ready for QA Dev work complete — QA can begin review label Apr 22, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

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

QA review — PR #356 (release v0.18.2)

Lightweight per project convention — feature code for all six rolled-up PRs was QA'd in its own cycle.

Verification performed

Step Result
pyproject.toml version ✅ Line 3 reads version = "0.18.2".
CHANGELOG header placement ## [0.18.2] - 2026-04-21 sits below an empty ## [Unreleased] — correct Keep-a-Changelog shape.
Rolled-up entries (6) ✅ All present under [0.18.2] in original order (Changed #355 → Added #354 → Changed #353 → Security #352 → Security #351 → Added #350). Order matches PR body claim.
Content drift in rolled-up entries ✅ None possible — the diff only inserts the ## [0.18.2] - 2026-04-21 header + blank line and updates the footer; body of each entry is unchanged from what lived under [Unreleased] on main.
Comparison links [Unreleased]: …/compare/v0.18.2...HEAD and [0.18.2]: …/compare/v0.18.1...v0.18.2 — both correct.
Scope ⚠️ See finding #1.
Tag-command rollup coverage ✅ Post-merge tag message names all six rolled-up areas (3.13/3.14 matrix, Dockerfile bump, docker-smoke, compose port, OAuth redaction, permission hardening).
CI rollup docker-smoke, lint, typecheck, test (3.10–3.14), codecov/patch, CodeQL, license/cla — all green.

Findings

  1. [substantive] PR body scope claim is off by one on CHANGELOG.md. Both the Summary and the acceptance checkbox #4 assert CHANGELOG.md (+3, -1). Actual:

    $ git diff --shortstat origin/main..origin/release/v0.18.2 -- CHANGELOG.md
     1 file changed, 4 insertions(+), 1 deletion(-)
    

    The [0.18.2] - 2026-04-21 header hunk inserts a header line and the blank line between [Unreleased] and [0.18.2] (+2); the footer hunk adds the new [Unreleased] link and the new [0.18.2] link while removing the old [Unreleased] link (+2, -1). Net (+4, -1), not (+3, -1).

    Fix: update the PR body's Summary paragraph and checkbox #4 to read CHANGELOG.md (+4, -1). Nothing code-side changes.

What's good

  • Proper two-file scope; no surprise edits.
  • ## [Unreleased] section correctly preserved as an empty shell above ## [0.18.2] (Keep-a-Changelog convention).
  • Rolled-up entries untouched; the release PR does exactly what a release PR should and nothing else.
  • All six included PRs have matching CHANGELOG entries with original wording intact.
  • Post-merge tag plan is tight and covers every rolled-up area.

Verdict

QA Failed — one substantive finding (scope-count drift in PR body). Trivial body-edit fix, no code change needed.

All feature-level code testing was completed in the individual PRs (#350, #351, #352, #353, #354, #355). This review confirms the release-mechanics shape only.

@cmeans
Copy link
Copy Markdown
Owner

cmeans commented Apr 22, 2026

QA audit — transitioning label to QA Failed.

Release-mechanics review complete:

One substantive finding — PR body's scope claim is off by one on CHANGELOG.md. See review for detail. Fix is a PR-body edit: (+3, -1)(+4, -1). No code change.

@cmeans cmeans added QA Failed QA found issues — needs dev attention and removed QA Active QA is actively reviewing; Dev should not push changes labels Apr 22, 2026
@cmeans-claude-dev
Copy link
Copy Markdown
Contributor Author

Dev response to QA finding

Finding 1 — CHANGELOG.md scope count off by one

Fixed in PR body. Changed CHANGELOG.md (+3, -1)CHANGELOG.md (+4, -1) on the Scope checkbox (#4). Verified against git diff --shortstat origin/main..origin/release/v0.18.2 -- CHANGELOG.md1 file changed, 4 insertions(+), 1 deletion(-).

My miscount was in the header hunk: the new ## [0.18.2] - 2026-04-21 line plus the blank trailing line is +2, not +1. Combined with the footer's +2/-1 (new [Unreleased] link + new [0.18.2] link, old [Unreleased] link removed), that totals +4/-1.

No code change

Only the PR-body markup was touched. pyproject.toml and CHANGELOG.md branch content are unchanged — the release artifact is the same one QA already audited and signed off on for mechanics. No re-push, no CI re-run required.

Labels

Transitioning QA FailedReady for QA for signoff.

@cmeans-claude-dev cmeans-claude-dev Bot added Ready for QA Dev work complete — QA can begin review and removed QA Failed QA found issues — needs dev attention labels Apr 22, 2026
@cmeans cmeans added the QA Active QA is actively reviewing; Dev should not push changes label Apr 22, 2026
@github-actions github-actions Bot removed the Ready for QA Dev work complete — QA can begin review label Apr 22, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

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

QA review — PR #356 (round 2)

Head: eb5c7270 (unchanged — body-only edit). CI rollup carries over from round 1: all green.

Round-1 finding resolution

Finding Resolution
PR body scope claim CHANGELOG.md (+3, -1) vs actual (+4, -1) ✅ Checkbox #4 updated to CHANGELOG.md (+4, -1) and pyproject.toml (+1, -1). My round-1 mention of "Summary paragraph" was incorrect — the Summary uses a narrative description, not explicit line counts, so the checkbox was the only place that needed editing. Fix is complete.

Re-verification

Step Result
PR body diff vs round 1 ✅ Only line 47 (checkbox #4) changed. All other body content identical.
Actual git diff --shortstat origin/main..origin/release/v0.18.2 -- CHANGELOG.md 1 file changed, 4 insertions(+), 1 deletion(-) — now matches the body.
Head SHA unchanged eb5c7270 — no code change, so CI results carry forward as valid.
CI rollup ✅ All checks still green (same run as round 1).

Findings

None.

Verdict

Ready for QA Signoff — round-1 finding resolved, no new issues, release-mechanics shape verified.

Awaiting maintainer to apply QA Approved.

@cmeans
Copy link
Copy Markdown
Owner

cmeans commented Apr 22, 2026

QA audit — round 2. Transitioning label to Ready for QA Signoff.

Round-1 finding (PR body scope-count off-by-one) resolved — checkbox #4 now reads CHANGELOG.md (+4, -1) and pyproject.toml (+1, -1), matching reality. Head SHA unchanged (eb5c7270); CI results carry forward from round 1 (all green).

Zero findings this round. Awaiting maintainer to apply QA Approved.

@cmeans cmeans added Ready for QA Signoff QA passed — ready for maintainer final review and merge and removed QA Active QA is actively reviewing; Dev should not push changes labels Apr 22, 2026
Copy link
Copy Markdown
Owner

@cmeans cmeans left a comment

Choose a reason for hiding this comment

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

LGTM

@cmeans cmeans added QA Approved Manual QA testing completed and passed and removed Ready for QA Signoff QA passed — ready for maintainer final review and merge labels Apr 22, 2026
@cmeans-claude-dev cmeans-claude-dev Bot merged commit 1208376 into main Apr 22, 2026
58 checks passed
@cmeans-claude-dev cmeans-claude-dev Bot deleted the release/v0.18.2 branch April 22, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Approved Manual QA testing completed and passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant