Skip to content

chore(release): prepare 0.6.2 and clear the docs-versioning backlog - #715

Merged
devops-thiago merged 7 commits into
mainfrom
release/prepare-v0.6.2
Aug 14, 2026
Merged

chore(release): prepare 0.6.2 and clear the docs-versioning backlog#715
devops-thiago merged 7 commits into
mainfrom
release/prepare-v0.6.2

Conversation

@devops-thiago

@devops-thiago devops-thiago commented Aug 14, 2026

Copy link
Copy Markdown
Owner

What type of PR is this?

  • 📝 Documentation
  • 🏗️ CI/CD

Description

Prepares the 0.6.2 release and clears the docs-versioning backlog that has now slipped four releases
running.

Version and changelog. pom.xml moves from 0.6.2-SNAPSHOT to 0.6.2, and [Unreleased]
becomes [0.6.2] — 2026-08-14. The section covers what a 0.6.1 user gains: the refused-review
handling (#704), delimiter-aware span stripping in the decline re-check (#697), mention triggers
built from the configured bot login (#698), four further injection-sink floor defeaters (#696), and
the release workflow failing loudly when the bump PR cannot be opened (#11). The SonarCloud pass on
main is behaviour-neutral and carries no entry.

A Dependencies section records the two bumps merged to main after this branch was cut: the Quarkus
platform 3.38.0 → 3.38.1 (#706) and actions/attest-build-provenance 4.1.1 → 4.2.2 (#708). Both are
merged in here, so the release builds on the same versions main is on. #707 (maven-minor-patch) is
still open and is not included; if you want it in 0.6.2, merge it and say so and I will add the
entry and re-merge.

Docs freeze, twice. versions.json read current: v0.6.0 with archives stopping at 0.5.0, while
v0.6.1 was already released. Both 0.6.0 and 0.6.1 shipped without a freeze, so both are taken here.
This is the third and fourth slip, after 0.4.0 was missed at the 0.5.0 cut and 0.5.0 at the 0.6.0 cut.

Because archive-docs-version.mjs expands the include markers at archive time, each snapshot comes
from its own tag rather than the working tree: README, docs/, CONTRIBUTING.md and the docs pages
restored to v0.6.0, archived, restored to v0.6.1, archived, then returned to the live tree.

One thing worth knowing: the doc sources are byte-identical between v0.6.0 and v0.6.1, so the two
archives hold the same nine pages. That is correct rather than duplicated work — both are released
versions and both belong in the picker — and it is why the 0.6.1 snapshot carries no
docs/RELEASING.md, which arrived with #208 after the tag. Neither restore resurrected a deleted
file, unlike the 0.4.0 archive.

current.label moves to v0.6.2.

Release-triggered docs deploys now work. The github-pages environment permitted only main, so
the Docs workflow's release: published trigger — which runs against the tag ref — failed on every
release. v0.6.0's deploy failed twice with:

Tag "v0.6.0" is not allowed to deploy to github-pages due to environment protection rules.

and was worked around by dispatching from main, which publishes main's docs rather than the
release's and contradicts the workflow's stated design ("Live site tracks GitHub Releases only"). A
v* tag policy has been added alongside the existing main branch rule, so the next release deploys
itself:

branch: main
tag: v*

Both of these were undocumented, which is a large part of why the freeze slipped four times running.
docs/RELEASING.md now carries them: the freeze as a named step in the release checklist, with the
commands and the reason the snapshot has to come from the outgoing tag, and the github-pages tag
policy with the error it produces and the command to inspect it.

Related Issues

Part 1 of #11 (the bump PR failing loudly) shipped in #208; this carries its changelog entry.

How Has This Been Tested?

  • Unit tests

  • Manual testing

  • ./mvnw -B clean testTests run: 3248, Failures: 0, Errors: 0, Skipped: 0, building
    thrillhousebot 0.6.2

  • ./mvnw -B clean compile spotbugs:check spotless:checkBugInstance size is 0

  • npm ci && npm run build in website/93 pages (up from 75; the two archives add 18), all
    internal links valid

  • Archive content verified in both directions: docs/RELEASING.md is absent from the 0.6.1 snapshot
    and present in the live tree; nine pages in each archive with matching assets and version metadata

  • git status after the tag restores showed nothing outside the new archive directories and
    versions.json

No production code changes.

Checklist

  • My code follows the project's coding standards
  • I have performed a self-review of my own code

@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@codecov

codecov Bot commented Aug 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@thrillhousebot

thrillhousebot Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

🤖 ThrillhouseBot PR Summary

What this PR does

Cuts the 0.6.2 release and clears the docs-versioning backlog: the changelog's [Unreleased] entries move into a dated [0.6.2] section with a new Dependencies subsection, the pom version moves to 0.6.2, and the website freezes v0.6.0 and v0.6.1 by archiving their nine byte-identical docs pages with versioned sidebars, assets and versions.json entries (current label → v0.6.2). Also adds .claude/ to .gitignore as local tooling.

Description vs. Implementation

No mismatch found between the PR description and the change.

Changes Overview

  • Files changed: 30
  • Lines added: +2933
  • Lines removed: -6

Changed Files

File Change Summary
.gitignore Modified Ignores the local .claude/ tooling directory.
CHANGELOG.md Modified Cuts [0.6.2] — 2026-08-14 from [Unreleased]: #11 bump-fails-loudly entry under Changed, four reworded Fixed entries (#704/#697/#698/#696), new Dependencies section (#706, #708).
website/src/assets/0.6.0/icon.png Added Not summarized — no model summary for this file
website/src/assets/0.6.0/live-streaming.png Added Not summarized — no model summary for this file
website/src/assets/0.6.0/pr-approval.png Added Not summarized — no model summary for this file
website/src/assets/0.6.1/icon.png Added Not summarized — no model summary for this file
website/src/assets/0.6.1/live-streaming.png Added Not summarized — no model summary for this file
website/src/assets/0.6.1/pr-approval.png Added Not summarized — no model summary for this file
website/src/content/docs/0.6.0/architecture.md Added Archived architecture/request-flow overview, byte-identical to the 0.6.1 copy.
website/src/content/docs/0.6.0/commands.md Added Archived comment-command reference; Access section contradicts the resolved-directive paragraph.
website/src/content/docs/0.6.0/comparison.md Added Not summarized — no model summary for this file
website/src/content/docs/0.6.0/configuration.md Added Archived configuration reference (env vars + defaults), byte-identical to the 0.6.1 copy.
website/src/content/docs/0.6.0/contributing.md Added Archived contributor guide (setup, CI bar, dual-gate policy), byte-identical to the 0.6.1 copy.
website/src/content/docs/0.6.0/feedback.md Added Archived finding-feedback data model and retention page, byte-identical to the 0.6.1 copy.
website/src/content/docs/0.6.0/getting-started.md Added Archived onboarding guide (GitHub App setup, .env, Docker Compose), byte-identical to 0.6.1.
website/src/content/docs/0.6.0/index.md Added Archived version landing page with feature list and dashboard screenshots, byte-identical to 0.6.1.
website/src/content/docs/0.6.0/providers.md Added Not summarized — no model summary for this file
website/src/content/docs/0.6.1/architecture.md Added Archived architecture/request-flow overview, byte-identical to the 0.6.0 copy.
website/src/content/docs/0.6.1/commands.md Added Archived comment-command reference, byte-identical to 0.6.0; carries the same Access-section contradiction.
website/src/content/docs/0.6.1/comparison.md Added Not summarized — no model summary for this file

…and 10 more file(s).

Risk Assessment

Risk Count
🔴 Critical 0
🟠 High 0
🟡 Medium 0
🔵 Low 1

Previous Findings Status

Status Count
✅ Resolved 0
⚠️ Still present 1
💬 Justified 0
🗂️ Superseded (targeted code left the diff) 2

Key Findings

  • LOW: Archived commands page contradicts itself on the manual-trigger allowlist scope (website/src/content/docs/0.6.0/commands.md:30)

⚠️ Required CI Checks Status

Some required checks are still pending or have failed:

Check Type Status Detail
test check-run ⏳ Pending -

Automated review by ThrillhouseBot. Reply with /review to re-run.

Comment thread .claude/workflows/dogfood-pr-audit.js Outdated
thrillhousebot[bot]

This comment was marked as outdated.

@thrillhousebot thrillhousebot Bot added the documentation Improvements or additions to documentation label Aug 14, 2026
Bumps the project version from 0.6.2-SNAPSHOT to 0.6.2 and turns the
[Unreleased] changelog section into [0.6.2], dated today.

The section covers what a 0.6.1 user gains: the refused-review handling from
#704, the delimiter-aware span stripping in the decline re-check, mention
triggers built from the configured bot login, four further injection-sink floor
defeaters, and the release workflow now failing loudly when the post-release
bump PR cannot be opened. The SonarCloud pass on main is behaviour-neutral and
carries no entry.

Also gitignores .claude/, a local tooling directory that does not belong in the
project tree.
versions.json listed current as v0.6.0 with archives stopping at 0.5.0, while
v0.6.1 was already released. Both releases shipped without a freeze, so both are
taken here: the third and fourth time this has slipped, after 0.4.0 at the 0.5.0
cut and 0.5.0 at the 0.6.0 cut.

The archive script expands the include markers at archive time, so each snapshot
is taken from its own tag's content rather than the working tree. README, docs/,
CONTRIBUTING.md and the docs pages were restored to v0.6.0, archived, restored
to v0.6.1, archived, then returned to the live tree.

Worth recording: the doc sources are byte-identical between v0.6.0 and v0.6.1,
so the two archives hold the same pages. That is correct rather than redundant,
since both are released versions and both belong in the picker, and it is why
the 0.6.1 snapshot carries no docs/RELEASING.md, which arrived with #208 after
the tag.

Nine pages per archive with matching assets and version metadata. Neither tag
restore resurrected a deleted file. current.label moves to v0.6.2.
@devops-thiago
devops-thiago force-pushed the release/prepare-v0.6.2 branch from 347d0df to 7eb95f7 Compare August 14, 2026 21:43
The Quarkus platform moved from 3.38.0 to 3.38.1 (#706) and
actions/attest-build-provenance from 4.1.1 to 4.2.2 (#708) after this branch was
cut. Both are merged in, so 0.6.2 releases on the same versions main carries.

#707 is still open and is not included.
@devops-thiago
devops-thiago force-pushed the release/prepare-v0.6.2 branch from 7eb95f7 to 01af832 Compare August 14, 2026 21:44
Comment thread website/src/content/docs/0.6.0/commands.md
The release doc described the tag-driven workflow and the bump-PR setting, but
said nothing about the two things that made the docs site wrong in production.

The docs freeze is manual. versions.json and the archived snapshots are not
produced by CI, so skipping the step leaves the site serving the new version's
pages under the old version's label. It has been missed at four cuts. The doc now
names it in the release checklist and gives the commands, including taking the
snapshot from the outgoing tag because the archive script expands the include
markers at archive time, and the git status check that catches a restore
resurrecting a file deleted since that tag.

The github-pages environment must allow the tag ref. The Docs workflow deploys on
release: published, which runs against the tag, so without a v* rule the deploy
fails at its last step and the only way to publish is to dispatch from main,
which serves main's docs and defeats the release-only trigger. The policy is now
recorded with the error it produces and the command to inspect it.
@thrillhousebot

Copy link
Copy Markdown
Contributor

🤖 ThrillhouseBot — changes since the last review

  • New findings this round: 1
  • Previous findings resolved: 0
  • Previous findings still open: 2

Comment thread website/src/content/versions/0.6.0.json
…idebar

The per-version sidebar is a hardcoded list in archive-docs-version.mjs kept in
sync with astro.config.mjs by comment alone, and it had drifted: the Finding
feedback page was added to the live sidebar but never here, so every archive
taken since carried eight entries against nine or more pages. The archived
feedback page was reachable only by direct URL in 0.4.0, 0.5.0, 0.6.0 and 0.6.1,
and 0.4.0 also hid its review-quality evaluation page.

The list now carries Finding feedback, and the drift cannot recur silently: a
page with no entry aborts the archive before anything is written, naming the
page, so the failure is a stopped release step rather than a quietly
unnavigable page. Entries whose page is absent from the snapshot are dropped
instead, which is what lets older versions archive without carrying entries for
pages that did not exist yet.

The four affected sidebars are repaired in place, with labels taken from each
page's own frontmatter title so an archive keeps the wording it shipped with.
0.4.0 and 0.5.0 predate the website, so there is no per-tag config to restore
them from.

Verified both directions: a page with no entry exits 1 and leaves no partial
archive, and a clean tree archives nine entries in sidebar order. Site builds
with all internal links valid.
The Access paragraph said every command but /help takes write access or a login
on THRILLHOUSEBOT_REVIEW_MANUAL_TRIGGER_ALLOWED_LOGINS, while the paragraph
below it said the allowlist does not extend to @thrillhousebot resolved. Both
sentences were on the same page and only the second matched the code, so a
maintainer reading the general one would expect an allowlisted login to be able
to clear a finding.

The code splits the two paths cleanly. Every slash command goes through
CommentCommandService.authorized to ManualReviewAuthorizer, which admits write
access or an allowlisted login. The resolved directive goes through
MaintainerReplyService to FollowUpAnalyzer.mayHoldWriteAccess, which reads
author_association alone and never consults the allowlist;
clearDirectiveUnauthorizedAck exists precisely to tell an allowlisted commenter
that nothing will be cleared.

The config table was wrong in the other direction, describing the key as
permitting manual /review only. The allowlist gates /summary, /describe and
/changelog on the same path. Both entries now say the same thing: slash commands
yes, the directive no.

The archived 0.6.0 and 0.6.1 copies keep the old wording, since an archive
should read as the release shipped.
@sonarqubecloud

Copy link
Copy Markdown

@thrillhousebot

Copy link
Copy Markdown
Contributor

🤖 ThrillhouseBot — changes since the last review

  • New findings this round: 1
  • Previous findings resolved: 1
  • Previous findings still open: 2

@thrillhousebot thrillhousebot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ThrillhouseBot noted 1 lower-confidence item(s) under Things to double-check in the PR summary (not posted as inline threads):

  • LOW: Hand-added 0.4.0/0.5.0 sidebar entries reference pages not shown to exist in those snapshots (website/src/content/versions/0.4.0.json:28)
    The same PR that adds the archive script's new contract — "Entries whose page is absent from the snapshot are dropped, which is how older versions archive cleanly" (website/scripts/archive-docs-version.mjs) — hand-edits two script-owned version configs to ADD entries for pages that appear nowhere in the provided material: "Finding feedback" (slug feedback) was added to both 0.4.0.json and 0.5.0.json (line 28-30 in each), and "Review-quality evaluation" (slug review-eval) to 0.4.0.json (lines 39-42). Unlike the 0.6.0/0.6.1 archives, whose nine pages are all visible in this diff, no website/src/content/docs/0.4.0/feedback.md, 0.5.0/feedback.md, or 0.4.0/review-eval.md is shown to exist, and review-eval is not in the script's SIDEBAR either. If the snapshot directories lack these pages, the version picker for v0.4.0/v0.5.0 renders dead links, contradicting the PR's "all internal links valid" claim; if the pages exist, the backfill is correct. Verification request: list the committed snapshot dirs (git ls-tree -r v0.4.0 -- website/src/content/docs and the same for v0.5.0) and drop whichever entries have no matching page.

@devops-thiago
devops-thiago merged commit ec30e3f into main Aug 14, 2026
30 checks passed
@devops-thiago
devops-thiago deleted the release/prepare-v0.6.2 branch August 14, 2026 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant