From c367bd47ad224ba48c73e1ed928f867155c4ee7a Mon Sep 17 00:00:00 2001 From: "@permadeath.com" Date: Mon, 17 Aug 2026 11:02:12 -0400 Subject: [PATCH] feat(popup): offer Taproot alongside PDSls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit atproto.at renders any record at /uri/{at-uri}, publications and documents alike, so it passes the both-views rule the menu now depends on. Both catalog builders are correct, confirmed against live records. Like pdsls.dev it is a record viewer rather than a reading experience — its page is titled "site.standard.publication by @handle" — so the two sit last, in the order the catalog gives. --- public/vendored/README.md | 4 ++++ public/vendored/taproot.png | Bin 0 -> 839 bytes src/lib/readers.test.ts | 7 ++++++- src/lib/readers.ts | 10 ++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 public/vendored/taproot.png diff --git a/public/vendored/README.md b/public/vendored/README.md index b371825..88c289f 100644 --- a/public/vendored/README.md +++ b/public/vendored/README.md @@ -10,6 +10,10 @@ hot-linking third-party hosts. Fetched 2026-08-08: - `pdsls.png` — https://pdsls.dev/favicon.ico (actually a 512×512 WebP), converted to a 32×32 PNG. +Fetched 2026-08-17: + +- `taproot.png` — https://atproto.at/favicon-32x32.png, as served. + Fetched 2026-08-12: - `bluesky.png` — https://web-cdn.bsky.app/static/favicon-32x32.png, as diff --git a/public/vendored/taproot.png b/public/vendored/taproot.png new file mode 100644 index 0000000000000000000000000000000000000000..514b9de671ba8ff12ea5ee57afe4b8891a6c44a2 GIT binary patch literal 839 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U}p4m zaSVxYe>=6@BP>zmSiO4i$}3``nU2BQ(o+_uowjpURm$mPbG+rpdAqeW$wZ@>%~e&m z>r9TPvlDk`TZ*^cl3%wbu3T!;tMul`SE;1O+{#^#svrI-z%5??D9Vq zAM=QzK;uEcfrSU^S2s*Pu%Ry?jPsh2aTfcQb~Yw)x$AEEdnaGecyNcoF68F<{Kx6) z>Rcz&r}qB5a78pvo#UpN>a!R6Og?XzS39--czkMO^f$(7?G7;w0vmjH1~VpCJ4Ce@ z*m|GT*~ENd7iZ5awm7*DdxZGJXBx3>YyRON@lf}TcF3Bg6TS;*-8cY0M6fpAKD#^5ou%iCV2zoE{{8<92kvtlEp9oc=a#rMRQTaZ?GN`?sjwZ^sb4v7 zVPX9$r#qZWosA=GTu$s=?vgg6b@%or?%>w1;!~&C6qGVWHx;aPk=(m~T~Vpcg*}36 zWcW^he(+M-gSY)gT~q4vpa`zb%!((KeC$@G++|t3eVuONKZO$;4$b_X_OX&#v2caJ zwrI@?F2%WLj)~0;yR_~Wqrom%48t5;TU&yo<{NJv&rdu zrtb~a*}cy+Z?0gD9OuQotqb0sT3Zw$%oY6WI@1w$2d@r+@)*zUvyMtxOCK{iUv^S@ z#vT4^ZQK*tr`-Ad;5nz|@XWEd$p(BwZ!Iks$ltui)tc36aJs7QVVhqzH>Gj!_3XZ+rh-$;j$CUwyEL;Y+xf%o zMOT;ot-5N>`S$4f=^JKFTPmZ~bWV3cLfeL?n>Lwz{~iA?tig@;H xseb#uclWsx?C1P%VB%wFXX0c1=gDfv?5dJ9q3ujRD+2=qgQu&X%Q~loCIIhAbF}~f literal 0 HcmV?d00001 diff --git a/src/lib/readers.test.ts b/src/lib/readers.test.ts index 4b504f0..79b3df2 100644 --- a/src/lib/readers.test.ts +++ b/src/lib/readers.test.ts @@ -165,7 +165,12 @@ describe('READERS', () => { }) it('offers the readers confirmed against the live services, in catalog order', () => { - expect(READERS.map((r) => r.id)).toEqual(['leaflet', 'standardReader', 'pdsls']) + expect(READERS.map((r) => r.id)).toEqual([ + 'leaflet', + 'standardReader', + 'pdsls', + 'taproot', + ]) }) // The rule the menu depends on: a reader that works on a publication but diff --git a/src/lib/readers.ts b/src/lib/readers.ts index 3a2fcf1..ea69e1c 100644 --- a/src/lib/readers.ts +++ b/src/lib/readers.ts @@ -44,6 +44,11 @@ // both URLs are ours. // - pdsls.dev renders any record at /{at-uri}, documents included. Ours and // the catalog's builder produce the same string. +// - atproto.at (Taproot) renders any record at /uri/{at-uri}, publications +// and documents alike (confirmed 2026-08-17 against permadeath.com's +// records). The catalog's builder is right for both. Like pdsls.dev it is +// a record viewer rather than a reading experience — the page is titled +// "site.standard.publication by @handle" — which is why both sit last. // // Catalogued and deliberately not offered: // @@ -139,6 +144,11 @@ const CONFIRMED: Record = { pub: 'catalog', doc: 'catalog', }, + taproot: { + icon: '/vendored/taproot.png', + pub: 'catalog', + doc: 'catalog', + }, } /** -- 2.51.2