Skip to content

Sync upstream Superset changes#40

Merged
maksimzayats merged 4 commits into
mainfrom
sync/upstream-20260601
Jun 1, 2026
Merged

Sync upstream Superset changes#40
maksimzayats merged 4 commits into
mainfrom
sync/upstream-20260601

Conversation

@maksimzayats
Copy link
Copy Markdown
Contributor

Summary

  • Fast-forwarded origin/upstream to superset-sh/superset:main.
  • Merged the refreshed upstream mirror into O3 Code through sync/upstream-20260601.
  • Brought in the upstream API chat ownership checks, OAuth bearer client guard, and relay Redis regional replica read change.

Upstream Range

  • Previous mirror: 7f3e5b342388c087551810b8ca87d9fc2172f56e
  • New mirror: 9bf4052b13061710e64bf96f15c384007f1d1899
  • Superset range: superset-sh/superset 7f3e5b342388c087551810b8ca87d9fc2172f56e..9bf4052b13061710e64bf96f15c384007f1d1899
  • origin/upstream was fast-forwarded and now matches superset/main.

Conflict And Fork-Delta Notes

  • Conflicts: apps/api/src/app/api/chat/[sessionId]/stream/route.ts and apps/api/src/app/api/chat/lib.ts had import conflicts between upstream additions and O3 package scopes.
  • Resolution: kept upstream chat-session ownership checks and helpers, preserved O3 package imports, and used the O3 CLI OAuth client id o3-code-cli for the new trusted-client guard.
  • Fork-delta registry updates: none. Existing O3 branding/client identity delta was preserved.
  • Merge method required: merge commit, not squash/rebase.

Validation

  • git diff --check passed.
  • bun run lint:fix passed; final run reported no fixes applied.
  • bun run lint passed.
  • bun run typecheck passed.
  • bun run build passed; final run was a Turbo cache hit replaying the successful desktop build.
  • bun test did not pass. Final post-build full-suite rerun exited 133 after PTY daemon failures: packages/pty-daemon/test/handoff.test.ts timed out in prepare-upgrade hands off live sessions to a successor binary, packages/pty-daemon/test/control-plane.test.ts timed out in instant-exit shell still produces an exit message and default close kills detached background process groups, then Bun 1.3.13 crashed with panic(main thread): A C++ exception occurred.
  • Additional targeted check: bun test packages/pty-daemon/test/signal-recovery.test.ts apps/desktop/src/renderer/hotkeys/display.test.ts showed signal-recovery.test.ts passing after build artifacts existed, while display.test.ts failed on missing electronTRPC global in trpc-electron/dist/renderer.mjs.

Follow-Ups

  • Investigate existing full-suite bun test instability around PTY daemon handoff/control-plane tests and desktop renderer tests that import electron tRPC without a preload global.

saddlepaddle and others added 4 commits May 31, 2026 20:54
…#5017)

The /api/chat/[sessionId] and /api/chat/[sessionId]/stream handlers only
checked that the caller was authenticated, never that they owned the
session. Any logged-in user could read (GET), inject into (POST), rename
(PATCH), or delete (DELETE) another organization's chat session by id.

Scope every handler by createdBy (matching the secure tRPC chatRouter),
returning 404 on a non-owned session so session ids aren't enumerable.
The tRPC bearer path granted a full user session to any JWT whose
audience matched the API URL, without checking which OAuth client
minted it (azp). Combined with unauthenticated dynamic client
registration, an attacker could register a client with an
attacker-controlled redirect_uri, phish a victim through the consent
screen, and exchange the code for a token with aud=api.superset.sh +
organizationIds — yielding full read/write tRPC access (profile,
billing, etc.).

Gate the bearer path to trusted first-party clients (superset-cli).
Tokens minted by dynamically-registered clients (azp = random
registered id) are now rejected. JWT-plugin tokens (no azp, only
obtainable with an existing session or API key) and API keys are
unaffected, as are the MCP path (separate verifier) and the web app
(cookies).
…ites) (#5019)

@upstash/redis defaults readYourWrites to true, which stamps an
upstash-sync-token on every request and forces each read to block until
the nearest replica has caught up to this client's latest write. Because
every relay writes continuously (register/heartbeat/sweep), that token
keeps advancing, so directory.lookup never gets a fast local replica
read — it pays cross-region replication lag on every cross-region
routing decision, defeating the per-region read replicas.

The directory is eventually-consistent by design (90s TTL + sweepStale +
the maybeReplay self-owner guard), so read-your-writes is not needed.
Disable it so lookups serve from the nearest regional replica.
…60601

# Conflicts:
#	apps/api/src/app/api/chat/[sessionId]/stream/route.ts
#	apps/api/src/app/api/chat/lib.ts
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
o3-code-api Error Error Jun 1, 2026 8:13am
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
o3-code-docs Ignored Ignored Jun 1, 2026 8:13am
o3-code-marketing Ignored Ignored Jun 1, 2026 8:13am
o3-code-web Ignored Ignored Jun 1, 2026 8:13am

@maksimzayats maksimzayats merged commit 81cef26 into main Jun 1, 2026
12 of 13 checks passed
@maksimzayats maksimzayats deleted the sync/upstream-20260601 branch June 1, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants