Skip to content

[SEA-NodeJS] Rename SEA → kernel across the driver (useSEA → useKernel)#428

Merged
msrathore-db merged 1 commit into
mainfrom
msrathore/kernel-rename-v2
Jun 9, 2026
Merged

[SEA-NodeJS] Rename SEA → kernel across the driver (useSEA → useKernel)#428
msrathore-db merged 1 commit into
mainfrom
msrathore/kernel-rename-v2

Conversation

@msrathore-db

Copy link
Copy Markdown
Contributor

Why

The kernel backend can sit on top of any wire protocol (today SEA / Statement Execution API, later others), so the driver shouldn't brand its path "SEA". This renames the driver-layer surface to kernel, matching the Python connector's use_kernel=True, while preserving genuine references to the SEA wire protocol the kernel speaks.

What changed (mechanical, no behavior change)

  • Public option useSEAuseKernel.
  • lib/sea/lib/kernel/; Sea* classes/types → Kernel*; seaCancel/seaClose/seaFinished/seaServerInfoValuekernel*; SEA_DBMS_*/SEA_SERVER_NAMEKERNEL_*.
  • tests/unit/sea/tests/unit/kernel/, tests/e2e/sea/tests/e2e/kernel/ (+ Sea*-named test files).
  • native/sea/native/kernel/build:native, prepack, loader require path, .gitignore, .prettierignore, .npmignore, .gitattributes, and kernel-e2e.yml updated. index.d.ts/index.js regenerated from a fresh build, so the kernel-e2e drift-guard still matches.
  • Driver-prose comments / binding error messages → "kernel".
  • Dropped the dead 'sea' telemetry backend literal (nothing emits it).

Deliberately preserved

The genuine protocol references — "Statement Execution API (SEA)", "SEA REST protocol", "SEA wire", SEA CreateSession wire fields — and the native-packaging regression-guard for the historical garbled @databricks/sea-native-* npm prefix (renaming it would make the guard vacuous).

On the kernel repo

No kernel-repo changes needed. The kernel's own sea naming (SeaRestTransport, etc.) is the genuine SEA wire-protocol implementation — preserved by design. This rename is entirely the Node driver's path branding.

Base

Built on current main (includes directResults #426). Supersedes #415, which was stacked on the now-closed old SEA stack.

Verification

  • tsc clean; npm run lint (eslint lib/** tests/e2e/**) clean; prettier --check clean.
  • Renamed kernel unit suite 261 passing.
  • git grep useSEA0; no stale lib/sea/native/sea/tests/*/sea path refs.
  • useKernel: true validated end-to-end against a live warehouse — SELECT, directResults CREATE+count, and the binding loading from native/kernel/.

This pull request and its description were written by Isaac.

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown

Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase (git rebase -i main).

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase (git rebase -i main).

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase (git rebase -i main).

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase (git rebase -i main).

The kernel backend is not restricted to the SEA wire protocol, so the
"SEA" branding on the driver-layer code is misleading. Rename the
driver-side surface to "kernel":

- `lib/sea/Sea*.ts` → `lib/kernel/Kernel*.ts` (backend, session/operation
  backends, auth, native loader, results provider, error mapping, etc.)
- `native/sea/` → `native/kernel/`; `tests/{unit,e2e}/sea/` → `.../kernel/`
- public option `useSEA` → `useKernel`; internal `use_sea` → `use_kernel`;
  telemetry backend tag `'sea'` → `'kernel'`
- config/CI: package.json build:native + prepack paths, .gitignore,
  .npmignore, .prettierignore, .gitattributes, kernel-e2e.yml

Genuine SEA *protocol* references are intentionally preserved (SEA wire
protocol, SEA `row_limit`/`wait_timeout`, "Statement Execution API (SEA)"),
since SEA remains one transport the kernel can sit on.

Bump KERNEL_REV to the current kernel main (b676275); the regenerated
native/kernel/index.{d.ts,js} are byte-identical to the committed
contract, so the kernel-e2e drift-guard stays green.

Verified: build-surface tsc clean, eslint clean, prettier clean, kernel
unit suite green, and a live warehouse run through `useKernel:true`
(SELECT, named-param binding, CREATE/INSERT/SELECT/DROP, async+cancel,
error mapping) all pass.

Co-authored-by: Isaac
Signed-off-by: Madhavendra Rathore <madhavendra.rathore@databricks.com>
@msrathore-db msrathore-db force-pushed the msrathore/kernel-rename-v2 branch from a40b3db to 1969e28 Compare June 9, 2026 10:47
@msrathore-db msrathore-db added this pull request to the merge queue Jun 9, 2026
Merged via the queue into main with commit 26be3be Jun 9, 2026
19 checks passed
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