Conversation
- Implement useChangelog hook to fetch GitHub releases - Create ChangelogDialog with current version filtering - Add interactive markdown parsing for links, bolds, PRs, and users
Add Vitest/RTL coverage for changelog dialog states and link behaviors.
🤖 Augment PR SummarySummary: Adds an in-app changelog experience that surfaces GitHub release notes directly inside the app. Changes:
Technical Notes: Uses the public GitHub Releases API and 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
2 issues found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/components/changelog-dialog.tsx">
<violation number="1" location="src/components/changelog-dialog.tsx:86">
P1: Recursive parsing of link labels creates nested `<button>` elements when labels contain PR numbers, usernames, or commit hashes (e.g., `[#123](url)` produces a button inside a button). This invalid HTML causes React DOM warnings and unpredictable click behavior.</violation>
<violation number="2" location="src/components/changelog-dialog.tsx:248">
P1: SimpleMarkdown will crash if release.body is null/undefined from GitHub API. Add a nullish fallback when passing content to the component.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ffd9c11d0
ℹ️ 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".
Ensure AboutDialog only listens for Escape in the about view, wire ChangelogDialog Escape to go back to About, remove the redundant Close button in the changelog header, and update dialog tests to match the new navigation behavior.
There was a problem hiding this comment.
3 issues found across 6 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/hooks/use-changelog.ts">
<violation number="1" location="src/hooks/use-changelog.ts:61">
P2: Failed refetches keep old `releases` state, leaving stale changelog data alongside a new error for a different version.</violation>
</file>
<file name="src/components/changelog-dialog.tsx">
<violation number="1" location="src/components/changelog-dialog.tsx:29">
P2: Plain URL auto-linking is incorrect: URL detection runs too late and the regex captures trailing punctuation, causing broken/split clickable links.</violation>
</file>
<file name="src/components/about-dialog.test.tsx">
<violation number="1" location="src/components/about-dialog.test.tsx:48">
P2: The new Escape-navigation test enters the real changelog flow without mocking `useChangelog`/`fetch`, so it can rely on live network behavior and become flaky.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
1 issue found across 3 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/components/changelog-dialog.tsx">
<violation number="1" location="src/components/changelog-dialog.tsx:19">
P1: The URL regex pattern incorrectly truncates valid URLs ending with characters like `)` or `?`. The pattern `/(https?:\/\/[^\s<]+[^.,:;?!"'\s<)])/g` requires the final character to NOT be from `.,:;?!"')`, which breaks valid URLs like Wikipedia paths with parentheses or empty query strings. Replace with a pattern that only trims trailing punctuation when it appears to be sentence punctuation, not part of the URL itself.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
Description
This PR introduces the in-app changelog dialog:
ChangelogDialogcomponent that:openusageGitHub repository.tag_name/name(with and withoutvprefix).[label](url)), bold/italic text, PR numbers (#123), GitHub usernames (@user), and short commit hashes.##,###), bullet lists, and horizontal rules.useChangeloghook that fetches releases from the GitHub API and exposes{ releases, loading, error }with proper error handling and cleanup on unmount.src/components/changelog-dialog.test.tsxthat covers:Related Issue
Type of Change
Testing
bun run buildand it succeededbun run testand all tests pass (includingsrc/components/changelog-dialog.test.tsx)bun tauri devScreenshots
Checklist
mainbranchSummary by cubic
Adds an in-app changelog to view release notes for the current version with quick links and a simple markdown renderer. Fetches only the current GitHub release (with v/non-v fallback) and improves Escape/back behavior in dialogs.
New Features
ChangelogDialogforrobinebers/openusagethat loads the current release by tag (triesvX.Y.ZandX.Y.Z).#123), users (@user), short commits, and plain URLs.Bug Fixes
?and()in links.Written for commit 3510d28. Summary will update on new commits.