fix(release): strip "Reborn" codename from 1.0.0-rc.1 release + fix MSI blocker - #6383
Conversation
…escription
Removes the internal "Reborn" codename from the two things a user sees on
the 1.0.0-rc.1 release: the changelog release notes and the package
description. The rearchitecture framing (ground-up rebuild, ironclaw-legacy,
v1 monolith) stays — only the codename is dropped.
The Cargo.toml description change also unblocks the release: cargo-dist's
`plan` step failed because the package description ("Standalone IronClaw
Reborn binary") no longer matched the committed wix/main.wxs Description
string. Reverting the description to the canonical tagline makes the two
match again, so the MSI generator no longer reports an out-of-date template.
IRONCLAW_REBORN_HOME is left as-is — it is a config env var users type
verbatim, not marketing copy.
Docs/metadata only. No code logic touched.
🔎 IronLoop Review StatusHead: Current reviewers:
Reviewer summaries
Recent activity
Available commands
Run metadataAdmission: webhook accepted the request and IronLoop persisted reviewer state before this projection. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the CHANGELOG.md and Cargo.toml files to replace references to the internal codename 'Reborn' with more descriptive language, such as 'rearchitected' and a detailed description of the application's capabilities. There are no review comments, and I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b06e4ef118
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| **The `ironclaw` binary is now the rearchitected CLI.** The v1 monolith now | ||
| builds as the `ironclaw-legacy` binary and is no longer published; 1.0.0-rc.1 | ||
| publishes the new `ironclaw` binary only. |
There was a problem hiding this comment.
Strip remaining codename mentions from release notes
Because this change is meant to remove the user-facing Reborn codename from the 1.0.0-rc.1 release notes, the edited intro is still incomplete: the same release section still contains prose such as “standalone Reborn binary” on line 80, “Reborn WebUI” on line 102, and “canonical Reborn ironclaw package” on line 111. A user reading the itemized notes will still see the codename, so the release-surface cleanup needs to cover those remaining entries too.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
⚠️ IronLoop Review: reviewer
Review at a glance
| Verdict | Blocking | Notes | Inline | Head |
|---|---|---|---|---|
| 0 | 1 | 1 | b06e4ef11854 |
Head: b06e4ef11854f477e75ff1b97be27b3b4b2bfc77
Next: Human review or validation is required before merging.
Run details
Status: Current
Needs human: no
Needs validation: yes
Summary
The MSI metadata now matches the checked-in WiX description, but the release notes still expose the Reborn codename. The required cargo-dist release-plan validation could not run because neither cargo nor cargo-dist is installed in this environment.
Findings
Blocking: 0 / Notes: 1
Non-blocking notes (1)
1. 💬 [MEDIUM] Release notes still expose the Reborn codename
Location: CHANGELOG.md:79-80
The stated goal is no user-facing Reborn codename, but the published notes still use (reborn) labels and call this the “standalone Reborn binary” here. Further user-visible occurrences remain in the Fixed, Changed, and CI/Release sections. Remove or rename those labels too; IRONCLAW_REBORN_HOME can remain as the explicitly documented configuration-variable exception.
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloopai review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloopai reviewwhen the fix may affect multiple areas.
| **The `ironclaw` binary is now the Reborn CLI.** The v1 monolith now builds as | ||
| the `ironclaw-legacy` binary and is no longer published; 1.0.0-rc.1 publishes | ||
| the Reborn `ironclaw` binary only. | ||
| **The `ironclaw` binary is now the rearchitected CLI.** The v1 monolith now |
There was a problem hiding this comment.
Removing the intro references is incomplete: the published notes below still contain (reborn) labels, “standalone Reborn binary”, and “Reborn WebUI”. Please remove or rename those user-facing codename references as well (while retaining the IRONCLAW_REBORN_HOME configuration variable).
…c.1 (nearai#7108) * fix(webui): stop WebChat 'Disconnected' lockout (forward-port of nearai#6592) Forward-ports PR nearai#6592 from release-fix-1.0.0-rc.1, which shipped in 1.0.0 but was never merged back to main. main forked from the release branch at 40ae720, so none of this fix reached the trunk. Reconciled by hand rather than cherry-picked: main's SseCapacity has since grown `try_acquire_ordered` / `SseAcquireResult` (Acquired / AtCapacity / StaleGeneration) for browser-tab stream generations, which the release branch never had. Backend: - webui_rate_limit: `mark_rate_limit_refundable` marks a handler's own 429 as refundable via a response extension (server-side-only, stripped before returning); `enforce_rate_limit` refunds the charge through `refund_charge`. Refunding is keyed off that explicit marker, never bare HTTP 429 — turn-submission admission-control 429s must keep draining budget during the overload they signal. - `Window` carries a generation token minted on every insert/reset; `refund_charge` validates it instead of `window_start`, which is only second-resolution and can collide after an LRU eviction + reinsert. - SseCapacity tracks a per-caller `rejected_streak`; only the first REJECTION_REFUND_LIMIT consecutive rejections while saturated are refundable, so a pinned caller cannot flood free 429s. Cap-zero flows through the same accounting instead of short-circuiting. - `stream_events` and `stream_events_ws` both mark their capacity 429 refundable. A stale-generation upgrade stays non-refundable. Frontend: - chat.tsx: `handleSend` closed over `activeThreadId` at creation time, so concurrent landing-composer sends each navigated their own thread, flipping the URL and tearing down/reopening the single SSE stream. An empty-thread cycle counter (bumped on truthy->falsy transitions of activeThreadId and by the winning send) admits exactly one navigation. Regression coverage: - webui_rate_limit_refund_test.rs: refund/no-refund through the real middleware, plus generation-token no-op cases. - webui_rate_limit_router_contract_test.rs: the real stream_events and stream_events_ws handlers behind the real enforce_rate_limit and a real SseCapacity, including a real-socket WS upgrade and the burst-cutoff cases past REJECTION_REFUND_LIMIT. - sse_capacity: streak-limit and streak-reset cases. - chat.test.ts: the three concurrent-send navigation races, with a positional-ref harness so refs persist across simulated rerenders. All three router-contract tests and all three chat.test.ts tests were confirmed to fail with the wiring disabled. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * ci: run the full Reborn test/E2E gates on release-branch PRs (forward-port of nearai#6537) Forward-ports PR nearai#6537 from release-fix-1.0.0-rc.1. A release-blocker fix opened against a frozen candidate has to clear the same deterministic Reborn suite and E2E lanes as a PR into main, or an rc is cut from code the gates never saw. Adds `release/*` alongside the original `release-fix-*` so the weekly cut named in docs/internal/weekly-release-strategy.md (`release/YYYY-MM-DD`) is covered too. Adding a pull_request trigger does not violate the "no deterministic failure may be main-only" rule in .github/workflows/README.md: the merge queue's shape is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(changelog): record the shipped 1.0.0 release and drop the "Reborn" codename main forked from release-fix-1.0.0-rc.1 at 40ae720, so neither release tag's commit is on the trunk and CHANGELOG.md has no [1.0.0] section at all — the shipped release is unrecorded here. - Adds the [1.0.0] - 2026-07-27 section verbatim from the commit tagged ironclaw-v1.0.0 (e3a0752, PR nearai#6736), so the trunk changelog matches what was actually published. - Applies PR nearai#6383's codename scrub to [1.0.0-rc.1]: the internal "Reborn" name is dropped from the three places a user reads it. The rearchitecture framing stays; only the codename goes. nearai#6383's Cargo.toml half is already on main, so only the prose is ported. cargo-dist derives the GitHub Release body from this file, which is why the section ordering and headings matter beyond the repo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * chore(release): bump ironclaw to 1.1.0-rc.1 Cuts the first release candidate since 1.0.0. main has been sitting at 1.0.0-rc.1 because the 1.0.0 bump only ever landed on release-fix-1.0.0-rc.1; the preceding commit records that release, and this one moves the trunk forward. 1.1.0 rather than 1.0.1: 26 feat commits landed in this window (custom MCP server registration, IronHub install, durable cross-channel attachments, Slack slash commands, memory-as-extension, the opt-in sandbox lane). Renames [Unreleased] to [1.1.0-rc.1] and fills in the ~118 user-facing commits since the fork point that the section did not yet cover, grouped under Added / Changed / Fixed / Performance / Removed. Anything shipped unwired or opt-in says so. Merging this to main makes release-plz create the ironclaw-v1.1.0-rc.1 tag, which fires the cargo-dist publisher in ironclaw-release.yml: seven targets, shell/PowerShell/MSI installers, a GitHub prerelease (the version suffix sets --prerelease), and the nearaidev/ironclaw Docker image. cargo-dist derives the Release body from CHANGELOG.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…c.1 (nearai#7108) * fix(webui): stop WebChat 'Disconnected' lockout (forward-port of nearai#6592) Forward-ports PR nearai#6592 from release-fix-1.0.0-rc.1, which shipped in 1.0.0 but was never merged back to main. main forked from the release branch at 40ae720, so none of this fix reached the trunk. Reconciled by hand rather than cherry-picked: main's SseCapacity has since grown `try_acquire_ordered` / `SseAcquireResult` (Acquired / AtCapacity / StaleGeneration) for browser-tab stream generations, which the release branch never had. Backend: - webui_rate_limit: `mark_rate_limit_refundable` marks a handler's own 429 as refundable via a response extension (server-side-only, stripped before returning); `enforce_rate_limit` refunds the charge through `refund_charge`. Refunding is keyed off that explicit marker, never bare HTTP 429 — turn-submission admission-control 429s must keep draining budget during the overload they signal. - `Window` carries a generation token minted on every insert/reset; `refund_charge` validates it instead of `window_start`, which is only second-resolution and can collide after an LRU eviction + reinsert. - SseCapacity tracks a per-caller `rejected_streak`; only the first REJECTION_REFUND_LIMIT consecutive rejections while saturated are refundable, so a pinned caller cannot flood free 429s. Cap-zero flows through the same accounting instead of short-circuiting. - `stream_events` and `stream_events_ws` both mark their capacity 429 refundable. A stale-generation upgrade stays non-refundable. Frontend: - chat.tsx: `handleSend` closed over `activeThreadId` at creation time, so concurrent landing-composer sends each navigated their own thread, flipping the URL and tearing down/reopening the single SSE stream. An empty-thread cycle counter (bumped on truthy->falsy transitions of activeThreadId and by the winning send) admits exactly one navigation. Regression coverage: - webui_rate_limit_refund_test.rs: refund/no-refund through the real middleware, plus generation-token no-op cases. - webui_rate_limit_router_contract_test.rs: the real stream_events and stream_events_ws handlers behind the real enforce_rate_limit and a real SseCapacity, including a real-socket WS upgrade and the burst-cutoff cases past REJECTION_REFUND_LIMIT. - sse_capacity: streak-limit and streak-reset cases. - chat.test.ts: the three concurrent-send navigation races, with a positional-ref harness so refs persist across simulated rerenders. All three router-contract tests and all three chat.test.ts tests were confirmed to fail with the wiring disabled. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * ci: run the full Reborn test/E2E gates on release-branch PRs (forward-port of nearai#6537) Forward-ports PR nearai#6537 from release-fix-1.0.0-rc.1. A release-blocker fix opened against a frozen candidate has to clear the same deterministic Reborn suite and E2E lanes as a PR into main, or an rc is cut from code the gates never saw. Adds `release/*` alongside the original `release-fix-*` so the weekly cut named in docs/internal/weekly-release-strategy.md (`release/YYYY-MM-DD`) is covered too. Adding a pull_request trigger does not violate the "no deterministic failure may be main-only" rule in .github/workflows/README.md: the merge queue's shape is unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(changelog): record the shipped 1.0.0 release and drop the "Reborn" codename main forked from release-fix-1.0.0-rc.1 at 40ae720, so neither release tag's commit is on the trunk and CHANGELOG.md has no [1.0.0] section at all — the shipped release is unrecorded here. - Adds the [1.0.0] - 2026-07-27 section verbatim from the commit tagged ironclaw-v1.0.0 (e3a0752, PR nearai#6736), so the trunk changelog matches what was actually published. - Applies PR nearai#6383's codename scrub to [1.0.0-rc.1]: the internal "Reborn" name is dropped from the three places a user reads it. The rearchitecture framing stays; only the codename goes. nearai#6383's Cargo.toml half is already on main, so only the prose is ported. cargo-dist derives the GitHub Release body from this file, which is why the section ordering and headings matter beyond the repo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * chore(release): bump ironclaw to 1.1.0-rc.1 Cuts the first release candidate since 1.0.0. main has been sitting at 1.0.0-rc.1 because the 1.0.0 bump only ever landed on release-fix-1.0.0-rc.1; the preceding commit records that release, and this one moves the trunk forward. 1.1.0 rather than 1.0.1: 26 feat commits landed in this window (custom MCP server registration, IronHub install, durable cross-channel attachments, Slack slash commands, memory-as-extension, the opt-in sandbox lane). Renames [Unreleased] to [1.1.0-rc.1] and fills in the ~118 user-facing commits since the fork point that the section did not yet cover, grouped under Added / Changed / Fixed / Performance / Removed. Anything shipped unwired or opt-in says so. Merging this to main makes release-plz create the ironclaw-v1.1.0-rc.1 tag, which fires the cargo-dist publisher in ironclaw-release.yml: seven targets, shell/PowerShell/MSI installers, a GitHub prerelease (the version suffix sets --prerelease), and the nearaidev/ironclaw Docker image. cargo-dist derives the Release body from CHANGELOG.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Targets the isolated
release-fix-1.0.0-rc.1branch (based on 40ae720, the changelog commit — deliberately not main tip, which carries the v1-deletion refactors #6374/#6375 we don't want in this release).Why
The first tag push (
ironclaw-v1.0.0-rc.1→ 40ae720) failed at cargo-dist'splanstep:The package
descriptionhad been changed to "Standalone IronClaw Reborn binary" but the committed MSI template still carried the classic tagline, so the generator refused to build. Separately, the team wants the release framed with no user-facing "Reborn" codename.Changes
Both goals, one fix:
crates/ironclaw_reborn_cli/Cargo.toml— description reverted to"Secure personal AI assistant that protects your data and expands its capabilities on the fly". Now matcheswix/main.wxsbyte-for-byte →planpasses. Also removes "Reborn" from the MSI/package metadata a user sees.CHANGELOG.md## [1.0.0-rc.1]section — the four prose "Reborn" codename references dropped. The rearchitecture framing stays (ground-up rebuild,ironclaw-legacy, v1 monolith).IRONCLAW_REBORN_HOMEis left verbatim — it's a config env var users type exactly, not marketing copy.No code logic touched. Capability claims, counts, and the data-safety "fresh install / no in-place upgrade" warning are unchanged.
After merge
Delete the failed tag, re-tag this branch tip, push — clean release from 40ae720 + these fixes, none of the main-tip refactors. The de-Reborn changelog + description live only on this release branch; a follow-up PR reconciles main separately.
🤖 Generated with Claude Code