Skip to content

TML-2550: elevate explicit-namespace-dsl as a launch-blocking Supabase constituent#664

Merged
wmadden merged 1 commit into
mainfrom
tml-2550-supabase-explicit-dsl-blocker
Jun 1, 2026
Merged

TML-2550: elevate explicit-namespace-dsl as a launch-blocking Supabase constituent#664
wmadden merged 1 commit into
mainfrom
tml-2550-supabase-explicit-dsl-blocker

Conversation

@wmadden-electric
Copy link
Copy Markdown
Contributor

docs-only replan. Reclassifies the explicit namespace-aware DSL/ORM surface (TML-2550) from a deferrable tail unit of target-extensible-ir-namespaces into a required, launch-blocking constituent of the Supabase integration, and gives it a real constituent project directory.

Why

A Supabase app queries auth.* and public.* tables that collide by bare name — both schemas ship a users table. The default-namespace fallback from runtime-qualification (TML-2605) resolves only a single namespace per bare name, so without explicit qualification there is no way to address auth.users: every namespace collapses into one flat space. That is the user-facing fudge the integration must not ship — hence blocker, not fast-follow.

The surface is purely additive on the TML-2605 fallback (default-namespace consumers see zero churn) and depends only on TML-2605, so it runs in parallel and does not gate the IR project close-out.

Changes

  • New constituent projects/explicit-namespace-dsl/{spec.md,plan.md} — mirrors the sibling spec heading set; carries the cross-namespace collision-behaviour decision (union types / qualify-on-collision / compile-error) as the headline open question; plan is one PR, ~2–3 days, four dispatches gated on TML-2605 landing.
  • supabase-integration/README.md — decomposition is now six framework primitives + one integration project; added the constituent row (marked launch blocker); redrew the dependency graph as a parallel track off the IR foundation feeding extension-supabase; fixed a pre-existing stale target-extensible-irtarget-extensible-ir-namespaces link.
  • supabase-integration/overview.md — eight capabilities; added the namespace-aware query surface with the colliding-names rationale and the db.asUser(jwt).sql.auth.users form in the request-flow example.

Linear

Blocker chain wired: TML-2503 (extension-supabase) ← TML-2550 (explicit-dsl) ← TML-2605 (runtime-qualification). TML-2550 moved into the Supabase Integration project.

Scope

Planning docs only — no source, fixtures, or tests touched.

…h-blocking constituent

Reclassify the explicit namespace-aware DSL/ORM surface (TML-2550) from a
deferrable tail unit of target-extensible-ir-namespaces to a required,
launch-blocking constituent of the Supabase integration.

Supabase exposes colliding table names across namespaces (auth.users
alongside public.users). The default-namespace fallback from
runtime-qualification (TML-2605) resolves only one namespace per bare
name, so without explicit qualification there is no way to reach
auth.users -- everything collapses into a single namespace. That is the
user-facing fudge we refuse to ship.

- Add projects/explicit-namespace-dsl/{spec.md,plan.md} as a full
  constituent (six framework primitives + one integration project).
- README: add the constituent row (launch blocker), redraw the
  dependency graph as a parallel track off the IR foundation feeding
  extension-supabase, and fix a stale target-extensible-ir link.
- overview.md: eight capabilities; add the namespace-aware query surface
  with the colliding-names rationale and the db.asUser(jwt).sql.auth.users
  surface in the request-flow example.

It depends only on TML-2605 and is purely additive on the fallback, so it
runs in parallel and does not gate the IR project close-out.

Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric wmadden-electric requested a review from a team as a code owner June 1, 2026 12:37
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 1, 2026

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (4)
  • projects/explicit-namespace-dsl/plan.md is excluded by !projects/**
  • projects/explicit-namespace-dsl/spec.md is excluded by !projects/**
  • projects/supabase-integration/README.md is excluded by !projects/**
  • projects/supabase-integration/overview.md is excluded by !projects/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: b6589c98-ca13-494b-99db-16cecc9ff61a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tml-2550-supabase-explicit-dsl-blocker

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@wmadden wmadden merged commit 7ff5200 into main Jun 1, 2026
20 checks passed
@wmadden wmadden deleted the tml-2550-supabase-explicit-dsl-blocker branch June 1, 2026 15:44
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