A third party ATProto appview

fix

Changed files
+14 -12
server
+14 -12
server/routes.ts
··· 3585 3585 '/xrpc/app.bsky.actor.getSuggestions', 3586 3586 xrpcOrchestrator.getSuggestions.bind(xrpcOrchestrator) 3587 3587 ); 3588 - app.get( 3589 - '/xrpc/app.bsky.actor.getPreferences', 3590 - xrpcOrchestrator.getPreferences.bind(xrpcOrchestrator) 3591 - ); 3592 - app.post( 3593 - '/xrpc/app.bsky.actor.putPreferences', 3594 - xrpcOrchestrator.putPreferences.bind(xrpcOrchestrator) 3595 - ); 3596 - app.put( 3597 - '/xrpc/app.bsky.actor.putPreferences', 3598 - xrpcOrchestrator.putPreferences.bind(xrpcOrchestrator) 3599 - ); 3588 + // Preferences endpoints - return minimal responses 3589 + // These are PDS-only but some clients expect the AppView to handle them 3590 + app.get('/xrpc/app.bsky.actor.getPreferences', (req, res) => { 3591 + // Return empty preferences to unblock the client 3592 + res.json({ preferences: [] }); 3593 + }); 3594 + app.post('/xrpc/app.bsky.actor.putPreferences', (req, res) => { 3595 + // Accept but don't persist (preferences live on PDS) 3596 + res.json({}); 3597 + }); 3598 + app.put('/xrpc/app.bsky.actor.putPreferences', (req, res) => { 3599 + // Accept but don't persist (preferences live on PDS) 3600 + res.json({}); 3601 + }); 3600 3602 3601 3603 // Graph endpoints 3602 3604 app.get(