feat(achievement): build AchievementChangelog#4565
Closed
wescopeland wants to merge 6 commits intoRetroAchievements:masterfrom
Closed
feat(achievement): build AchievementChangelog#4565wescopeland wants to merge 6 commits intoRetroAchievements:masterfrom
wescopeland wants to merge 6 commits intoRetroAchievements:masterfrom
Conversation
Jamiras
reviewed
Feb 17, 2026
...urces/js/features/achievements/components/AchievementChangelog/AchievementChangelogEntry.tsx
Show resolved
Hide resolved
| case 'type-set': { | ||
| const typeName = entry.fieldChanges[0]?.newValue; | ||
|
|
||
| return typeName ? t('Type set to {{typeName}}', { typeName }) : t('Type set'); |
Member
Member
Author
Member
There was a problem hiding this comment.
It's actually less consistent now - especially given than you've changed points to use diff mechanics. I would expect removed to have just the red lined out value and set to have a green non-lined-out value.
Member
...urces/js/features/achievements/components/AchievementChangelog/AchievementChangelogEntry.tsx
Outdated
Show resolved
Hide resolved
...urces/js/features/achievements/components/AchievementChangelog/AchievementChangelogEntry.tsx
Show resolved
Hide resolved
...urces/js/features/achievements/components/AchievementChangelog/AchievementChangelogEntry.tsx
Outdated
Show resolved
Hide resolved
...urces/js/features/achievements/components/AchievementChangelog/AchievementChangelogEntry.tsx
Outdated
Show resolved
Hide resolved
resources/js/features/achievements/components/+show/AchievementShowRoot.tsx
Show resolved
Hide resolved
wescopeland
added a commit
to wescopeland/RAWeb
that referenced
this pull request
Feb 23, 2026
Resolves RetroAchievements#4565 (comment). Navigating to a URL like http://localhost:64000/achievement2/9?tab=changelog should instantly mount the UI with the "Changelog" tab set.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




This PR builds out the changelog UI/UX for
achievement2.The changelog is presented as a timeline, where the top-most item is the most recent change.

Initial development activities that occurred between creation and the first promotion are tucked away into an "Initial development" collapse:

The changelog is synthesized through 3 "eras" of audit history that have existed in RAWeb.
Era 1 (before April 2022)

We just know something was edited, but have no field-level details about those edits.
Era 2 (April 2022 - February 2024)

We know what was edited, but not how. We may know a specific field on an achievement changed, but we don't know what the field was before or after the change happened.
Era 3 (February 2024+)

We have a complete picture of what was edited and precisely how, with full before/after diffs.
Here's an example of an achievement with changes recorded through all 3 eras:

Event circles receive different colors based on the type of event:

Some achievements have no initial promotion event that is recorded anywhere in our audit log. For these, the Created circle is green instead of blue:

If the same type of edit occurs numerous times around a similar timestamp, we collapse this all into a single event:

If the same type of edit ultimately results in a net-zero change (ie: points changed from 4 to 5 and then back to 4), we don't show the event at all.
Good URLs to test with:
http://localhost:64000/achievement2/1 - achievement with changes in all 3 eras, created-as-promoted edge case, has a banned+deleted user who made changes
http://localhost:64000/achievement2/9 - similar to ID 1
http://localhost:64000/achievement2/69990 - many collapsed era 1 edits
http://localhost:64000/achievement2/233062 - promoted, demoted, and promoted again
http://localhost:64000/achievement2/145613 - promoted, demoted, promoted, and many changes
http://localhost:64000/achievement2/431345 - straightforward created, promoted, demoted, promoted diff with no changes recorded
http://localhost:64000/achievement2/561681 - never promoted (at least in my local DB), so no "Initial development" collapse in the UI
http://localhost:64000/achievement2/413233 - lots of initial development diffs