Skip to content

chore(main): release 0.9.0#2178

Open
synthorg-repo-bot[bot] wants to merge 2 commits into
mainfrom
release-please--branches--main--components--synthorg
Open

chore(main): release 0.9.0#2178
synthorg-repo-bot[bot] wants to merge 2 commits into
mainfrom
release-please--branches--main--components--synthorg

Conversation

@synthorg-repo-bot
Copy link
Copy Markdown
Contributor

@synthorg-repo-bot synthorg-repo-bot Bot commented May 31, 2026

Highlights

AI-generated summary (model: openai/gpt-4.1-mini via GitHub Models). Commit-based changelog below.

What you'll notice

  • New conversational org interface enables group chat, agent invites, direct multi-channel acting, and concern routing.
  • Documentary mode allows running narrative-style organizational processes visually.
  • Mid-flight steering provides dynamic control during ongoing workflows.
  • Deliverable provenance receipts track origin and changes for outputs.

What's new

  • Learning loop feature supports provable improvement curves with continual finetuning.

Under the hood

  • Hardened capability validation layer to improve system security and integrity.
  • Modular architecture updates with import layering and architecture drift gates.
  • CI/CD improvements include branch-protection audit restoration and concurrency scoped to commit SHA.
  • Typeguard warnings activated across the codebase to catch type issues earlier.
  • Refined tooling argument boundaries and removed overly permissive type overrides.

🤖 I have created a release beep boop

0.9.0 (2026-06-03)

Features

