browser relay: multi-session override, stale session recovery, better error feedback
- relay accepts new extension connections by closing old one (last wins, code 4000) - extension recognizes code 4000 and stops auto-reconnect (shows "replaced" badge) - fix ping interval race where old WS close handler killed new connection's pings - retry CDP commands on "Session with given id not found" by re-attaching debugger - describeError() maps known errors to user-friendly badge tooltips - persisted relay tokens restored on server start - user-scoped token salts, token regeneration/deletion endpoints - extension download endpoint, integrations UI for browser relay setup - browser relay env vars passed to pi-bridge sandboxes - browser screen layout with chat panel and prompt prefix Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,7 @@ export {
|
||||
deleteServerIntegration,
|
||||
getUserIntegrations,
|
||||
getUserIntegration,
|
||||
getIntegrationsByProvider,
|
||||
upsertUserIntegration,
|
||||
deleteUserIntegration,
|
||||
findUserByIntegrationConfig,
|
||||
|
||||
@@ -38,6 +38,10 @@ export async function getUserIntegrations(userId: number): Promise<UserIntegrati
|
||||
return db.select().from(userIntegrations).where(eq(userIntegrations.userId, userId));
|
||||
}
|
||||
|
||||
export async function getIntegrationsByProvider(provider: string): Promise<UserIntegrationSelect[]> {
|
||||
return db.select().from(userIntegrations).where(eq(userIntegrations.provider, provider));
|
||||
}
|
||||
|
||||
export async function getUserIntegration(userId: number, provider: string): Promise<UserIntegrationSelect | undefined> {
|
||||
const [row] = await db
|
||||
.select()
|
||||
|
||||
Reference in New Issue
Block a user