Align user-facing and seeded anonymous-account labels with anonymous terminology, and show resolved installer version in install and sandbox flows to make release debugging explicit.
Unified · Split
| @@ -11,13 +11,13 @@ CONVEX_SITE_URL=https://your-deployment.convex.site · 10 unmodified lines | ||
| 11 | 11 | # Set to 1 to force task execution to Cloudflare dynamic worker runtime only. |
| 12 | 12 | # EXECUTOR_CLOUDFLARE_DYNAMIC_WORKER_ONLY=1 |
| 13 | 13 | |
| 14 | −# ── WorkOS (optional — enables auth, omit for guest-only mode) ── | |
| 14 | +# ── WorkOS (optional — enables auth, omit for anonymous mode) ── | |
| 15 | 15 | # WORKOS_CLIENT_ID=client_... |
| 16 | 16 | # WORKOS_API_KEY=sk_test_... |
| 17 | 17 | # WORKOS_COOKIE_PASSWORD=<32+ char random string, e.g. openssl rand -base64 32> |
| 18 | 18 | # WORKOS_WEBHOOK_SECRET=... |
| 19 | 19 | |
| 20 | −# ── Anonymous JWT Auth (optional — enables guest bearer auth via Convex Auth) ── | |
| 20 | +# ── Anonymous JWT Auth (optional — enables anonymous bearer auth via Convex Auth) ── | |
| 21 | 21 | # Generate an ES256 key pair (PKCS8 private + SPKI public), then set both PEM values. |
| 22 | 22 | # ANONYMOUS_AUTH_PRIVATE_KEY_PEM="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" |
| 23 | 23 | # ANONYMOUS_AUTH_PUBLIC_KEY_PEM="-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----" |
| @@ -227,7 +227,7 @@ export function SessionInfo() { · 226 unmodified lines | ||
| 227 | 227 | </Button> |
| 228 | 228 | </Link> |
| 229 | 229 | ) : ( |
| 230 | − <p className="text-[11px] text-muted-foreground text-center">Guest mode</p> | |
| 230 | + <p className="text-[11px] text-muted-foreground text-center">Anonymous mode</p> | |
| 231 | 231 | )} |
| 232 | 232 | </div> |
| 233 | 233 | )} |
| @@ -268,7 +268,7 @@ export function WorkspaceSelector({ inHeader = false }: { inHeader?: boolean }) · 267 unmodified lines | ||
| 268 | 268 | ) |
| 269 | 269 | : ( |
| 270 | 270 | <DropdownMenuItem disabled className="text-xs"> |
| 271 | − Guest workspace | |
| 271 | + Anonymous workspace | |
| 272 | 272 | </DropdownMenuItem> |
| 273 | 273 | )} |
| 274 | 274 | {supportsOrganizationManagement ? ( |
| @@ -139,7 +139,7 @@ export function SessionProvider({ children }: { children: ReactNode }) { · 138 unmodified lines | ||
| 139 | 139 | staleTime: Number.POSITIVE_INFINITY, |
| 140 | 140 | queryFn: async () => { |
| 141 | 141 | if (!storedSessionId) { |
| 142 | − throw new Error("No guest session id available"); | |
| 142 | + throw new Error("No anonymous session id available"); | |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | const context = await bootstrapAnonymousSession({ sessionId: storedSessionId }); |
| @@ -736,6 +736,15 @@ fi · 735 unmodified lines | ||
| 736 | 736 | |
| 737 | 737 | echo "" |
| 738 | 738 | echo "Installed to: $INSTALL_DIR/$APP" |
| 739 | +if [[ -n "$RESOLVED_VERSION" ]]; then | |
| 740 | + if [[ "$RESOLVED_VERSION" == "latest" ]]; then | |
| 741 | + echo "Version: latest" | |
| 742 | + else | |
| 743 | + echo "Version: v$RESOLVED_VERSION" | |
| 744 | + fi | |
| 745 | +elif [[ -n "$BINARY_PATH" || -f "$LOCAL_BINARY_CANDIDATE" ]]; then | |
| 746 | + echo "Version: local build" | |
| 747 | +fi | |
| 739 | 748 | if [[ -f "$WEB_INSTALL_DIR/server.js" ]]; then |
| 740 | 749 | echo "Web bundle installed to: $WEB_INSTALL_DIR" |
| 741 | 750 | fi |
| @@ -45,8 +45,8 @@ export async function ensureAnonymousIdentity( · 44 unmodified lines | ||
| 45 | 45 | const accountId = await ctx.db.insert("accounts", { |
| 46 | 46 | provider: "anonymous", |
| 47 | 47 | providerAccountId, |
| 48 | − email: `${providerAccountId}@guest.executor.local`, | |
| 49 | − name: "Guest User", | |
| 48 | + email: `${providerAccountId}@anonymous.executor.local`, | |
| 49 | + name: "Anonymous User", | |
| 50 | 50 | status: "active", |
| 51 | 51 | createdAt: now, |
| 52 | 52 | updatedAt: now, |
| @@ -205,6 +205,13 @@ try { · 204 unmodified lines | ||
| 205 | 205 | ); |
| 206 | 206 | assertSuccess(install, "sandbox install"); |
| 207 | 207 | |
| 208 | + const installedVersion = extractSemver(install) ?? extractInstalledVersion(install); | |
| 209 | + if (installedVersion) { | |
| 210 | + console.log(`[sandbox] installed executor version: v${installedVersion}`); | |
| 211 | + } else { | |
| 212 | + console.warn("[sandbox] could not determine installed executor version from installer output"); | |
| 213 | + } | |
| 214 | + | |
| 208 | 215 | const runtimeDoctor = await runSandboxBash( |
| 209 | 216 | sandbox, |
| 210 | 217 | "~/.executor/bin/executor doctor --runtime-only --verbose", |
| @@ -228,7 +235,6 @@ try { · 17 unmodified lines | ||
| 228 | 235 | if (isNoProjectDoctorResult(doctor)) { |
| 229 | 236 | console.warn("[sandbox] doctor reported no local project context; attempting bootstrap recovery from release tag source"); |
| 230 | 237 | |
| 231 | − const installedVersion = extractSemver(install) ?? extractInstalledVersion(install); | |
| 232 | 238 | if (!installedVersion) { |
| 233 | 239 | throw new Error("Could not determine installed executor version for bootstrap recovery"); |
| 234 | 240 | } |