Bug Fixes

  • ci: make auto-rollover dedup fail-closed and add merged-PR guard (#2193) (1536bd3)
  • repoint dead DeepSeek console link and exclude anti-bot host (#2191) (14ab4b5), closes #2189
  • scope stable finalize dev-sweep to superseded versions only (#2181) (dec70cb)

Refactoring

  • drain disallow_any_explicit override for synthorg.a2a (#2194) (6fdebd1)
  • drain disallow_any_explicit override for synthorg.providers (#2196) (68a6502)
  • drain disallow_any_explicit override for synthorg.research (#2192) (b4ac770)
  • drain explicit Any from synthorg.templates.* (#2195) (9804418)
  • EPIC #1987 capability-layer validation close-out fixes (#2208) (12f1bc8)
  • harden tool arg boundary and drain explicit Any from synthorg.tools (#2197) (3976ac3)
  • modularity capstone with import-layering and arch-drift gates (#2184) (3274cb4), closes #2050 #2046
  • operate-tier close-out (reachable red-team gate + reachability gate) (#2210) (2a28175), closes #1979 #1986

Tests

CI/CD

  • restore branch-protection audit to blocking and sweep orphaned suppressions (#2213) (02ae05c), closes #2201 #2202
  • scope preflight concurrency to sha so main pushes don't self-cancel (#2176) (3f7d782)
  • update apko lockfiles (#2187) (c540374)

Maintenance


This PR was generated with Release Please. See documentation.

@synthorg-repo-bot synthorg-repo-bot Bot requested a review from Aureliolo as a code owner May 31, 2026 08:13
@synthorg-repo-bot synthorg-repo-bot Bot added the autorelease: pending Release-please pending-release marker label May 31, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 31, 2026

Dependency Review

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

Scanned Files

None

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 31, 2026

Preview Deployment

URL: https://pr-2178.synthorg-pr-preview.pages.dev

Built from commit 33265e7

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 31, 2026

Merging this PR will not alter performance

✅ 54 untouched benchmarks


Comparing release-please--branches--main--components--synthorg (33265e7) with main (b010264)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (02ae05c) during the generation of this report, so b010264 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from b1ab7bc to 7e781b0 Compare May 31, 2026 16:37
@synthorg-repo-bot synthorg-repo-bot Bot temporarily deployed to cloudflare-preview May 31, 2026 16:38 Inactive
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from 7e781b0 to a9fc259 Compare May 31, 2026 19:49
@synthorg-repo-bot synthorg-repo-bot Bot temporarily deployed to cloudflare-preview May 31, 2026 19:51 Inactive
@synthorg-repo-bot synthorg-repo-bot Bot changed the title chore(main): release 0.8.10 chore(main): release 0.9.0 May 31, 2026
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from a9fc259 to 5c4d6d0 Compare May 31, 2026 20:01
@synthorg-repo-bot synthorg-repo-bot Bot temporarily deployed to cloudflare-preview May 31, 2026 20:03 Inactive
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from 5c4d6d0 to 04b6510 Compare May 31, 2026 21:00
@synthorg-repo-bot synthorg-repo-bot Bot temporarily deployed to cloudflare-preview May 31, 2026 21:02 Inactive
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch 5 times, most recently from 6b1b643 to 8db1a0b Compare June 1, 2026 20:28
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from 3f912a3 to 54c42d0 Compare June 1, 2026 21:08
Aureliolo added a commit that referenced this pull request Jun 1, 2026
…#2193)

## Summary

The Auto Rollover workflow opened a duplicate rollover PR (#2190, now
closed) for v0.9.0 even though the rollover for that version had already
merged (#2177) and release-please PR #2178 already targets 0.9.0.

### Root cause

The workflow re-runs on every push to main and decides "rollover needed"
from `last-stable-patch >= 9`, which stays true for the whole window
between the rollover merge and the 0.9.0 release (0.9.0 is not tagged
yet, so last stable is still `v0.8.9`). The only guard preventing a
repeat rollover PR in that window was:

```bash
if git log "${LAST_STABLE}..HEAD" --format=%B | grep -qE '^Release-As:'; then ... skip
```

This **fails open**. On the 01 Jun 10:26 run, that run's checkout did
not materialise the `v0.8.9`<->HEAD connection, so the range came up
empty, `grep` matched nothing, the `if` was false, and the workflow fell
through to `needed=true`. Every other run since #2177 merged correctly
detected the trailer and skipped; only this one slipped through. The two
other safety nets did not cover the window: the release-please-body
guard matches a `Release-As:` trailer (the release PR body is a
changelog, no trailer), and the create-step open-PR guard was moot
because #2177 was already merged/closed.

## Fix

- **New primary guard (history-independent).** Query GitHub directly for
an already-merged-or-open rollover PR on `chore/auto-rollover-v<NEXT>`;
skip if one exists. This holds regardless of local git-history
completeness, which is what failed before. The branch name carries the
version, so a merged `v0.(X+1).0` rollover never suppresses the next
version's rollover; a CLOSED-not-merged PR (manual cancel) is
intentionally not a skip.
- **Git-log guard now fails closed.** Capture `git log` into a variable
and skip the run if it errors, instead of an inline `git log | grep`
that conflated a `git log` failure with a genuine no-match under `set -o
pipefail`. A missed rollover self-heals on the next push to main; a
spurious PR does not.
- Kept the release-please-body guard; removed the now-duplicate
`NEXT_VERSION` computation.
- Updated `docs/reference/claude-reference.md` (was "three skip guards";
now four + fail-closed note) and tightened the new workflow comments to
present-tense rationale.

## Test plan

- `actionlint`, `zizmor`, `yamllint`: clean on the workflow.
- `vale` + `lychee`: clean on the doc.
- Verified locally that #2177's `Release-As: 0.9.0` trailer is an
ancestor of the head that opened #2190 and that the range-grep matches
with full history present, confirming the bug is the checkout-history
edge plus the fail-open guard, not a logic error in the trailer match.
- Walked all five auto-rollover runs since #2177 merged: four skipped
correctly, only the 10:26 run fell through.

## Review coverage

Pre-reviewed by 3 agents (infra-reviewer, docs-consistency,
comment-quality-rot). All valid findings addressed: comment hygiene
(dropped incident/migration framing and a stale issue ref), and the
"three skip guards" doc drift. The infra reviewer confirmed the shell
idioms (`if ! VAR=$(...)`, `printf '%s'`), the `gh pr list` jq filter,
the least-privilege token/permissions, and the `NEXT_VERSION` move are
correct, and that the `gh pr list` call fails closed (a GitHub API
outage aborts the step into the existing failure tracker rather than
risking a duplicate).
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch 12 times, most recently from bd7fa86 to f9ad9a2 Compare June 3, 2026 21:39
@synthorg-repo-bot synthorg-repo-bot Bot force-pushed the release-please--branches--main--components--synthorg branch from 61e8f55 to 33265e7 Compare June 3, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autorelease: pending Release-please pending-release marker

Projects

None yet

0 participants