Skip to content

docs(changelog): reconcile [Unreleased] with what actually shipped#1256

Merged
willwashburn merged 5 commits into
mainfrom
claude/changelog-review-fixes-dfgj55
Jul 13, 2026
Merged

docs(changelog): reconcile [Unreleased] with what actually shipped#1256
willwashburn merged 5 commits into
mainfrom
claude/changelog-review-fixes-dfgj55

Conversation

@willwashburn

@willwashburn willwashburn commented Jul 13, 2026

Copy link
Copy Markdown
Member

Summary

The chore(release) automation appends a new ## [x.y.z] heading with raw commit subjects but never clears [Unreleased]. Over ~15 releases, curated entries piled up in [Unreleased] for features that had already shipped, while each version section got a thin auto-generated stub. The section had also grown two full sets of ### Added/Changed/Fixed/Removed headers and an internal contradiction about the default base URL.

Attribution was done by mapping every release to its actual commit range with git log (the repo has no tags — releases are only chore(release) commits).

  • Reduce [Unreleased] to the single genuinely-unreleased change (node up structured logging, Fleet node structured logging: capabilities registered and actions invoked #1237), verified against git commit ranges.
  • Rewrite [10.0.0] as the node-providers / broker-demotion release it actually is, including a proper Breaking Changes entry for the removal of the local /api/fleet/ws sidecar protocol and the POST /v1/nodes/:node/actions/:name/invoke URL change (the reason for the major bump, previously unrecorded).
  • Harvest the stranded rich descriptions into their real shipped releases (9.0.1–9.2.4 and 8.5.0–8.9.2), replacing thin stubs — e.g. cloud enroll + the node command group → 9.2.2, control-plane socket → 9.1.8, node-only-delivery hardening → 9.1.3, dashboard removal + its breaking/migration notes → 9.0.1, the @agent-relay/fleet control plane → 8.8.0.
  • Consolidate the 9.2.4 journal-lock churn (~20 fix commits + CI noise) into two impact-first bullets per the repo's changelog guidance.
  • Remove the duplicate section headers and the superseded gateway.relaycast.dev plugin-default entry that contradicted the cast.agentrelay.com migration.

Net +141 / −223 lines. A structural check confirms no duplicate or non-standard section headers, correct version ordering, and that the remaining gateway.relaycast.dev mentions are now chronologically consistent (default in 8.x → migrated in 9.1.0).

One judgment call: a handful of internal broker fixes that couldn't be pinned to an exact patch were attributed to the release where the feature landed (mostly 9.1.3), and a few low-value/uncertain stragglers were dropped (a Swift SDK split, a trivial SDK patch bump).

Test Plan

  • Tests added/updated — n/a (documentation only; no code changed)
  • Manual testing completed — ran a script asserting no duplicate/non-standard ### headers within any version, correct descending version order, and consistency of remaining base-URL references

Screenshots

🤖 Generated with Claude Code


Generated by Claude Code

Review in cubic

claude added 2 commits July 13, 2026 10:54
The release automation appends raw commit subjects under each new version
heading but never clears [Unreleased], so curated entries accumulated in
[Unreleased] for features that shipped across 8.5.0–10.0.0, while each release
section got a thin auto-generated stub. The section had also grown two full
sets of ### headers and an internal contradiction about the default base URL.

- Reduce [Unreleased] to the only genuinely unreleased change (node up
  structured logging, #1237), verified against git commit ranges.
- Rewrite [10.0.0] as the node-providers / broker-demotion release it is,
  including the breaking removal of the /api/fleet/ws sidecar protocol.
- Harvest the stranded rich descriptions down into their real shipped
  releases (9.0.1–9.2.4 and 8.5.0–8.9.2), replacing thin stubs and
  consolidating the 9.2.4 journal-lock churn into impact bullets.
- Remove duplicate section headers and the superseded gateway.relaycast.dev
  plugin-default entry that contradicted the cast.agentrelay.com migration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JFxLB2bdCMHffkrLPFdhEx
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JFxLB2bdCMHffkrLPFdhEx
@willwashburn willwashburn requested a review from khaliqgant as a code owner July 13, 2026 11:46
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9a6bb767-8176-4dfc-9164-96b91ab88f86

📥 Commits

Reviewing files that changed from the base of the PR and between 3bdcc33 and 74098b6.

📒 Files selected for processing (4)
  • .agentworkforce/trajectories/completed/2026-07/traj_8buyhdvq8fui.trace.json
  • .agentworkforce/trajectories/completed/2026-07/traj_8buyhdvq8fui/summary.md
  • .agentworkforce/trajectories/completed/2026-07/traj_8buyhdvq8fui/trajectory.json
  • CHANGELOG.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • CHANGELOG.md

📝 Walkthrough

Walkthrough

The changelog is revised across current and historical release sections to document CLI logging, node-provider, Fleet, placement, cloud-session, authentication, delivery, and plugin changes. Completed trajectory trace and summary records are added for the reconciliation task.

Changes

Changelog reconciliation

Layer / File(s) Summary
10.0.0 release notes
CHANGELOG.md
Documents node-provider behavior, CLI logging flags, Fleet changes, and broker sidecar removal.
8.8.x release notes
CHANGELOG.md
Expands placement, fleet-node, task-exit, evaluation, SDK, and authentication-related release notes.
Cloud and CLI configuration notes
CHANGELOG.md
Updates cloud-session, Grok authentication, local delivery, durable delivery, and plugin URL notes.
Completed trajectory records
.agentworkforce/trajectories/completed/2026-07/...
Adds trace, summary, and completion metadata for the changelog reconciliation workflow.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • AgentWorkforce/relay#1094: Reattributes and moves changelog entries from the Unreleased section into tagged release sections.

Suggested reviewers: khaliqgant

Poem

I’m a rabbit with notes in a row,
Hopping through releases as they grow.
Logs, Fleet, and cloud paths align,
Old entries now sit in their line.
The trace leaves a footprint neat—
Changelog work is complete!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main doc-only changelog reconciliation work.
Description check ✅ Passed The description matches the template with Summary, Test Plan, and Screenshots sections filled in.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/changelog-review-fixes-dfgj55

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 90ca71a372

ℹ️ 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".

"task": {
"title": "Reconcile CHANGELOG unreleased bloat"
},
"status": "active",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Complete or remove the leaked active trajectory

This commit finishes the changelog reconciliation but adds a trajectory under active/ with status: "active" and empty commits/filesChanged, so future trajectory/status scans will keep reporting this work as still in progress without a durable completed record of the decisions. Please complete/compact the trajectory (or omit this active artifact from the changelog commit) before landing it.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in c1cc9e4 — the trajectory is completed and now lives under .agentworkforce/trajectories/completed/2026-07/traj_8buyhdvq8fui/ with status: "completed" and its commits populated; the empty active/ stub is removed.


Generated by Claude Code

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request reconciles the CHANGELOG.md to clean up unreleased bloat and adds an active trajectory tracking file. The review feedback correctly points out that the 'Fixed' section in the changelog should be reordered to precede custom sections like 'Breaking Changes' and 'Migration Guidance' to adhere to the Keep a Changelog standard.

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.

Comment thread CHANGELOG.md Outdated
- Replace `agent-relay up --no-dashboard` with `agent-relay up --background`; remove `--port`/`--foreground` from `up` invocations; set `AGENT_RELAY_BROKER_PORT` in place of `AGENT_RELAY_DASHBOARD_PORT` to pin the broker port.
- Dashboard assets are no longer managed by `agent-relay uninstall`; delete any leftover `~/.agentworkforce/relay/dashboard` directory manually.

### Fixed

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.

medium

According to the Keep a Changelog standard, the ### Fixed section should be ordered alongside other standard sections (typically Added, Changed, Deprecated, Removed, Fixed, Security) before custom/additional sections like ### Breaking Changes and ### Migration Guidance.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in c1cc9e4 — the 9.0.1 section now orders Fixed before Breaking Changes / Migration Guidance.


Generated by Claude Code

@devin-ai-integration devin-ai-integration 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.

Devin Review found 2 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread CHANGELOG.md
Comment on lines 54 to +59
### Added

- Reflex syncs to relayhistory-cloud in-process via ai-hist SDK
- `agent-relay cloud enroll --token <ocl_node_enr_…>` redeems a one-time Cloud enrollment token and persists node credentials to `~/.agentworkforce/relay/fleet-enrollments.json` (0600); a later plain `agent-relay node up` then runs as the Cloud-managed node. The token is never printed.
- `agent-relay node up|down|status|metrics|tail`, `node agent …`, and `node workflow run|logs|sync` unify `local up` and `fleet serve` under one command group. `node up [--config <file>]` brings the current context's node online: the broker runs agents, and a project `agent-relay.{ts,…}` or `agent-relay.py` is served as a capability provider. A plain agent host needs no definition file.
- Reflex history sync runs in-process via the ai-hist SDK, syncing to relayhistory-cloud.
- Swift SDK (`AgentRelaySDK`, `packages/sdk-swift`): `AgentClient` gains `invokeAction(_:input:timeout:pollInterval:)` — invoke a relay action and await its output — plus `channelHistory(_:limit:before:)` and `dmHistory(with:limit:before:)` for reading channel and 1:1 DM message history as oldest-first `RelayChannelEvent`s.

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.

🟡 Swift SDK package split into a new importable module is silently dropped from the changelog

A user-visible "Added" entry about the Swift SDK being split into AgentRelayBrokerSDK is removed from the old [Unreleased] section (CHANGELOG.md:83 in the base) without being placed into any versioned release section, so Swift consumers lose the record of this structural change.

Impact: Swift SDK users checking the changelog won't see that broker orchestration moved to a separate AgentRelayBrokerSDK package they may need to import.

Dropped entry and reconciliation gap

The base [Unreleased] section at CHANGELOG.md:83 (base SHA) contained:

sdk-swift splits broker orchestration into AgentRelayBrokerSDK and adds hosted participant AgentRelaySDK APIs for workspace registration, channel/DM messaging, inbound events, and relay-routed AgentClient.registerAction(...) handlers.

This entry describes a new package name (AgentRelayBrokerSDK) that Swift consumers would import — a user-visible structural change. The PR moves other Swift SDK entries to 9.2.2 (e.g. AgentClient gains invokeAction at line 59) but this split entry is absent from every version section in the new file. The AGENTS.md changelog rules require "one short bullet per user-visible change" and only permit dropping "internal review notes, implementation backstory, release-only entries" — a new importable package is none of those.

Suggested change
### Added
- Reflex syncs to relayhistory-cloud in-process via ai-hist SDK
- `agent-relay cloud enroll --token <ocl_node_enr_…>` redeems a one-time Cloud enrollment token and persists node credentials to `~/.agentworkforce/relay/fleet-enrollments.json` (0600); a later plain `agent-relay node up` then runs as the Cloud-managed node. The token is never printed.
- `agent-relay node up|down|status|metrics|tail`, `node agent …`, and `node workflow run|logs|sync` unify `local up` and `fleet serve` under one command group. `node up [--config <file>]` brings the current context's node online: the broker runs agents, and a project `agent-relay.{ts,…}` or `agent-relay.py` is served as a capability provider. A plain agent host needs no definition file.
- Reflex history sync runs in-process via the ai-hist SDK, syncing to relayhistory-cloud.
- Swift SDK (`AgentRelaySDK`, `packages/sdk-swift`): `AgentClient` gains `invokeAction(_:input:timeout:pollInterval:)` — invoke a relay action and await its output — plus `channelHistory(_:limit:before:)` and `dmHistory(with:limit:before:)` for reading channel and 1:1 DM message history as oldest-first `RelayChannelEvent`s.
### Added
- `agent-relay cloud enroll --token <ocl_node_enr_…>` redeems a one-time Cloud enrollment token and persists node credentials to `~/.agentworkforce/relay/fleet-enrollments.json` (0600); a later plain `agent-relay node up` then runs as the Cloud-managed node. The token is never printed.
- `agent-relay node up|down|status|metrics|tail`, `node agent …`, and `node workflow run|logs|sync` unify `local up` and `fleet serve` under one command group. `node up [--config <file>]` brings the current context's node online: the broker runs agents, and a project `agent-relay.{ts,…}` or `agent-relay.py` is served as a capability provider. A plain agent host needs no definition file.
- Reflex history sync runs in-process via the ai-hist SDK, syncing to relayhistory-cloud.
- Swift SDK (`AgentRelaySDK`, `packages/sdk-swift`): `AgentClient` gains `invokeAction(_:input:timeout:pollInterval:)` — invoke a relay action and await its output — plus `channelHistory(_:limit:before:)` and `dmHistory(with:limit:before:)` for reading channel and 1:1 DM message history as oldest-first `RelayChannelEvent`s.
- `sdk-swift` splits broker orchestration into `AgentRelayBrokerSDK` and adds hosted participant `AgentRelaySDK` APIs for workspace registration, channel/DM messaging, inbound events, and relay-routed `AgentClient.registerAction(...)` handlers.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Restored in c1cc9e4 — but attributed to 9.1.3, not 9.2.2. git log -S'AgentRelayBrokerSDK' points at #1188 (wrap relaycast engine SDK in hosted transport), which shipped in 9.1.3; the 9.2.2 AgentClient bullet (#1230) is the later invokeAction/history addition, a separate change. So the split now sits under 9.1.3 next to the hosted-transport entry.


Generated by Claude Code

Comment thread CHANGELOG.md
Comment on lines 323 to +325
### Fixed

- Mock @agent-relay/sdk boundary in MCP startup test
- Serialize auth refresh writes
- `@agent-relay/cloud` writes cloud auth atomically and serializes file-backed token refreshes across processes, preventing concurrent refreshes from clobbering rotated credentials.

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.

🟡 Cloud auth error-handling improvement and legacy credential migration dropped from the changelog

A user-visible "Fixed" entry about cloud auth refresh returning typed, timeout-bounded errors and auto-migrating legacy credentials is removed from the old [Unreleased] section (CHANGELOG.md:103 in the base) without being placed into any versioned release section, so the behavior change is undocumented.

Impact: Users who relied on the legacy ~/.agent-relay/cloud-auth.json path or who diagnose auth-refresh failures won't find the migration or error-handling change documented.

Dropped entry and related entries that survived

The base [Unreleased] Fixed section contained:

@agent-relay/cloud refresh now fails with typed, timeout-bounded errors and migrates legacy ~/.agent-relay/cloud-auth.json credentials into the canonical ~/.agentworkforce/relay/cloud-auth.json store without dual-writing.

Two sibling cloud-auth entries survived the reconciliation: the atomic-write/serialization fix landed in 8.8.0 (CHANGELOG.md:325) and the refresh-token expiry fix landed in 8.8.4 (CHANGELOG.md:276). But this entry — which describes a distinct user-visible behavior (typed errors replacing generic failures, plus automatic legacy-path migration) — was dropped entirely.

Suggested change
### Fixed
- Mock @agent-relay/sdk boundary in MCP startup test
- Serialize auth refresh writes
- `@agent-relay/cloud` writes cloud auth atomically and serializes file-backed token refreshes across processes, preventing concurrent refreshes from clobbering rotated credentials.
### Fixed
- `@agent-relay/cloud` writes cloud auth atomically and serializes file-backed token refreshes across processes, preventing concurrent refreshes from clobbering rotated credentials.
- `@agent-relay/cloud` refresh now fails with typed, timeout-bounded errors and migrates legacy `~/.agent-relay/cloud-auth.json` credentials into the canonical `~/.agentworkforce/relay/cloud-auth.json` store without dual-writing.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Restored in c1cc9e4 — attributed to 9.1.2, not 8.8.0. git log -S'agent-relay/cloud-auth.json' points at #1199 (drop relay base-URL defaults), which shipped in 9.1.2. The two sibling entries are genuinely different changes/releases: the atomic-write + cross-process serialization fix is 8.8.0, and the operator refresh-expiry fix is 8.8.4. So this typed-error/legacy-migration bullet now sits under 9.1.2.


Generated by Claude Code

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 369: Remove the changelog bullet stating that plugin base URLs default to
gateway.relaycast.dev, preserving the documented removal of this obsolete
gateway default.
- Line 12: Rewrite the affected CHANGELOG.md entries as concise, impact-first
bullets with one user-visible change per bullet. Split entries that combine
multiple changes, remove protocol, field, queue, credential, testing, and other
implementation details, and retain only externally observable behavior or
user-facing options.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4bdb1018-cece-4386-bb76-452002af2a5f

📥 Commits

Reviewing files that changed from the base of the PR and between 6de0d79 and 3bdcc33.

📒 Files selected for processing (2)
  • .agentworkforce/trajectories/active/traj_8buyhdvq8fui/trajectory.json
  • CHANGELOG.md

Comment thread CHANGELOG.md
Comment thread CHANGELOG.md

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

All reported issues were addressed

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .agentworkforce/trajectories/active/traj_8buyhdvq8fui/trajectory.json Outdated
claude and others added 2 commits July 13, 2026 14:17
… order, complete trajectory

- Restore the sdk-swift AgentRelayBrokerSDK split entry (git-attributed to
  9.1.3, the hosted-transport release) and the @agent-relay/cloud typed-error /
  legacy cloud-auth.json migration entry (git-attributed to 9.1.2) — both were
  dropped in the first pass.
- Reorder the 9.0.1 section so Fixed precedes Breaking Changes / Migration
  Guidance per Keep a Changelog.
- Complete the leaked active trajectory so the durable record lives under
  completed/ with populated commits instead of a status:active stub.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JFxLB2bdCMHffkrLPFdhEx
@willwashburn willwashburn merged commit 9711ab6 into main Jul 13, 2026
2 checks passed
@willwashburn willwashburn deleted the claude/changelog-review-fixes-dfgj55 branch July 13, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants