chore(release): 2.8.0#2095
Conversation
Reliability and maintenance release. Codex works with a ChatGPT OAuth login, the worktree GC no longer loses unmerged work or wedges after a crash, a new `worktrees unlock` command recovers a stuck GC lock, and the open code-scanning and Dependabot security surface is cleared. See docs/release-notes/v2.8.0.md.
Reviewer's GuidePrepares the 2.8.0 release by bumping the project version and adding detailed human-readable release notes documenting new features, fixes, and security/dependency updates. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Sonar insights (advisory, no merge-block)Snapshot of
Run This comment is a soft signal. The Sonar scan runs on push to |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdds v2.8.0 release notes covering worktree unlock behavior, Codex and worktree fixes, security and dependency updates, docs/community additions, and quality cleanups. Updates Changesv2.8.0 release update
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Hey - I've found 1 issue
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="docs/release-notes/v2.8.0.md" line_range="17" />
<code_context>
+- Worktree GC no longer loses unmerged agent work on a repository whose default branch is not `main`. The graveyard pre-check compared against a hardcoded `main`, so when `main` did not exist the check failed and was read as "nothing to preserve", letting a stale worktree be deleted with its unmerged commits. The base branch is now resolved from the repo default, and an inconclusive check preserves the branch to the graveyard instead of dropping it. (#2093)
</code_context>
<issue_to_address>
**suggestion (typo):** Consider adjusting the preposition in "preserves the branch to the graveyard" for clearer grammar.
For example, you could say "preserves the branch in the graveyard," which more clearly indicates the branch is retained rather than deleted.
```suggestion
- Worktree GC no longer loses unmerged agent work on a repository whose default branch is not `main`. The graveyard pre-check compared against a hardcoded `main`, so when `main` did not exist the check failed and was read as "nothing to preserve", letting a stale worktree be deleted with its unmerged commits. The base branch is now resolved from the repo default, and an inconclusive check preserves the branch in the graveyard instead of dropping it. (#2093)
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| - A run pinned to `--cli codex` no longer hands a Claude tier name to `codex exec -m` (Codex rejects `opus`/`sonnet`). For a non-Claude adapter the scheduler now substitutes that adapter's own default model when none is pinned, so the model recorded in the audit chain is the model that actually ran. | ||
| - The adapter detects a Codex OAuth session in `~/.codex/auth.json` (written by `codex login`) and only warns about a missing `OPENAI_API_KEY` when there is neither an API key nor an OAuth session. | ||
| - `bernstein demo --real` no longer crashes on its closing summary; it reads the task list from the real `/status` response shape. (#2086) | ||
| - Worktree GC no longer loses unmerged agent work on a repository whose default branch is not `main`. The graveyard pre-check compared against a hardcoded `main`, so when `main` did not exist the check failed and was read as "nothing to preserve", letting a stale worktree be deleted with its unmerged commits. The base branch is now resolved from the repo default, and an inconclusive check preserves the branch to the graveyard instead of dropping it. (#2093) |
There was a problem hiding this comment.
suggestion (typo): Consider adjusting the preposition in "preserves the branch to the graveyard" for clearer grammar.
For example, you could say "preserves the branch in the graveyard," which more clearly indicates the branch is retained rather than deleted.
| - Worktree GC no longer loses unmerged agent work on a repository whose default branch is not `main`. The graveyard pre-check compared against a hardcoded `main`, so when `main` did not exist the check failed and was read as "nothing to preserve", letting a stale worktree be deleted with its unmerged commits. The base branch is now resolved from the repo default, and an inconclusive check preserves the branch to the graveyard instead of dropping it. (#2093) | |
| - Worktree GC no longer loses unmerged agent work on a repository whose default branch is not `main`. The graveyard pre-check compared against a hardcoded `main`, so when `main` did not exist the check failed and was read as "nothing to preserve", letting a stale worktree be deleted with its unmerged commits. The base branch is now resolved from the repo default, and an inconclusive check preserves the branch in the graveyard instead of dropping it. (#2093) |
Review-bot acknowledgement summary
All must-address findings are resolved or acknowledged. |
|
bernstein doctor observe for PR #2095 ( sonar -- OK (project bernstein)
code-scanning -- WARN (2 open alert(s))
Skipped backends (credentials not configured)
See docs/observability/unified-doctor.md for backend setup notes. |
Cuts the 2.8.0 release.
pyproject.toml(and theuv.lockself-entry) from 2.7.0 to 2.8.0, which the auto-release gate keys on.docs/release-notes/v2.8.0.md.Highlights
bernstein worktrees unlockto inspect and recover a stuck GC lock, recorded as a tamper-evident audit event. (feat(worktrees): addworktrees unlockto recover a stuck GC lock #2094)mainrepos or wedges after a crash (fix(worktrees): preserve unmerged work on non-main repos and recover stale GC lock #2093).Minor bump because of the new feature. On merge, a green main run triggers auto-release to tag
v2.8.0and hand off to publish (PyPI, GHCR, GitHub Release).Summary by Sourcery
Cut the 2.8.0 release by bumping the package version and adding release notes for the new features, fixes, and security updates.
New Features:
bernstein worktrees unlockcommand for inspecting and recovering stuck GC locks with audit logging.Bug Fixes:
maindefault branches, and GC lock wedging after crashes.Enhancements:
Documentation:
Tests:
Summary by CodeRabbit
New Features
Bug Fixes
main.Security
Documentation