I've observed the following issues with Anisota:
- It appears to proxy chat to the wrong endpoint (did:web:api.bsky.app instead of did:web:api.bsky.chat) - this causes messages not to load with Tranquil PDS
- It appears to be missing the
$typefield on records it tries to create. This leads to Tranquil rejecting them as invalid records... - It appears to proxy some endpoints that it shouldn't. This leads to bluesky stating that some XRPC routes are unsupported
I've applied the following fixes:
- I've applied an nginx location which forces all PDS routes starting
in
/xrpc/chat.bsky.to proxy to did:web:api.bsky.chat. It's a bad hack but I suspect it'll never actually do the wrong thing - I've made a patch to Tranquil (https://tangled.org/tranquil.farm/tranquil-pds/pulls/21)
to automatically elide
$typewhen it's missing. The code is not particularly good IMHO but it does work... - I've made a patch to Tranquil (https://tangled.org/tranquil.farm/tranquil-pds/pulls/20) to ban proxying on some more routes. @nel.pet has mentioned that this probably breaks social-app in some cases (see that PR's comments), but it's fine as a stopgap for us now
- I've updated the Tranquil pin to apply patches from #2 and #3
I currently believe that neither of the Tranquil fixes are
upstreamable. This means that, unless we want to turn them into actual
patches = [] and maintain them out of tree forever, we will need to
drop them eventually. The True Fix is to help the Anisota developers
debug and fix these issues, which we are in the process of doing...
We're solving these problems in other ways - i.e. talking to anisota devs & using a browser extension to rewrite some bits in the meantime