Skip to content

feat(kernel): wire ABI-version check, mTLS, and CloudFetch toggle options#410

Closed
mani-mathur-arch wants to merge 0 commit into
mani/sea-kernel-ctx-cancelfrom
mani/sea-kernel-tier2-features
Closed

feat(kernel): wire ABI-version check, mTLS, and CloudFetch toggle options#410
mani-mathur-arch wants to merge 0 commit into
mani/sea-kernel-ctx-cancelfrom
mani/sea-kernel-tier2-features

Conversation

@mani-mathur-arch

@mani-mathur-arch mani-mathur-arch commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

What

Wire the four new kernel C-ABI symbols on the driver side, extending the existing experimental-config surface:

  • checkABIVersion() — a sync.Once handshake at the top of OpenSession compares the linked library's kernel_abi_version() against the header macro and refuses to connect on a mismatch.
  • WithKernelClientCertificate(cert, key) — mTLS client identity via the paired setter. Both PEM halves required together (validateKernelConfig rejects an unpaired credential loudly); the key is never logged.
  • WithKernelCloudFetch(enabled) — a tri-state *bool (nil keeps the kernel default on; set forwards the toggle). Distinct from the plain-bool WithCloudFetch.

All three are kernel-only and rejected loudly on the Thrift path; the reflective classification guard is extended so a new experimental field can't ship unforwarded/unrejected. CloseSession stays fire-and-forget (adopting kernel_session_close_blocking would make close a blocking round-trip with no deadline — grouped with the cancellable-close follow-up).

Closes PECOBLR-3648 / 3652 / 3653 (driver side).

Stacked on #409 (mani/sea-kernel-ctx-cancel). Draft — CI build is red until KERNEL_REV is bumped to a merged kernel SHA carrying the new symbols.

Tests

  • Untagged: experimental-field classification guard + option→config wiring + Thrift fail-loud rejection + DeepCopy (all under CGO_ENABLED=0); mTLS-pairing validation.
  • Tagged: TestSetKernelTLS mTLS marshalling case, TestABIVersionMatches. Live-verified on staging (WithKernelCloudFetch(true) connects; (false) reaches the server and hits the documented CAN_CLOUD_DOWNLOAD gate). Default build unchanged.

Co-authored-by: Isaac

@mani-mathur-arch
mani-mathur-arch force-pushed the mani/sea-kernel-tier2-features branch from a067a22 to c54f051 Compare July 16, 2026 15:13
@mani-mathur-arch
mani-mathur-arch force-pushed the mani/sea-kernel-ctx-cancel branch from 42af196 to 26cf09b Compare July 17, 2026 10:07
@mani-mathur-arch
mani-mathur-arch marked this pull request as ready for review July 18, 2026 11:32
@mani-mathur-arch
mani-mathur-arch force-pushed the mani/sea-kernel-tier2-features branch from cf93eb3 to 990f9bf Compare July 18, 2026 11:45
@mani-mathur-arch
mani-mathur-arch force-pushed the mani/sea-kernel-tier2-features branch from 990f9bf to 7e11982 Compare July 18, 2026 12:17
@mani-mathur-arch

Copy link
Copy Markdown
Collaborator Author

Consolidated into #409 — all commits from this PR were folded (DCO sign-offs added) into mani/sea-kernel-ctx-cancel at 7e11982, which is now the single PR merging into main.

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.

1 participant