You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The Compute artifact MUST include `bundle/compute-entrypoint.js`, which defaults `STUDIO_DEMO_PORT` to `8080` before importing `bundle/server.bundle.js`. Preview deploys MUST NOT pass runtime environment variables through the Compute CLI while its deploy API rejects the CLI's `envVars` request key.
Copy file name to clipboardExpand all lines: Architecture/navigation-url-state.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Navigation state MUST be URL-driven and managed through `useNavigation` + Nuqs.
8
8
9
9
This architecture governs:
10
10
11
-
- active Studio view (`table`, `schema`, `console`, `sql`, `stream`)
11
+
- active Studio view (`table`, `schema`, `console`, `sql`, `stream`, `queries`)
12
12
- active schema/table/stream
13
13
- active stream follow mode
14
14
- active stream aggregation-panel visibility
@@ -78,6 +78,7 @@ Adding a new URL key requires updating `StateKey` in `nuqs.ts` first.
78
78
-`search`: `""`
79
79
-`searchScope`: `"table"` (legacy default)
80
80
-`view`: `"table"`
81
+
-`queries`: no standalone default; only meaningful when the current adapter provides query insights
81
82
-`stream`: no default; only meaningful when `view=stream`
82
83
-`streamFollow`: no global default in `useNavigation`; the active stream view MUST resolve an absent value to `tail` and materialize that into the hash
83
84
-`aggregations`: no global default in `useNavigation`; the active stream view MUST treat an absent flag as closed and MUST NOT materialize that closed state into the hash
@@ -86,9 +87,10 @@ Adding a new URL key requires updating `StateKey` in `nuqs.ts` first.
86
87
When Studio is running without a database connection but with Streams enabled:
87
88
88
89
- the resolved default `view` MUST become `"stream"` instead of `"table"`
89
-
- stale database-oriented views such as `table`, `schema`, `console`, and `sql` MUST resolve back to the stream view instead of trying to render database-only UI against a disabled database session
90
+
- stale database-oriented views such as `table`, `schema`, `console`, `sql`, and `queries` MUST resolve back to the stream view instead of trying to render database-only UI against a disabled database session
90
91
91
92
When URL params are stale from a previous DB, invalid `schema`/`table` values MUST be resolved to valid current defaults.
93
+
When URL params contain `view=queries` but the current adapter does not provide query insights, `useNavigation` MUST resolve back to the default view and the sidebar MUST hide the Queries link.
92
94
Shared table page size and infinite-scroll mode are not derived from URL defaults; they are restored through Studio UI state and then mirrored into query behavior by `usePagination`.
Copy file name to clipboardExpand all lines: Architecture/non-standard-ui.md
+21-2Lines changed: 21 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -145,6 +145,24 @@ It deliberately excludes:
145
145
- The storage breakdowns also need collapsible ledger-style accounting boxes whose headers surface the section totals when folded shut, plus faint shared-cap annotations that sit beside right-aligned byte values and one shared cap marker spanning both Routing and Exact cache rows, which is not a stock ShadCN pattern.
146
146
- No stock ShadCN pattern covers that descriptor-driven observability layout, especially when the UI must distinguish logical bytes from physical storage signals, separate search coverage from historical run indexes, hide unconfigured routing rows, and keep the remaining cost caveats explicit instead of inventing unavailable totals.
- Query insights need a live operational table with provider-driven polling, a live activity chart, table filtering, sort controls, row selection, and previous/next navigation inside a detail sheet.
162
+
- The activity chart is a Studio-specific SVG timeline that derives throughput and latency from snapshot deltas, supports a bounded time-window switcher, and exposes point-level hover readings. No standard ShadCN chart primitive covers that observability display.
163
+
- The same surface conditionally embeds AI recommendations when Studio's shared `llm` hook is available, while disappearing entirely when the embedder does not provide query-insights data.
164
+
- No stock ShadCN component models that combined observability workflow, so Studio keeps a custom composite built from standard ShadCN primitives.
165
+
148
166
## Standardization Candidates
149
167
150
168
These are the current high-signal places where Studio is bypassing a plausible standard ShadCN component or composition pattern.
@@ -250,11 +268,12 @@ These are the current high-signal places where Studio is bypassing a plausible s
-Borderless Chart.js canvas injected into a `DataGrid` header row, wrapped in a custom sticky white band with centered/clamped sizing, plus a custom text-and-icon visualization trigger placed on the SQL result summary line.
273
+
-Bklit ShadCN chart primitives injected into a `DataGrid` header row, wrapped in a custom sticky background band with centered/clamped sizing, plus a custom text-and-icon visualization trigger placed on the SQL result summary line.
255
274
- Plausible standard ShadCN alternative:
256
275
-`Card`
257
276
-`Button`
258
-
-No standard ShadCN chart primitive exists; the chart body must remain custom.
277
+
-The Bklit registry components provide the chart primitives, but the SQL result surface still needs a custom`DataGrid.getBeforeHeaderRows(...)` composition so the chart scrolls with the result grid.
0 commit comments