Repository navigation
fix(release): build notes from mainline PR merges - #6652
Conversation
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 4 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Changes requested Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. Findings
Pending checks: Rust E2E (mock backend), Build Playwright E2E Artifact, E2E (Playwright / web lane), Desktop E2E (full suite, 3 OS) Before merge
How this fits togetherflowchart LR
n0["assertRefExists<br/>changed<br/>3 findings"]:::blocking
n1["collectPrCommits<br/>changed<br/>3 findings"]:::blocking
n2["collectPullRequests<br/>changed<br/>3 findings"]:::blocking
n3["fetchPullRequest<br/>changed<br/>3 findings"]:::blocking
n4["main<br/>changed<br/>3 findings"]:::blocking
n5["repo"]:::impacted
n6["commits"]:::impacted
n7["options"]:::impacted
n8["from"]:::impacted
n9["buildReleasePayload"]:::impacted
n10["collectCommits"]:::impacted
n1 -->|uses| n6
n2 -->|uses| n5
n2 -->|uses| n6
n3 -->|uses| n5
n4 -->|calls| n0
n4 -->|uses| n5
n4 -->|uses| n7
n4 -->|uses| n8
n5 -->|uses| n7
n6 -->|uses| n8
n6 -->|calls| n10
n8 -->|uses| n5
n8 -->|uses| n7
n9 -->|uses| n5
n9 -->|uses| n6
n9 -->|uses| n8
n10 -->|uses| n6
n10 -->|uses| n8
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Comment |
There was a problem hiding this comment.
Requesting changes: 1 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0146 · 282,851 in / 28,490 out · 41,944 cached (15%) · ladder/vectors, gpt-5.6-luna, deepseek/deepseek-v4-flash · 532 embedded
critique: $0.0058 · 155,191 in / 8,629 out · 21,056 cached (14%) · gpt-5.6-luna, deepseek/deepseek-v4-flash
security: $0.0020 · 72,862 in / 2,397 out · 3,736 cached (5%) · gpt-5.6-luna
tests: $0.0013 · 17,362 in / 5,624 out · 17,152 cached (99%) · deepseek/deepseek-v4-flash
description: $0.0021 · 9,352 in / 6,754 out · 0 cached (0%) · deepseek/deepseek-v4-flash
e2e: $0.0024 · 21,239 in / 2,501 out · 0 cached (0%) · deepseek/deepseek-v4-flash
| const format = '%H%x1f%s%x1f%an%x1f%ae%x1f%aI%x1e'; | ||
| const commits = []; | ||
| await streamGitRecords(['log', `${from}..${to}`, '--reverse', `--format=${format}`], (entry) => { | ||
| await streamGitRecords(['log', `${from}..${to}`, '--first-parent', '--merges', '--reverse', `--format=${format}`], (entry) => { |
There was a problem hiding this comment.
Include squash-merged pull requests in release notes
--merges restricts the range to commits with multiple parents. A PR merged with GitHub's squash or rebase strategy produces a normal first-parent commit, often with a (#123) subject, so it is omitted entirely from commits, never fetched by collectPullRequests, and never appears in the generated release notes or contributor credits. The new test also encodes this omission by treating a direct commit carrying a PR number as excluded. Remove the --merges restriction and explicitly filter only commits that represent PR merges if nested branch commits must remain excluded, or otherwise support the repository's squash/rebase merge modes.
Additional security observation
Include squash-merged pull requests in release notes
[RULE] incomplete-release-history
Using --merges excludes squash merges and rebase merges, whose resulting commits are ordinary single-parent commits even when their subjects contain a pull-request number. Those PRs will no longer appear in collectCommits, so production release notes and contributor credits silently omit them. Preserve the PR-number parsing for all first-parent commits, or otherwise include the repository's non-merge PR integration styles.
[RULE] incomplete-commit-selection ·
| isNew: false, | ||
| }); | ||
| } | ||
| const contributor = contributors.get(key); |
There was a problem hiding this comment.
Count the commits represented by each pull request
commits is incremented once per pull request, even though the field is exposed as a commit count and the previous implementation incremented it once per collected commit. A pull request containing three commits will now contribute commits: 1 instead of commits: 3, making contributor credits inaccurate. Preserve the number of commits represented by each PR (or rename the field and all of its consumers if the intended metric is PR count).
[RULE] incorrect-count ·
Summary
Merge pull request #Nsubjects and credit PR authors using GitHub'sauthorAssociationfor first-time contributors.Problem
The release-notes preview job read 20,826 commits from
v0.63.12..mainafter the merge-commit workflow change. It sent an oversized prompt to OpenAI and failed withYour input exceeds the context window of this model.Solution
collectCommitsnow traverses only first-parent merge commits and retains those with a PR number. The same range yields 670 PR merges in a local collection check. Contributor credits use each PR's author because GitHub merge commits carry the merger's identity.Submission Checklist
Impact
Release-note generation only. The generator no longer includes unmerged branch history or direct commits in the note payload. PR metadata is still fetched through
gh.Related
AI Authored PR Metadata
Linear Issue
Commit & Branch
release-notes-merge-commits1bb9117b8eValidation Run
pnpm --filter openhuman-app format:check— no app files changed.pnpm typecheck— no TypeScript changed.pnpm test:release-notes(14 passed);node --check; one-PR--no-aigenerator smoke; real range collection (670 PR merges).Validation Blocked
command:N/Aerror:N/Aimpact:N/ABehavior Changes
Parity Contract
Duplicate / Superseded PR Handling
Summary by CodeRabbit