the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Save sealed modal token and redacted ID

Use redactedModalTokenId for UI display and add it to preferences.
Seal the full token with libsodium before persisting and generate a
redacted representation for display.

+17 -3
+16 -3
apps/web/src/pages/settings/provider/Provider.tsx
··· 137 137 setValue("organizationId", providerPref.organizationId ?? ""); 138 138 setValue("vercelProjectId", providerPref.vercelProjectId ?? ""); 139 139 setValue("vercelTeamId", providerPref.vercelTeamId ?? ""); 140 - setValue("tokenId", providerPref.modalTokenId ?? ""); 140 + setValue("tokenId", providerPref.redactedModalTokenId ?? ""); 141 141 setValue("tokenSecret", providerPref.redactedModalTokenSecret ?? ""); 142 142 } 143 143 }, [preferences, setValue]); ··· 163 163 } 164 164 165 165 if (values.provider === "modal") { 166 - if (values.tokenId?.trim()) { 167 - pref.modalTokenId = values.tokenId.trim(); 166 + if (values.tokenId && !values.tokenId.includes("**")) { 167 + const sealedId = sodium.cryptoBoxSeal( 168 + sodium.fromString(values.tokenId.trim()), 169 + sodium.fromHex(PUBLIC_KEY), 170 + ); 171 + pref.modalTokenId = sodium.toBase64( 172 + sealedId, 173 + sodium.base64Variants.URLSAFE_NO_PADDING, 174 + ); 175 + pref.redactedModalTokenId = 176 + values.tokenId.length > 14 177 + ? values.tokenId.slice(0, 11) + 178 + "*".repeat(24) + 179 + values.tokenId.slice(-3) 180 + : values.tokenId; 168 181 } 169 182 if (values.tokenSecret && !values.tokenSecret.includes("**")) { 170 183 const sealed = sodium.cryptoBoxSeal(
+1
apps/web/src/types/preferences.ts
··· 14 14 vercelProjectId?: string; 15 15 vercelTeamId?: string; 16 16 modalTokenId?: string; 17 + redactedModalTokenId?: string; 17 18 modalTokenSecret?: string; 18 19 redactedModalTokenSecret?: string; 19 20 $type: "io.pocketenv.sandbox.defs#sandboxProviderPref";