feat(tips): serve /tips/social/received + /claimable as empty (public-only)

Public-only instances have no targeted-recipient inbox (public tips are claimed
via share URL, never delivered to a user), so the client's inbox poll of
/received + /claimable 404'd. Serve them 200-empty instead so the poll succeeds
quietly. Matches the client contract ({tips:[]}).
This commit is contained in:
jwinterm
2026-07-10 22:35:44 -04:00
parent 1d6d67faa5
commit 533f945290
3 changed files with 116 additions and 0 deletions
+64
View File
@@ -751,6 +751,70 @@
]
}
},
"/tips/social/claimable": {
"get": {
"tags": [
"tips"
],
"summary": "Tips CLAIMABLE by the caller. As with `received`, a public-only instance has\nno targeted-claimable inbox, so this is always empty (served 200, not 404).",
"operationId": "get_claimable_social_tips",
"responses": {
"200": {
"description": "Claimable tips (empty on a public-only instance)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocialTipsResponse"
}
}
}
},
"400": {
"description": "Tips off"
},
"401": {
"description": "Missing or invalid token"
}
},
"security": [
{
"bearer_auth": []
}
]
}
},
"/tips/social/received": {
"get": {
"tags": [
"tips"
],
"summary": "Tips RECEIVED by the caller. Public-only instances have no targeted-recipient\ninbox (public tips are claimed via share URL, never delivered to a user), so\nthis is always empty — served (200) rather than 404 so the client's inbox\npoll doesn't error on a targeted-only endpoint this instance doesn't serve.",
"operationId": "get_received_social_tips",
"responses": {
"200": {
"description": "Received tips (empty on a public-only instance)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SocialTipsResponse"
}
}
}
},
"400": {
"description": "Tips off"
},
"401": {
"description": "Missing or invalid token"
}
},
"security": [
{
"bearer_auth": []
}
]
}
},
"/tips/social/sent": {
"get": {
"tags": [