Skip to content

test(stack-encrypt): add shared runtime conformance - #1461

Draft
coderdan wants to merge 1 commit into
feat/stack-encrypt-conformancefrom
feat/stack-encrypt-runtime-conformance
Draft

coderdan wants to merge 1 commit into
feat/stack-encrypt-conformancefrom
feat/stack-encrypt-runtime-conformance

Conversation

@coderdan

Copy link
Copy Markdown
Contributor

Stack Encrypt needs shared expectations for runtime values as well as declarations. This adds the experimental record-runtime-v1 profile with 37 cases executed in native Rust and Go WASI.

The corpus covers missing versus explicit null values, SQL-null omission, sealed-null ciphertext lengths and equality, typed batch round trips, early source refusals, and lossless equality-query conversions. For example, a missing SQL-null field opens as null; a missing sealed-null field is refused. An int64 query can narrow exactly to int32, while an out-of-range or fractional value is refused.

Native provider counters check that invalid batches make no data-key calls and successful batches make one generation/retrieval call when ciphertext is stored. Go's earlier host rejection of missing and unknown fields is recorded explicitly, separately from guest diagnostics. Go provider-call counts are not claimed.

The conformance task and CI guard run all three profiles. The runtime contract, roadmap and coverage map document scope and consolidation candidates. Existing generated SDK, EQL and wider type/operator tests remain intact. Malformed stored records, authenticated read-type failures, context composition, and Python/TypeScript runners remain follow-up work.

Stack: #1404 → #1460 → this PR. Review against feat/stack-encrypt-conformance; merge the parents first and retarget as they land.

Validation: all 249 shared cases and fresh scalar Go-to-Rust artifact exchange pass locally; Rust clippy/formatting, Go lint, Biome and 34 CI wiring checks pass. The unchanged deterministic guest was reused from the parent. No live credentials or database required. Test/docs/tooling changes only; no production API changes or release changeset.

@changeset-bot

changeset-bot Bot commented Oct 31, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fa05297

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

@github-actions

Copy link
Copy Markdown
Contributor

Mutation testing (cargo-mutants, --in-diff, stack-auth + stack-encrypt)

No mutants were generated for the changed lines.

This branch has not been deployed

No deployments
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