Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Cross-package release notes for relayburn. Package changelogs contain package-le
- `relayburn-analyze` (Rust): port the ghost-surface detector — `ghost_surface` and `ghost_surface_inputs` modules with Claude / Codex / OpenCode adapters, slash-command miners, the per-source-scoped orchestrator, and the `WasteFinding` envelope adapter. Findings sort deterministically by `(cost desc, sizeTokens desc, path)` and dedup against the OpenCode catalog-bloat detector via `countedByCatalogBloat`. (#273)
- `relayburn-analyze` (Rust): port the `compare` aggregator — `build_compare_table` for the in-memory `(model, activity)` rollup with per-cell turn / edit / one-shot / priced / cost / cache-hit / median-retries metrics, plus `compare_from_archive` sourced from the SQLite ledger via `Ledger::query_turns`. Public surface: `CompareCell`, `CompareTable`, `CompareTotals`, `CompareOptions`, `CompareCategory`, `DEFAULT_MIN_SAMPLE`, `compare_from_archive`, `CompareFromArchiveResult`. (#269)
- `relayburn-analyze` (Rust): port `subagent_tree` and `claude_md` modules. `build_subagent_tree` / `aggregate_subagent_type_stats` walk per-session subagent invocations (relationship-row substrate with legacy `subagent` fallback) and roll up self/cumulative cost. `parse_claude_md` / `attribute_claude_md` / `build_trim_recommendations` / `render_unified_diff_for_recommendation` produce CLAUDE.md section attribution and trim diffs whose unified-diff format stays byte-aligned with the TS implementation. (#272)
- `relayburn-analyze` (Rust): port the `hotspots` aggregator — `attribute_hotspots` composes the per-tool sized / even-split attribution loop (paying-turn rate, sibling-cap on initial cost, proportional cacheRead allocation on persistence, source-aware reasoning via `cost_for_turn`) with the `aggregate_by_file` / `aggregate_by_bash` / `aggregate_by_bash_verb` / `aggregate_by_subagent` rollups. Public surface mirrors `@relayburn/analyze`: `attribute_hotspots`, `aggregate_by_file`, `aggregate_by_bash`, `aggregate_by_bash_verb`, `aggregate_by_subagent`, `AttributionMethod`, `BashAggregation`, `BashVerbAggregation`, `FileAggregation`, `HotspotsOptions`, `HotspotsResult`, `SessionTotals`, `SubagentAggregation`, `ToolAttribution`. Per-row USD totals match the TS implementation within 1e-9. (#274)
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 5, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Move this note out of the root changelog.

This change is package-scoped in the provided diff, so keeping it under the root [Unreleased] block breaks the repo’s changelog split.

As per coding guidelines, CHANGELOG.md: Update the root CHANGELOG.md [Unreleased] block only when work spans multiple packages or warrants a top-level summary; single-package work belongs only in that package's CHANGELOG

🧰 Tools
🪛 LanguageTool

[grammar] ~12-~12: Use a hyphen to join words.
Context: ...ttribute_hotspots` composes the per-tool sized / even-split attribution loop (pay...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for 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.

In `@CHANGELOG.md` at line 12, Summary: The release note about `relayburn-analyze`
was added to the root CHANGELOG under `[Unreleased]` but should live in the
package-scoped changelog. Fix: remove the `relayburn-analyze` entry (the
paragraph beginning "`relayburn-analyze` (Rust): port the `hotspots`
aggregator...") from the root CHANGELOG.md `[Unreleased]` block and add the same
entry to the relayburn-analyze package's CHANGELOG entry under its own
`[Unreleased]` section so package-scoped changes stay in that package's
changelog; keep the exact public surface names (`attribute_hotspots`,
`aggregate_by_file`, `aggregate_by_bash`, `aggregate_by_bash_verb`,
`aggregate_by_subagent`, `AttributionMethod`, `BashAggregation`,
`BashVerbAggregation`, `FileAggregation`, `HotspotsOptions`, `HotspotsResult`,
`SessionTotals`, `SubagentAggregation`, `ToolAttribution`) and the PR reference
`(`#274`)` unchanged.

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.

Skipping — keeping this consistent with the four sibling relayburn-analyze (Rust) port entries already in [Unreleased] from #269 / #271 / #272 / #273. There is no crates/relayburn-analyze/CHANGELOG.md yet, so the root file is the only place these Rust port milestones currently land. Migrating Rust crate entries to per-crate CHANGELOGs is a separate cleanup that should sweep all five entries together, not fork this one.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@willwashburn — that context makes sense. Since no crates/relayburn-analyze/CHANGELOG.md exists yet and the four sibling port entries (#269, #271, #272, #273) all live in the root [Unreleased] block, keeping this entry consistent there is the right call. A future cleanup that creates the per-crate changelog and moves all five entries together is the appropriate scope for that change. I'll note this for future reviews.


✏️ Learnings added
Learnt from: willwashburn
Repo: AgentWorkforce/burn PR: 291
File: CHANGELOG.md:12-12
Timestamp: 2026-05-05T13:52:26.990Z
Learning: In the AgentWorkforce/burn repository, there is currently no `crates/relayburn-analyze/CHANGELOG.md`. All Rust crate port milestones for `relayburn-analyze` are intentionally recorded in the root `CHANGELOG.md` under `[Unreleased]` (e.g. `#269`, `#271`, `#272`, `#273`, `#274`). Migrating these entries to a per-crate changelog is a deferred cleanup that should sweep all entries together rather than be done per-PR. Do not flag root-level `relayburn-analyze` changelog entries as misplaced until the per-crate changelog exists.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


## [1.9.0] - 2026-05-03

Expand Down
Loading
Loading