Skip to content

Release: prepare v1.5.1 reliability candidate - #1061

Merged
jeffhuber merged 2 commits into
mainfrom
codex/1056-v151-release
Sep 20, 2026
Merged

jeffhuber merged 2 commits into
mainfrom
codex/1056-v151-release

Conversation

@jeffhuber

Copy link
Copy Markdown
Contributor

Problem and resulting behavior

The five v1.5.1 reliability revisions are merged, but the public release identity, candidate workflow, install docs, and qualification contract still target v1.5.0. This PR prepares one immutable v1.5.1 candidate from the eventual merge SHA and makes current-facing guidance consistently use the v1.5.1 path.

It records the v1.5.1 release notes, qualification contract, and ordered candidate-first publication runbook; updates package and public documentation identity to 1.5.1; binds CI and the candidate workflow to the v1.5.1 rehearsal; and keeps Slack telemetry explicitly scheduled for v1.6.0.

Part of #1056 and the #1050 roadmap epic.

Included reliability revisions

Validation

  • pytest -q: 5,046 passed, 18 skipped, 5 stale v1.5.0 assertions identified and corrected; the affected release/documentation suite then passed with 444 tests and 1,288 subtests
  • Board service suite: 115 tests and 11 subtests passed after installing the branch as 1.5.1
  • Ruff and git diff --check: passed
  • release readiness: 22/22 checks passed
  • local exact-commit wheel/sdist build and integrity verification: passed
  • v1.5.1 offline lifecycle rehearsal: passed fresh install, explicit Slack setup, Graphify doc_ref, 1.4.2 upgrade, rollback, and uninstall state preservation

Live Slack evidence, the bounded hosted Board canary, exact merge-SHA candidate qualification, PyPI publication, GitHub Release creation, and the final codemower.com upload remain post-merge release gates.

@jeffhuber jeffhuber added builder:codex Code Mower generated label needs-claude-audit labels Sep 20, 2026
Comment thread CHANGELOG.md

## 1.5.1 — release

Cross-provider installation, audit provenance, safe initialization, remote-observer diagnostics, and Board/status clarity. See [release notes](docs/v151-release-notes.md) and the [qualification contract](docs/v151-qualification.md).

@gitar-bot gitar-bot Bot Sep 20, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Bug: CHANGELOG rewrites already-published v1.5.0 release text

CHANGELOG.md's ## 1.5.1 — release heading is new, but the diff also edits the pre-existing ## 1.5.0 — release section, changing "remain v1.5.1. Audit publication binds the current head reliably (#1025)." to "remain v1.6.0." This section documents the already-published v1.5.0 release. The project's own rule, stated in docs/pypi-release.md ("Editing main cannot repair that tagged README or the README embedded in its package. Never rewrite a published tag to correct the wording."), and echoed in README.md's example about immutable candidate text, forbids retroactively editing text that shipped in a prior release. Rewriting the v1.5.0 changelog entry to reflect a later roadmap decision (Slack telemetry deferred to v1.6.0 instead of v1.5.1) corrupts the historical record of what v1.5.0 actually stated at release time. The correct fix is to leave the v1.5.0 section's original wording untouched and only state the updated deferral target in the new v1.5.1 section/current-facing docs.

Revert the edit to the historical v1.5.0 entry and only reflect the v1.6.0 deferral in current-facing text (already updated in docs/current-state-and-roadmap.md and the new v1.5.1 release notes).:

- Explicit `slack setup` hosted manifest and redacted `slack doctor` (#1024).
  Default install remains Slack-free. Offline snapshots never prove live readiness.
  Basic private-workspace interaction only; telemetry/Board links and rich UX
  remain v1.5.1. Audit publication binds the current head reliably (#1025).

Was this helpful? React with 👍 / 👎

Comment thread docs/public-release-checklist.md Outdated
#1037 and its fixed Slack callback boundary. Follow the
the reviewed final release preparation PR. For v1.5.1 that head must include
the five reliability revisions tracked by #1050. Follow the
[immutable release text gate](pypi-release.md#immutable-release-text-gate-v150-onward):

@gitar-bot gitar-bot Bot Sep 20, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Quality: Stale #1037/v150 anchor left after v1.5.1 identity update

docs/public-release-checklist.md:143 was edited in this PR (from referencing #1037 to "the five reliability revisions tracked by #1050") but the accompanying link on the same line still points to pypi-release.md#immutable-release-text-gate-v150-onward, an anchor derived from a v1.5.0-era heading that no longer matches any heading text in docs/pypi-release.md (there is no heading that slugifies to immutable-release-text-gate-v150-onward). Since this exact paragraph was touched to update v1.5.0→v1.5.1 identity, the dangling anchor should have been corrected or removed in the same edit.

Point the link at the actual heading/anchor in pypi-release.md, or drop the anchor fragment and link to the file itself.:

[immutable release text gate](pypi-release.md):

Was this helpful? React with 👍 / 👎

@gitar-bot

gitar-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown

Note

Automatic reviews are paused because your team has used its included automatic processing for this billing period (headroom scales with your seat count). You can still comment "Gitar review" to run one anytime, and automatic reviews resume on their own by October 1. Add seats for more headroom.
Learn more

Code Review ⚠️ Changes requested 0 closed / 2 findings

🟡 Medium risk

Prepares v1.5.1 release identity, candidate workflow, documentation, and qualification contract but retroactively rewrites the already-published v1.5.0 changelog entry to defer Slack telemetry to v1.6.0, violating the project's immutability rule for prior releases. Leave the v1.5.0 section's original wording untouched and state the deferral only in v1.5.1 docs. Additionally, docs/public-release-checklist.md:143 contains a stale anchor reference (immutable-release-text-gate-v150-onward) that should be corrected alongside the identity update.

⚠️ Bug: CHANGELOG rewrites already-published v1.5.0 release text

📄 CHANGELOG.md:14-19

CHANGELOG.md's ## 1.5.1 — release heading is new, but the diff also edits the pre-existing ## 1.5.0 — release section, changing "remain v1.5.1. Audit publication binds the current head reliably (#1025)." to "remain v1.6.0." This section documents the already-published v1.5.0 release. The project's own rule, stated in docs/pypi-release.md ("Editing main cannot repair that tagged README or the README embedded in its package. Never rewrite a published tag to correct the wording."), and echoed in README.md's example about immutable candidate text, forbids retroactively editing text that shipped in a prior release. Rewriting the v1.5.0 changelog entry to reflect a later roadmap decision (Slack telemetry deferred to v1.6.0 instead of v1.5.1) corrupts the historical record of what v1.5.0 actually stated at release time. The correct fix is to leave the v1.5.0 section's original wording untouched and only state the updated deferral target in the new v1.5.1 section/current-facing docs.

Revert the edit to the historical v1.5.0 entry and only reflect the v1.6.0 deferral in current-facing text (already updated in docs/current-state-and-roadmap.md and the new v1.5.1 release notes).
- Explicit `slack setup` hosted manifest and redacted `slack doctor` (#1024).
  Default install remains Slack-free. Offline snapshots never prove live readiness.
  Basic private-workspace interaction only; telemetry/Board links and rich UX
  remain v1.5.1. Audit publication binds the current head reliably (#1025).
💡 Quality: Stale #1037/v150 anchor left after v1.5.1 identity update

📄 docs/public-release-checklist.md:143

docs/public-release-checklist.md:143 was edited in this PR (from referencing #1037 to "the five reliability revisions tracked by #1050") but the accompanying link on the same line still points to pypi-release.md#immutable-release-text-gate-v150-onward, an anchor derived from a v1.5.0-era heading that no longer matches any heading text in docs/pypi-release.md (there is no heading that slugifies to immutable-release-text-gate-v150-onward). Since this exact paragraph was touched to update v1.5.0→v1.5.1 identity, the dangling anchor should have been corrected or removed in the same edit.

Point the link at the actual heading/anchor in pypi-release.md, or drop the anchor fragment and link to the file itself.
[immutable release text gate](pypi-release.md):
🤖 Prompt for agents
Code Review: Prepares v1.5.1 release identity, candidate workflow, documentation, and qualification contract but retroactively rewrites the already-published v1.5.0 changelog entry to defer Slack telemetry to v1.6.0, violating the project's immutability rule for prior releases. Leave the v1.5.0 section's original wording untouched and state the deferral only in v1.5.1 docs. Additionally, docs/public-release-checklist.md:143 contains a stale anchor reference (`immutable-release-text-gate-v150-onward`) that should be corrected alongside the identity update.

1. ⚠️ Bug: CHANGELOG rewrites already-published v1.5.0 release text
   Files: CHANGELOG.md:14-19

   CHANGELOG.md's `## 1.5.1 — release` heading is new, but the diff also edits the pre-existing `## 1.5.0 — release` section, changing "remain v1.5.1. Audit publication binds the current head reliably (#1025)." to "remain v1.6.0." This section documents the already-published v1.5.0 release. The project's own rule, stated in docs/pypi-release.md ("Editing `main` cannot repair that tagged README or the README embedded in its package. Never rewrite a published tag to correct the wording."), and echoed in README.md's example about immutable candidate text, forbids retroactively editing text that shipped in a prior release. Rewriting the v1.5.0 changelog entry to reflect a later roadmap decision (Slack telemetry deferred to v1.6.0 instead of v1.5.1) corrupts the historical record of what v1.5.0 actually stated at release time. The correct fix is to leave the v1.5.0 section's original wording untouched and only state the updated deferral target in the new v1.5.1 section/current-facing docs.

   Fix (Revert the edit to the historical v1.5.0 entry and only reflect the v1.6.0 deferral in current-facing text (already updated in docs/current-state-and-roadmap.md and the new v1.5.1 release notes).):
   - Explicit `slack setup` hosted manifest and redacted `slack doctor` (#1024).
     Default install remains Slack-free. Offline snapshots never prove live readiness.
     Basic private-workspace interaction only; telemetry/Board links and rich UX
     remain v1.5.1. Audit publication binds the current head reliably (#1025).

2. 💡 Quality: Stale #1037/v150 anchor left after v1.5.1 identity update
   Files: docs/public-release-checklist.md:143

   docs/public-release-checklist.md:143 was edited in this PR (from referencing `#1037` to "the five reliability revisions tracked by #1050") but the accompanying link on the same line still points to `pypi-release.md#immutable-release-text-gate-v150-onward`, an anchor derived from a v1.5.0-era heading that no longer matches any heading text in docs/pypi-release.md (there is no heading that slugifies to `immutable-release-text-gate-v150-onward`). Since this exact paragraph was touched to update v1.5.0→v1.5.1 identity, the dangling anchor should have been corrected or removed in the same edit.

   Fix (Point the link at the actual heading/anchor in pypi-release.md, or drop the anchor fragment and link to the file itself.):
   [immutable release text gate](pypi-release.md):

Review coverage

Rules No rules evaluated

Functional validation Not enabled · Set up

Options

Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Claude audit (merge-authority lane)

Head SHA: 5b09cd91fa6739368122f185a2a004bc24813efb
Verdict: BLOCKED
Review details remain in the local audit artifact.
Publication workflow: .github/workflows/local-audit-publication.yml at 19e7b6eb1dd72939b18bd383da67976429e5fc86

@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Claude audit (merge-authority lane)

Head SHA: 3f06875f7df3207ae18756f30bfeaee5e27704c6
Verdict: PASS
Review details remain in the local audit artifact.
Publication workflow: .github/workflows/local-audit-publication.yml at 19e7b6eb1dd72939b18bd383da67976429e5fc86

@jeffhuber
jeffhuber enabled auto-merge (squash) September 20, 2026 08:58
@jeffhuber
jeffhuber merged commit e6fc0b1 into main Sep 20, 2026
18 checks passed
@jeffhuber
jeffhuber deleted the codex/1056-v151-release branch September 20, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

builder:codex Code Mower generated label claude-audit-done

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant