#157
Add badge earned info to user profile badges API response
Status: closedSummary
The user profile badges API response is missing information about how each badge was earned. In the webapp, hovering over a badge shows a message such as "Reacted 50 times" for the "Cheerleader" badge, but this message is absent from the API response.
Example current API response:
{
"name" : "AI Whisperer",
"icon" : "✨",
"created_at" : "2026-07-04T00:01:31.598424+00:00"
},
{
"name" : "Patron",
"icon" : "🤝",
"created_at" : "2026-07-24T18:38:25.683152+00:00"
},
{
"name" : "Cheerleader",
"icon" : "🎉",
"created_at" : "2026-07-31T17:45:40.325029+00:00"
}
Steps to Reproduce
Not provided.
Expected Behaviour
The API response for badges should include the earned-by information (e.g., "Reacted 50 times" for the Cheerleader badge), matching what is shown in the webapp hover tooltip.
Actual Behaviour
The API response only includes name, icon, and created_at. The message describing how the badge was earned is missing.
Environment
Not provided.
Reported by Lensflare via DevPlace.
Updates & comments
<!-- typosaurus:claim run=3828c0c223934696842a70e9d9efb9e0 id=8786fd8dd200 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-04T16:08:48.178329+00:00
Ticket claimed by team Dev Team ONE ELITE.
Branch: typosaurus/157-add-badge-earned-info-to-user-profile-badges-api-response
Agents assigned: @yelena, @katya, @mila, @vera, @nadia, @sveta, @tanya, @zoya, @irina, @oksana, @larisa
Next: Decompose the ticket into an executable tree.
<!-- typosaurus:progress run=3828c0c223934696842a70e9d9efb9e0 id=8441795e8d8d team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-05T09:11:15.397464+00:00
Progress
State: publishing
Completed: 17/17 nodes
Current: none - none
Cost: 0.2027 USD · Elapsed: 17h 2m
Completed
Open
Just checked the api response. Still missing. Do I need to wait?
Posted by Lensflare via DevPlace.
It did not even create a pull request young man.
Oh... ok.
Posted by Lensflare via DevPlace.
There are people questioning where the pull request is.
Posted by retoor via DevPlace.
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=09129fd74ab9 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-04T23:11:27.631813+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.1444 USD · Duration: 7h 2m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/159
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=0988acddf04c team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-04T23:18:11.836299+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.1444 USD · Duration: 7h 9m
Pull request: none
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=35b125df4fd4 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-05T07:09:48.070035+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.1534 USD · Duration: 15h 0m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/160
imo, the ticket should be closed only after the pull request is merged
Posted by Lensflare via DevPlace.
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=bfe1ad310c374bcebeb10114f7cbe773 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-05T08:49:51.806240+00:00
Pull request evidence
The pull request for ticket #157 exists and has been merged:
origin/mastertip equals the merge commit e02919a1db7794229a4cbdabb87a214f9818ab01, so the change is live on masterYELENA · project-manager - 2026-08-05T09:10:41.719244+00:00
The
descriptionfield was missing in the live API response because the running instance servesmaster, and at the time of the checkmasterpredated the fix. The earned-by text existed only in the badge catalog and in the webapp hover tooltip; the JSON surface did not carry it.The gap is closed on
masternow:4bd420f,f72f2ed,68c4037,3a0f682on branchtyposaurus/157-add-badge-earned-info-to-user-profile-badges-api-response(PR #159)BadgeOutdeclaresdescription(devplacepy/schemas/content.py:71); the handler fills it per badge (devplacepy/routers/profile/index.py:204-208), sourced fromget_badge()(devplacepy/utils/badges.py:105)GET /profile/{username}withAccept: application/json;ProfileOut.badges: list[BadgeOut](devplacepy/schemas/profile.py:32). Before the merge,master'sBadgeOutheld onlyname/icon/created_at; after the merge it includesdescriptionmasteron 2026-08-05T02:21:37+02:00 (merge commite02919a1); the badge description tests passTo answer the question directly: yes, wait - but only for the deployment. No code gap remains; the live API will include the
descriptionfield once the instance is redeployed from the mergedmaster.<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=82c00dcb5a61 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-05T09:37:14.312076+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.2027 USD · Duration: 17h 28m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/160
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=ef5c3d6b9baa team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-06T18:18:31.183483+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.2027 USD · Duration: 50h 9m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/160
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=76de46a845f8 team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-07T23:34:24.152587+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.2027 USD · Duration: 79h 25m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/160
<!-- typosaurus:summary run=3828c0c223934696842a70e9d9efb9e0 id=f9aec53e7dbf team=e128e22619ab46999074678e27b7e0f7 -->
YELENA · project-manager - 2026-08-08T02:01:05.781826+00:00
Result
Run completed for ticket #157.
Delivered:
Not delivered:
Verification: make test - see nodes
Commits: 3 · Cost: 0.2027 USD · Duration: 81h 52m
Pull request: https://retoor.molodetz.nl/retoor/devplacepy/pulls/160
Log in to comment.