ai/at
1
0
Files
at/ios/patching/047-social-app-ios-conditional-proxy.patch
2026-03-02 17:29:54 +09:00

63 lines
2.1 KiB
Diff

--- a/src/state/session/agent.ts
+++ b/src/state/session/agent.ts
@@ -43,12 +43,18 @@
export type ProxyHeaderValue = `${Did}#${AtprotoServiceType}`
+// Default Bluesky proxy DID for non-self-hosted accounts (bsky.social etc.)
+const DEFAULT_BSKY_PROXY: ProxyHeaderValue = 'did:web:api.bsky.app#bsky_appview'
+
+function shouldUseProxy(serviceUrl: string): boolean {
+ return !serviceUrl.startsWith(BSKY_SERVICE)
+}
+
export function createPublicAgent() {
configureModerationForGuest() // Side effect but only relevant for tests
const agent = new BskyAppAgent({service: PUBLIC_BSKY_SERVICE})
- // Disable proxy for self-hosted environments
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ // Self-hosted public agent doesn't need proxy
return agent
}
@@ -91,8 +97,10 @@
// after session is attached
const aa = prefetchAgeAssuranceData({agent})
- // Disable proxy for self-hosted environments
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
+ if (shouldUseProxy(storedAccount.service)) {
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
+ }
return agent.prepare({
resolvers: [gates, moderation, aa],
@@ -131,8 +139,10 @@
const moderation = configureModerationForAccount(agent, account)
const aa = prefetchAgeAssuranceData({agent})
- // Disable proxy for self-hosted environments
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
+ if (shouldUseProxy(service)) {
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
+ }
return agent.prepare({
resolvers: [gates, moderation, aa],
@@ -304,8 +314,10 @@
logger.error(e, {message: `session: failed snoozeEmailConfirmationPrompt`})
}
- // Disable proxy for self-hosted environments
- // agent.configureProxy(BLUESKY_PROXY_HEADER.get())
+ // Enable proxy only for non-self-hosted accounts (e.g. bsky.social)
+ if (shouldUseProxy(service)) {
+ agent.configureProxy(DEFAULT_BSKY_PROXY)
+ }
return agent.prepare({
resolvers: [gates, moderation, aa],