fix(releases): generate site changelog from release content#312
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview Parser updates in GitHub Pages ( The PR also backfills Reviewed by Cursor Bugbot for commit 23e9848. Configure here. |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_81b0fc09-6307-4a5d-8f4f-727105c39da0) |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 40 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (49)
📝 WalkthroughWalkthroughThe changelog parser now handles semantic-release markdown references and scoped bullets. A new site-changelog HTML renderer is added and wired into the release generation script, which now also produces ChangesRelease generation, parser, and site changelog
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Workflow as Pages Workflow
participant Script as generate-releases.ts
participant Parser as lib/releases/parser.ts
participant Renderer as site-changelog.ts
participant Site as site/changelog.html
Workflow->>Script: run pnpm generate:releases
Script->>Parser: parseChangelog(CHANGELOG.md)
Parser-->>Script: releases with changes
Script->>Script: readProductNotes(release)
Script->>Renderer: renderSiteChangelogHtml(releases)
Renderer-->>Script: HTML document string
Script->>Site: write site/changelog.html
Script->>Script: update manifest.json
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9460853bda
ℹ️ 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".
| * # [1.0.0](https://example.test/compare) (2024-01-15) | ||
| */ | ||
| const VERSION_REGEX = | ||
| /^#{1,2}\s+\[([^\]]+)\](?:\([^)]+\))?(?:\s+(?:-\s*)?\(?(\d{4}-\d{2}-\d{2})\)?)?/; |
There was a problem hiding this comment.
Recognize unbracketed release headings
The current CHANGELOG.md has an unbracketed semantic-release heading, # 1.0.0 (2026-01-25), but this regex only matches [version] headings. When pnpm generate:releases runs, it never closes the v1.1.0 release at that point, so the v1.0.0 bullets are appended to content/releases/v1.1.0/changelog.json and no content/releases/v1.0.0 entry is generated. Please accept the unlinked heading form before regenerating the release content.
Useful? React with 👍 / 👎.
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 22 | ||
| cache: pnpm |
There was a problem hiding this comment.
Install pnpm before enabling setup-node cache
This Pages job enables cache: pnpm before any step installs or enables pnpm, while pnpm's GitHub Actions CI example installs pnpm before actions/setup-node with cache: "pnpm" (https://pnpm.io/continuous-integration#github-actions). On hosted images where pnpm is only available after Corepack/pnpm setup, setup-node can fail while resolving the pnpm store before it ever reaches the later corepack enable step, preventing release-triggered Pages deploys; install/enable pnpm first or remove the cache option here.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 6
♻️ Duplicate comments (1)
site/changelog.html (1)
300-312: 🎯 Functional Correctness | 🟠 MajorRaw markdown link syntax leaks into public-facing content.
Bullets for v1.2.0 (line 304), v1.1.3 (line 318), and v1.1.0 (lines 360-361) contain unrendered markdown reference links (e.g.
closes [#27248473133](https://...)), which will display literally to site visitors. This is a downstream effect of the parser gap inlib/releases/parser.ts(see comment there) — flagging here only as the visible symptom.Also applies to: 314-326, 356-371
🤖 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 `@site/changelog.html` around lines 300 - 312, The release notes rendered in the changelog are leaking raw markdown links into public content, so update the changelog generation path to ensure those issue references are parsed into proper HTML links before display. Fix the markdown handling in the release rendering flow that produces the sections for v1.2.0, v1.1.3, and v1.1.0, and verify the output from the parser used by the changelog page no longer contains literal reference-link syntax in the visible text.
🧹 Nitpick comments (1)
.github/workflows/pages.yml (1)
28-30: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winConsider disabling credential persistence on checkout.
Static analysis flags this checkout for not setting
persist-credentials: false. Since subsequent steps runpnpm install/build scripts, an untrusted or compromised dependency could exfiltrate the persistedGITHUB_TOKEN.🔒 Proposed fix
- uses: actions/checkout@v4 with: ref: master + persist-credentials: false🤖 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 @.github/workflows/pages.yml around lines 28 - 30, The checkout step in the pages workflow is persisting the default GitHub credentials, which can expose the token to later install/build steps. Update the actions/checkout usage to disable credential persistence by setting persist-credentials to false in the checkout configuration, keeping the existing ref setting intact.Source: Linters/SAST tools
🤖 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 @.github/workflows/pages.yml:
- Around line 31-41: The workflow currently enables pnpm after
actions/setup-node@v4 has already tried to configure pnpm caching, which can
break cache resolution. Update the Pages job so corepack enable runs before
setup-node, then keep the existing cache: pnpm configuration and subsequent
install/release steps unchanged; use the setup-node and Enable pnpm steps as the
anchors when reordering.
In `@content/releases/v1.1.0/changelog.json`:
- Around line 8-823: The changelog entry data in changelog.json is not
normalized and the final record is truncated, so regenerate this release
artifact from the parser output used by lib/releases/parser.ts rather than
editing descriptions manually. Ensure semantic-release references like closes
[#…](…) are moved into metadata instead of staying in description, and verify
the last chore entry is completed so the JSON is valid and fully populated.
In `@content/releases/v1.1.0/notes.md`:
- Around line 1-7: The release notes text in the rendered changelog still
contains raw issue-link markup and duplicate links, so clean up the entries in
notes.md to plain prose. Update the release note bullets to remove the markdown
link fragments like closes [`#151`](...) and repeated references, keeping only
readable summary text. Use the existing release note items in notes.md as the
target content to rewrite.
In `@content/releases/v1.6.0/notes.md`:
- Line 7: The release note text contains a typo in the realtime description:
“unstrandable” should be corrected before publishing. Update the wording in this
note entry to use the intended spelling, and keep the rest of the release note
sentence unchanged.
In `@lib/releases/parser.ts`:
- Around line 26-30: Update parseBullet in parser.ts so it strips standalone
markdown reference links like [`#151`](url) from bullet text before assigning
description, not just the parenthesized forms handled by REF_REGEX and
MARKDOWN_REF_REGEX. Reuse or extend the existing reference parsing logic around
parseBullet so both semantic-release markdown references and inline links are
removed consistently while preserving the rest of the bullet content.
In `@scripts/generate-releases.ts`:
- Around line 233-245: The site changelog is rendered from the incoming release
array order in writeSiteChangelog, so it can drift from the semver-descending
order used by writeManifest and /releases. Update writeSiteChangelog to sort the
releases by semver descending before mapping to ReleaseWithNotes and passing
them to renderSiteChangelogHtml, keeping the ordering logic consistent with
writeManifest and the release display.
---
Duplicate comments:
In `@site/changelog.html`:
- Around line 300-312: The release notes rendered in the changelog are leaking
raw markdown links into public content, so update the changelog generation path
to ensure those issue references are parsed into proper HTML links before
display. Fix the markdown handling in the release rendering flow that produces
the sections for v1.2.0, v1.1.3, and v1.1.0, and verify the output from the
parser used by the changelog page no longer contains literal reference-link
syntax in the visible text.
---
Nitpick comments:
In @.github/workflows/pages.yml:
- Around line 28-30: The checkout step in the pages workflow is persisting the
default GitHub credentials, which can expose the token to later install/build
steps. Update the actions/checkout usage to disable credential persistence by
setting persist-credentials to false in the checkout configuration, keeping the
existing ref setting intact.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 2694b045-588d-4a32-bff4-8f8267f10037
📒 Files selected for processing (49)
.github/workflows/pages.ymlcontent/releases/manifest.jsoncontent/releases/v1.1.0/changelog.jsoncontent/releases/v1.1.0/notes.mdcontent/releases/v1.1.1/changelog.jsoncontent/releases/v1.1.1/notes.mdcontent/releases/v1.1.2/changelog.jsoncontent/releases/v1.1.2/notes.mdcontent/releases/v1.1.3/changelog.jsoncontent/releases/v1.1.3/notes.mdcontent/releases/v1.10.0/changelog.jsoncontent/releases/v1.10.0/notes.mdcontent/releases/v1.11.0/changelog.jsoncontent/releases/v1.11.0/notes.mdcontent/releases/v1.12.0/changelog.jsoncontent/releases/v1.12.0/notes.mdcontent/releases/v1.13.0/changelog.jsoncontent/releases/v1.13.0/notes.mdcontent/releases/v1.14.0/changelog.jsoncontent/releases/v1.14.0/notes.mdcontent/releases/v1.15.0/changelog.jsoncontent/releases/v1.15.0/notes.mdcontent/releases/v1.15.1/changelog.jsoncontent/releases/v1.15.1/notes.mdcontent/releases/v1.2.0/changelog.jsoncontent/releases/v1.2.0/notes.mdcontent/releases/v1.3.0/changelog.jsoncontent/releases/v1.3.0/notes.mdcontent/releases/v1.4.0/changelog.jsoncontent/releases/v1.4.0/notes.mdcontent/releases/v1.5.0/changelog.jsoncontent/releases/v1.5.0/notes.mdcontent/releases/v1.6.0/changelog.jsoncontent/releases/v1.6.0/notes.mdcontent/releases/v1.7.0/changelog.jsoncontent/releases/v1.7.0/notes.mdcontent/releases/v1.8.0/changelog.jsoncontent/releases/v1.8.0/notes.mdcontent/releases/v1.9.0/changelog.jsoncontent/releases/v1.9.0/notes.mdcontent/releases/v1.9.1/changelog.jsoncontent/releases/v1.9.1/notes.mdlib/releases/parser.tslib/releases/types.tsscripts/generate-releases.tsscripts/releases/site-changelog.tssite/changelog.htmltests/lib/releases/parser.test.tstests/scripts/site-changelog.test.ts
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 22 | ||
| cache: pnpm | ||
| - name: Enable pnpm | ||
| run: corepack enable | ||
| - name: Install dependencies | ||
| run: pnpm install --frozen-lockfile | ||
| - name: Generate release notes | ||
| run: pnpm generate:releases | ||
| - name: Stage the marketing site |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
sed -n '1,120p' .github/workflows/pages.ymlRepository: misty-step/linejam
Length of output: 1299
🌐 Web query:
actions/setup-node pnpm cache requires pnpm on PATH store path corepack enable order
💡 Result:
When using actions/setup-node to cache pnpm dependencies (via cache: 'pnpm'), the action internally executes the command pnpm store path --silent to determine the cache directory [1]. Consequently, pnpm must be installed and available on the runner's PATH before the actions/setup-node step runs, or the caching process will fail [2][3][4]. If you are using Corepack to manage your pnpm installation, you must ensure it is enabled and the pnpm version is activated before the setup-node step [4]. The recommended workflow order is: 1. Setup Node.js (e.g., via actions/setup-node) [4]. 2. Enable and prepare Corepack (e.g., run: corepack enable && corepack prepare pnpm@latest --activate) [4][5]. 3. Configure the dependency cache using actions/setup-node with cache: 'pnpm' [4]. Alternatively, many users avoid potential ordering issues by using the pnpm/action-setup action before the actions/setup-node step [2][6][4]. This dedicated action ensures pnpm is correctly installed, configured, and added to the PATH, which satisfies the requirements for actions/setup-node to successfully locate the store path [2][4]. Recent versions of actions/setup-node (v5+) include improvements to handle cases where pnpm might be missing, often logging a warning and skipping the cache rather than causing a total workflow failure [7]. However, to reliably benefit from dependency caching, ensuring pnpm is correctly initialized on the PATH remains the best practice [4].
Citations:
- 1: https://github.com/actions/setup-node/blob/main/src/cache-utils.ts
- 2: Use actions/setup-node to cache pnpm store instead of doing it manually pnpm/action-setup#76
- 3: Error: Unable to locate executable file: pnpm actions/setup-node#530
- 4: v5 fails immediately when using
pnpmactions/setup-node#1357 - 5: https://pnpm.io/continuous-integration
- 6: https://docs.github.com/en/actions/tutorials/build-and-test-code/nodejs
- 7: fix(#1357): Gracefully handle missing pnpm installation during cache actions/setup-node#1478
🌐 Web query:
actions/setup-node v4 cache pnpm pnpm store path missing pnpm failure
💡 Result:
The error Path Validation Error: Path(s) specified in the action for caching do(es) not exist occurs in GitHub Actions when the caching mechanism (either in actions/setup-node or pnpm/action-setup) attempts to save a pnpm store directory that has not been created [1][2][3]. This commonly happens when the workflow job fails to execute a pnpm command (like pnpm install) that would otherwise generate the store directory, or when there is a mismatch between the expected store path and the actual location [1][2][4]. Common causes and solutions include: 1. No Install Step: If your workflow uses cache: 'pnpm' or equivalent but does not actually run pnpm install, the pnpm store is never initialized [1]. Because the post-job step attempts to cache a non-existent path, the job fails [1][2]. - Solution: Ensure pnpm install runs before the job ends [1], or remove the cache configuration if it is unnecessary for that specific job [1]. 2. Path Resolution Mismatch: Sometimes the action fails to correctly identify the path to the pnpm store [5][6]. This can happen if pnpm outputs unexpected logging (e.g., hooks warnings) when running pnpm store path [5][6]. - Solution: Set the environment variable loglevel=warn or loglevel=error in your.npmrc file to silence extra output that interferes with path resolution [5]. Alternatively, ensure you are using the latest version of your setup actions [5][7]. 3. Missing Directory: The caching action expects the directory to exist before it attempts to save it [2]. - Solution: You can explicitly create the directory if it is missing before the caching step triggers, or use a workaround to verify and create the directory if necessary [2]. 4. Version Compatibility: Differences between actions/setup-node and pnpm/action-setup versions can lead to path conflicts [3][6]. - Recommendation: If you encounter this after upgrading (e.g., to pnpm/action-setup v6), check GitHub issues for that specific version, as regressions in path resolution are occasionally reported [3]. Ensure your configuration aligns with the latest documentation, which often recommends using the cache built into pnpm/action-setup rather than layering multiple caching mechanisms [8][7].
Citations:
- 1: CI: weekly Maintenance workflow always fails on main — pnpm cache post-step (Path Validation Error) BryceEWatson/shopify-tyos-migrator#141
- 2: Path Validation Error: Path(s) specified in the action for caching does not exist actions/setup-node#1137
- 3: v6 causes: Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved. pnpm/action-setup#233
- 4: Cache issue in pnpm 7 actions/setup-node#479
- 5: post setup-node throws an error - missing pnpm store dir actions/setup-node#543
- 6: v3.8.0 - "Cache folder paths are not retrieved for..." actions/setup-node#828
- 7: https://github.com/pnpm/action-setup?tab=readme-ov-file
- 8: cahing question when used with actions/setup-node@v4 pnpm/action-setup#152
Move pnpm enablement before setup-node caching
actions/setup-node@v4 with cache: pnpm needs pnpm available when it resolves the store path, so corepack enable should run first or the job can fail.
Proposed fix
steps:
- uses: actions/checkout@v4
with:
ref: master
+ - name: Enable pnpm
+ run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- - name: Enable pnpm
- run: corepack enable
- name: Install dependencies
run: pnpm install --frozen-lockfile📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Enable pnpm | |
| run: corepack enable | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Generate release notes | |
| run: pnpm generate:releases | |
| - name: Stage the marketing site | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - name: Enable pnpm | |
| run: corepack enable | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Generate release notes | |
| run: pnpm generate:releases | |
| - name: Stage the marketing site |
🤖 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 @.github/workflows/pages.yml around lines 31 - 41, The workflow currently
enables pnpm after actions/setup-node@v4 has already tried to configure pnpm
caching, which can break cache resolution. Update the Pages job so corepack
enable runs before setup-node, then keep the existing cache: pnpm configuration
and subsequent install/release steps unchanged; use the setup-node and Enable
pnpm steps as the anchors when reordering.
| a11y: use theme-aware focus ring token instead of hardcoded primary , closes [#151](https://github.com/misty-step/linejam/issues/151). | ||
|
|
||
| auth: show error state with retry on guest auth failure , closes [#144](https://github.com/misty-step/linejam/issues/144) [#144](https://github.com/misty-step/linejam/issues/144). | ||
|
|
||
| ci: pin trufflehog scanner version. | ||
|
|
||
| ci: settle trufflehog workflow. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Strip the raw issue-link markup from the rendered notes.
notes.md is displayed verbatim by the site changelog renderer, so these closes [#…](…) fragments and duplicate links will show up in the published HTML. Keep the bullets as plain prose.
🤖 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 `@content/releases/v1.1.0/notes.md` around lines 1 - 7, The release notes text
in the rendered changelog still contains raw issue-link markup and duplicate
links, so clean up the entries in notes.md to plain prose. Update the release
note bullets to remove the markdown link fragments like closes [`#151`](...) and
repeated references, keeping only readable summary text. Use the existing
release note items in notes.md as the target content to rewrite.
|
|
||
| game: make rules data and ship Rhyme Relay + Quick Jam modes. | ||
|
|
||
| realtime: make the room unstrandable — rescue, rematch, self-heal. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the spelling in this release note.
unstrandable appears to be a typo and should be corrected before publishing.
🧰 Tools
🪛 LanguageTool
[grammar] ~7-~7: Ensure spelling is correct
Context: ...ick Jam modes. realtime: make the room unstrandable — rescue, rematch, self-heal.
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 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 `@content/releases/v1.6.0/notes.md` at line 7, The release note text contains a
typo in the realtime description: “unstrandable” should be corrected before
publishing. Update the wording in this note entry to use the intended spelling,
and keep the rest of the release note sentence unchanged.
Source: Linters/SAST tools
| function writeSiteChangelog(releases: Release[]): void { | ||
| const releasesWithNotes: ReleaseWithNotes[] = releases.map((release) => ({ | ||
| ...release, | ||
| productNotes: readProductNotes(release), | ||
| })); | ||
|
|
||
| fs.writeFileSync( | ||
| SITE_CHANGELOG_PATH, | ||
| renderSiteChangelogHtml(releasesWithNotes) | ||
| ); | ||
|
|
||
| console.log(' ✅ Updated site/changelog.html'); | ||
| } |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
ast-grep outline scripts/generate-releases.ts --view expandedRepository: misty-step/linejam
Length of output: 1157
🏁 Script executed:
rg -n "parseChangelog|writeManifest|writeSiteChangelog|renderSiteChangelogHtml|sortReleasesDescending" scripts/generate-releases.tsRepository: misty-step/linejam
Length of output: 642
🏁 Script executed:
sed -n '175,255p' scripts/generate-releases.tsRepository: misty-step/linejam
Length of output: 2268
🏁 Script executed:
sed -n '1,220p' scripts/releases/site-changelog.tsRepository: misty-step/linejam
Length of output: 6184
🏁 Script executed:
sed -n '1,220p' lib/releases/parser.tsRepository: misty-step/linejam
Length of output: 5265
🏁 Script executed:
sed -n '266,350p' scripts/generate-releases.tsRepository: misty-step/linejam
Length of output: 2648
Sort writeSiteChangelog before rendering renderSiteChangelogHtml uses the array order it receives, while writeManifest re-sorts by semver descending. If CHANGELOG.md drifts out of order, site/changelog.html will no longer match the release order shown in /releases.
🧰 Tools
🪛 ast-grep (0.44.1)
[warning] 238-241: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFileSync(
SITE_CHANGELOG_PATH,
renderSiteChangelogHtml(releasesWithNotes)
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').
(detect-non-literal-fs-filename-typescript)
🤖 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 `@scripts/generate-releases.ts` around lines 233 - 245, The site changelog is
rendered from the incoming release array order in writeSiteChangelog, so it can
drift from the semver-descending order used by writeManifest and /releases.
Update writeSiteChangelog to sort the releases by semver descending before
mapping to ReleaseWithNotes and passing them to renderSiteChangelogHtml, keeping
the ordering logic consistent with writeManifest and the release display.
Generate site/changelog.html from the same CHANGELOG.md-derived release content as /releases. Pages runs the generator before upload and also after Release finishes successfully. Agent: codex-gpt-5.5 Agent-Surface: Codex CLI Agent-Model: openai/gpt-5.5 Agent-Task: linejam-919
9460853 to
66c126e
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_12136def-bd36-4383-acb2-08c95b54b4de) |
# [1.16.0](v1.15.1...v1.16.0) (2026-07-08) ### Bug Fixes * clarify core loop submit readiness ([#310](#310)) ([e953882](e953882)) * **convex:** drop legacy mode columns ([#298](#298)) ([684de32](684de32)) * **csp:** allow the production Clerk custom domain ([#299](#299)) ([8b8da91](8b8da91)), closes [#291](#291) * **deps:** remove unused production dependencies ([#313](#313)) ([415bbf1](415bbf1)) * **e2e:** isolate remaining guest session contexts ([#316](#316)) ([866d788](866d788)) * **e2e:** stabilize guest archive and reveal share ([#315](#315)) ([e7a8091](e7a8091)), closes [#308](#308) * **errors:** ConvexError taxonomy so friendly messages survive production ([#303](#303)) ([9a02299](9a02299)) * **evidence:** wrap static theme evidence server to suppress stale Convex/Canary noise ([b90c6ae](b90c6ae)) * **identity:** guest archive access + themed Clerk auth ([#307](#307)) ([d29f6fd](d29f6fd)) * **releases:** generate site changelog from release content ([#312](#312)) ([15cf3b1](15cf3b1)) * **ui:** lobby roster collision and sticky-chrome heading overlap ([#306](#306)) ([ebce842](ebce842)), closes [#2](#2) * **ui:** wire themed design tokens ([de6597e](de6597e)) ### Features * **agent:** add CLI + MCP faces over the Convex core, plus the skill ([e3376af](e3376af)) * **artifact:** add poem image and print exports ([#308](#308)) ([23179c1](23179c1)) * **site:** add marketing proof assets ([#311](#311)) ([3e2ab28](3e2ab28)) * **site:** add public marketing site from the Aesthetic site-kit ([7678974](7678974)) * **stage:** host presentation mode — lobby and reveal as a room-scale stage ([#309](#309)) ([af774e1](af774e1))
|
🎉 This PR is included in version 1.16.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
Source of truth
CHANGELOG.md parsed by scripts/generate-releases.ts into content/releases/ now feeds both the app /releases page and site/changelog.html.
Verification
Agent: codex-gpt-5.5
Agent-Surface: Codex CLI
Agent-Model: openai/gpt-5.5
Agent-Task: linejam-919
Summary by CodeRabbit
New Features
Bug Fixes