You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EN:
Kind:0 profiles now include the 21.gifts icon as picture, and the worker publishes a NIP-65 kind:10002 relay list so Damus and Primal know where to find notes. Photo posts append a public image URL plus a NIP-92 imeta tag, and GET /messages/:id/photo is unauthenticated so those clients can fetch the bytes. Already-signed photo notes without that URL are re-signed when PUBLIC_BASE_URL is set and the note has no zaps, so receipts still resolve.
DE:
Kind:0-Profile tragen jetzt das 21.gifts-Icon als picture, und der Worker veröffentlicht eine NIP-65-kind:10002-Relay-Liste, damit Damus und Primal die Notes finden. Foto-Posts hängen eine öffentliche Bild-URL plus NIP-92-imeta an, und GET /messages/:id/photo ist unauthentifiziert, damit diese Clients die Bytes laden können. Bereits signierte Foto-Notes ohne diese URL werden neu signiert, wenn PUBLIC_BASE_URL gesetzt ist und die Note keine Zaps hat, damit Receipts weiterhin auflösen.
Details
Kind:0 content always sets picture to https://21.gifts/apple-touch-icon.png (plus existing name / display_name / website / optional lud16).
NIP-65 kind:10002 uses the same reservation/watermark pattern as kind:0 and lists the current write-set relays (r tags). The list is republished when the write-set grows (space-only → public).
Kind:1 photo notes append GET /messages/:id/photo to the content and add imeta (url + m). The public API origin is derived from PUBLIC_BASE_URL (https://21.gifts → https://api.21.gifts, https://dev.21.gifts → https://dev-api.21.gifts).
GET /messages/:id/photo no longer requires a bearer token and sends Cache-Control: public, max-age=86400.
Resign of URL-less photo notes and the publish-batch skip of a stale URL-less snapshot run only when the API base is non-empty and sats is 0. Zapped rows keep eventId. An unset PUBLIC_BASE_URL cannot un-publish and loop.
CONTRIBUTING.md documents PUBLIC_BASE_URL and kind:10002 on the Nostr publish flags. Handbook, SPEC, FLOWS, and e2e titles are updated.
EN:
Ready after 3 review passes.
Kind:0 profiles now include the 21.gifts icon, the worker publishes NIP-65 relay lists, and photo notes carry a public URL with NIP-92 imeta.
DE:
Bereit nach 3 Review-Durchläufen.
Kind:0-Profile tragen jetzt das 21.gifts-Icon, der Worker veröffentlicht NIP-65-Relay-Listen, und Foto-Notes tragen eine öffentliche URL mit NIP-92-imeta.
Details
Pass 1: photo resign could drop eventId on zapped notes so receipts would not credit the forum row — resign now skips rows with sats > 0.
Pass 2: the missing-photo query could fill the worker batch with zapped rows, and resetSignedEvent could still clear eventId after a concurrent zap — the store list now filters sats = 0, and the reset CAS requires sats = 0.
Pass 3: both quality and logic reviews reported 0 findings at 691643fc.
Mergeable: MERGEABLE / CLEAN. CI on this head: Typecheck, Lint, Handbook, E2E-check, Test (100% coverage), Build, E2E — success. No open review threads.
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
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.
EN:
Kind:0 profiles now include the 21.gifts icon as
picture, and the worker publishes a NIP-65 kind:10002 relay list so Damus and Primal know where to find notes. Photo posts append a public image URL plus a NIP-92imetatag, andGET /messages/:id/photois unauthenticated so those clients can fetch the bytes. Already-signed photo notes without that URL are re-signed whenPUBLIC_BASE_URLis set and the note has no zaps, so receipts still resolve.DE:
Kind:0-Profile tragen jetzt das 21.gifts-Icon als
picture, und der Worker veröffentlicht eine NIP-65-kind:10002-Relay-Liste, damit Damus und Primal die Notes finden. Foto-Posts hängen eine öffentliche Bild-URL plus NIP-92-imetaan, undGET /messages/:id/photoist unauthentifiziert, damit diese Clients die Bytes laden können. Bereits signierte Foto-Notes ohne diese URL werden neu signiert, wennPUBLIC_BASE_URLgesetzt ist und die Note keine Zaps hat, damit Receipts weiterhin auflösen.Details
Kind:0
contentalways setspicturetohttps://21.gifts/apple-touch-icon.png(plus existingname/display_name/website/ optionallud16).NIP-65 kind:10002 uses the same reservation/watermark pattern as kind:0 and lists the current write-set relays (
rtags). The list is republished when the write-set grows (space-only → public).Kind:1 photo notes append
GET /messages/:id/phototo the content and addimeta(url+m). The public API origin is derived fromPUBLIC_BASE_URL(https://21.gifts→https://api.21.gifts,https://dev.21.gifts→https://dev-api.21.gifts).GET /messages/:id/photono longer requires a bearer token and sendsCache-Control: public, max-age=86400.Resign of URL-less photo notes and the publish-batch skip of a stale URL-less snapshot run only when the API base is non-empty and
satsis 0. Zapped rows keepeventId. An unsetPUBLIC_BASE_URLcannot un-publish and loop.CONTRIBUTING.mddocumentsPUBLIC_BASE_URLand kind:10002 on the Nostr publish flags. Handbook, SPEC, FLOWS, and e2e titles are updated.