Skip to content

chore(release): exit changesets pre mode — next release is 1.0.0 - #843

Merged
coderdan merged 8 commits into
mainfrom
chore/exit-prerelease-1-0-0
Jul 30, 2026
Merged

chore(release): exit changesets pre mode — next release is 1.0.0#843
coderdan merged 8 commits into
mainfrom
chore/exit-prerelease-1-0-0

Conversation

@coderdan

@coderdan coderdan commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

What

Stops the rc prerelease series and prepares the notes that ship with it. The
next release PR opens as 1.0.0 and publishes under the latest dist-tag.

Closes #791.

1. Exit pre mode

  • .changeset/pre.jsonmode: "exit" (via pnpm changeset pre exit). Kept
    rather than deleted: the next changeset version run is what graduates the
    versions, consumes the retained changesets into each CHANGELOG.md, and
    deletes the file itself.
  • CONTRIBUTE.md: the stable flow is documented as the default; the pre-mode
    recipe stays, marked exceptional, and now names the trap that bit this line —
    pre mode retains consumed changeset markdown until exit, so a stale entry
    rides into the stable changelog.

2. Reconcile the retained 1.0.0 notes

Pre mode retains every consumed changeset until exit, so the aggregated 1.0.0
changelog was the union of the whole rc series — including entries that later
work made wrong. Reconciled against what main actually ships:

  • Re-homed adapter entries onto the packages that own the code
    @cipherstash/stack-drizzle / @cipherstash/stack-supabase rather than
    @cipherstash/stack, so Drizzle and Supabase fixes appear in the changelog of
    the package that exposes them. The drizzle-root collapse is split from its
    one-line stash / @cipherstash/stack follow-on, which was dragging the
    whole adapter body into core's changelog.
  • Renamed removed APIs to their final names — the
    @cipherstash/stack/eql/v3/drizzle and @cipherstash/stack-drizzle/v3
    subpaths, createEncryptionOperatorsV3 / extractEncryptionSchemaV3, the
    encrypted contains() operator (now matches()), and the alpha-era bare
    domain names (now public.eql_v3_*).
  • Dropped the "Superseded later in this release" footers. Where the entry
    was wholly about an rc-only surface 1.0.0 removes (--eql-version, db push,
    encrypt cutover), the changeset is deleted — the published rc changelog
    sections still record it. Where the substance survives, the negated paragraph
    is gone and the body describes 1.0.0.
  • Removed the blanket "order() on any encrypted column is rejected" claim,
    which the OPE ord_term entry in the same release contradicts.

Entries flagged in the earlier review that main had already fixed are left
alone: the eql_v3_encrypted prompt domain, the DynamoDB audit caveat, the v2
wire-emission contract, and the @cipherstash/nextjs mis-assignment.

3. Skills pin 1.0.0, and a guard so they stay pinned (#791)

  • skills/stash-edge hardcoded @cipherstash/stack@1.0.0-rc.4 in its Deno
    npm: import and deno.json import map; skills/stash-cli pinned the
    bare-project npx --package=stash@… one-shot the same way. Nothing rewrites
    those literals — tsup.config.ts copies skills/ verbatim, and the
    __STASH_RUNTIME_VERSIONS__ embed only reaches compiled CLI code — so the
    published skill would have told Deno and Supabase Edge users to pin a release
    candidate in production, inside their own repo. All four now pin 1.0.0.
  • The paragraph explaining why @^1.0.0 does not match 1.0.0-rc.4 is gone
    with the rc pin; "pin exactly, Deno caches by specifier" stands on its own.
  • The supabase-worker example pins 1.0.0 instead of ^1.0.0-rc.3.
  • packages/cli/src/__tests__/release-train.test.ts now sweeps every
    skills/*/SKILL.md: an exact pin of a release-train package must be a stable
    version on the current major. Confirmed red on a reintroduced rc pin, and the
    existing stash-cli pin assertion compares against the stable version so the
    version-bump PR is not red on arrival.

Verification

changeset version run against an isolated copy of the tree (throwaway
directory — nothing versioned on the branch):

package before after exit
stash 1.0.0-rc.4 1.0.0
@cipherstash/stack 1.0.0-rc.4 1.0.0
@cipherstash/stack-drizzle 1.0.0-rc.4 1.0.0
@cipherstash/stack-supabase 1.0.0-rc.4 1.0.0
@cipherstash/prisma-next 1.0.0-rc.4 1.0.0
@cipherstash/wizard 1.0.0-rc.4 1.0.0
@cipherstash/migrate 1.0.0-rc.1 1.0.0
@cipherstash/nextjs 4.1.1 4.1.2 (internal dep patch)

.changeset/pre.json was deleted by that run and every changeset consumed. The
generated 1.0.0 sections were then re-scanned for the removed names, subpaths,
and CLI commands above; the only remaining matches are entries quoting the wrong
text they correct.

  • pnpm --filter stash test — 909 passed
  • pnpm run code:check — error-free (warnings only, which CI allows)

Deliberately not in this PR

  • Peer ranges (@cipherstash/stack: ">=1.0.0-rc.0" in packages/cli and
    packages/migrate) are left alone: they already admit 1.0.0, and tightening
    them would strand rc consumers.

Summary by CodeRabbit

  • New Features
    • EQL v3 is now the standard path for database installation, encryption, Drizzle, Supabase, and edge environments.
    • Added safer EQL v3 query handling, encrypted search, ordering, list filters, and rollout workflows.
    • Added migration tooling for detecting columns and managing encrypted-column transitions.
  • Bug Fixes
    • Improved error messages for unconfigured encryption clients.
    • Prevented invalid searches, malformed filters, unsafe rewrites, and accidental ciphertext loss.
  • Documentation
    • Updated release, prerelease, CLI, migration, and integration guidance for stable 1.0 releases and EQL v3.

Summary by CodeRabbit

  • New Features
    • EQL v3 is now the standard path for encryption setup, migrations, Drizzle, Supabase, and edge environments.
    • Added safer EQL v3 query operators, ordering, encrypted list filtering, and rollout support.
    • Added clearer migration handling for encrypted columns and safer plaintext removal.
  • Bug Fixes
    • Improved Supabase filter parsing and null, containment, and list handling.
    • Prevented unsafe migration rewrites and corrected encryption configuration errors.
    • Empty free-text searches and invalid EQL payloads now fail safely.
  • Documentation
    • Updated CLI, setup, migration, prerelease, and bundled skill guidance for stable EQL v3 workflows.

The 1.0 line has been publishing `1.0.0-rc.*` under the `rc` dist-tag since
`pre enter rc`. Exiting pre mode graduates the release train to stable: the
next "Version Packages" PR opens as 1.0.0 and publishes under `latest`.

- `.changeset/pre.json` moves to `mode: "exit"`. The next `changeset version`
  run graduates every package, consumes the ~140 accumulated changesets into
  `CHANGELOG.md`, and deletes the file. Verified by running `changeset version`
  in an isolated copy of the tree: stash, @cipherstash/stack, stack-drizzle,
  stack-supabase, prisma-next, wizard and migrate all land on 1.0.0.
- The Stack 1.0 changeset headline no longer says "(release candidate)" — that
  line becomes the top of the 1.0.0 changelog.
- CONTRIBUTE.md documents the stable flow as the default and keeps the pre-mode
  recipe as an explicitly exceptional path, including the trap that pre mode
  retains consumed changeset markdown until exit.
@coderdan
coderdan requested a review from a team as a code owner July 30, 2026 02:11
@changeset-bot

changeset-bot Bot commented Jul 30, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 29ee37a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
stash Major
@cipherstash/stack Major
@cipherstash/stack-drizzle Major
@cipherstash/stack-supabase Major
@cipherstash/migrate Minor
@cipherstash/wizard Major
@cipherstash/basic-example Patch
@cipherstash/e2e Patch
@cipherstash/bench Patch
@cipherstash/stack-prisma Major
@cipherstash/test-kit Patch
@cipherstash/prisma-example Patch

Not sure what this means? Click here to learn what changesets are.

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

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f8ce5e65-0046-483d-9913-9a8c54bfd6b2

📥 Commits

Reviewing files that changed from the base of the PR and between eca1758 and 29ee37a.

📒 Files selected for processing (6)
  • .changeset/eql-v3-drizzle-fail-open-guards.md
  • .changeset/eql-v3-supabase-adapter.md
  • .changeset/pre.json
  • CONTRIBUTE.md
  • packages/cli/src/__tests__/release-train.test.ts
  • skills/stash-cli/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • .changeset/eql-v3-supabase-adapter.md
  • CONTRIBUTE.md

📝 Walkthrough

Walkthrough

The PR finalizes stable release metadata, documents the rc prerelease workflow, and aligns EQL v3 adapter, CLI, migration, Supabase, Drizzle, skill, and package-pinning guidance.

Changes

Release and EQL v3 alignment

Layer / File(s) Summary
Release workflow
.changeset/pre.json, .changeset/stack-1-0-0-rc.md, CONTRIBUTE.md
Changesets exit prerelease mode, the Stack 1.0 release note is finalized, and stable plus rc release procedures are documented.
EQL v3 adapter contracts
.changeset/eql-v3-*.md, .changeset/supabase-*.md
Drizzle and Supabase notes describe updated root exports, typed encryption, fail-closed validation, query operators, operand serialization, and ordering behavior.
CLI and migration lifecycle
.changeset/init-*.md, .changeset/migrate-*.md, .changeset/remove-eql-v2-*.md
CLI installation, initialization, rollout, column detection, package migration, and EQL v3 lifecycle guidance are updated.
Skills and stable pins
.changeset/skills-*.md, skills/*, packages/cli/src/__tests__/release-train.test.ts
Bundled skill guidance uses stable versions and updated EQL v3 and CLI instructions, with tests validating release-train pins.
Supporting release notes
.changeset/encrypt-client-guard-parity.md, .changeset/rewriter-never-drops-ciphertext.md
Supporting changesets clarify shared client guards and migration-rewriter behavior.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

Possibly related PRs

Suggested reviewers: auxesis, calvinbrewer, tobyhede

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: exiting Changesets prerelease mode for the 1.0.0 release.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/exit-prerelease-1-0-0

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CONTRIBUTE.md`:
- Line 116: Update the “Pre release process” heading in CONTRIBUTE.md to use the
hyphenated spelling “Pre-release process,” preserving the rest of the heading
unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 71f02186-4521-4a6f-98d7-4f89a069a9be

📥 Commits

Reviewing files that changed from the base of the PR and between 8817cfb and d53328b.

📒 Files selected for processing (3)
  • .changeset/pre.json
  • .changeset/stack-1-0-0-rc.md
  • CONTRIBUTE.md

Comment thread CONTRIBUTE.md Outdated

@freshtonic freshtonic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed by reproducing changeset version against the PR head in an isolated worktree (now removed; main tree untouched).

Approving. Correct, well-scoped release-mechanics change.

Verified end-to-end

  • Exiting pre mode graduates the fixed group (stash, @cipherstash/stack, -drizzle, -supabase, prisma-next, wizard) and @cipherstash/migrate all to exactly 1.0.0; @cipherstash/nextjs → 4.1.2, @cipherstash/bench → 0.0.5. .changeset/pre.json is deleted and all 144 changesets consumed on exit — matches the PR's table precisely, nothing stranded at rc, no stray bump past 1.0.0.
  • Keeping pre.json at mode: "exit" (rather than deleting it) is correct — the next changeset version is what consumes retained changesets and deletes the file.
  • The stack-1-0-0-rc.md headline edit renders as "CipherStash Stack 1.0." at the top of the 1.0.0 changelog.
  • release.yml runs pnpm run release = build && changeset publish with no hardcoded --tag, so publish derives latest correctly once pre mode is exited.
  • CONTRIBUTE.md stable-flow and pre-mode recipes are accurate; no changeset in this PR is correct per AGENTS.md (release tooling + CONTRIBUTE.md, no shipped package surface).

Not blocking this PR, but must be handled in the "Version Packages" release PR before it publishes — retained rc-era changeset prose will re-aggregate into the customer-facing 1.0.0 CHANGELOG (the first latest changelog customers see), and two entries now contradict later ones:

  • eql-v3-drizzle.md ("the v3 text-search helper is contains") contradicts eql-v3-rename-contains-to-matches.md (renames contains()matches()).
  • .changeset/stash-supabase-contains-substrings.md describes contains() as fuzzy-substring, contradicting the rename semantics (matches() = fuzzy, contains() = exact containment).

These are changelog text, not release behaviour, so they belong in the release PR where CHANGELOG.md is generated and can be hand-edited. Given the CONTRIBUTE.md trap note, I'd recommend a full pass over the ~140 retained entries there, not just these two.

Caveat: I couldn't exercise the actual npm publish/dist-tag resolution (needs the release workflow + OIDC), but confirmed statically that changeset publish has no --tag override.

coderdan added 2 commits July 30, 2026 12:29
…s at 1.0.0 (#791)

Pre mode retains consumed changeset markdown until exit, so the aggregated
1.0.0 changelog was the union of every rc entry — including ones that later
changes made wrong. Reconciled against the surface main actually ships.

Changesets:

- Re-homed adapter entries onto the packages that own the code
  (`@cipherstash/stack-drizzle` / `@cipherstash/stack-supabase` instead of
  `@cipherstash/stack`), so the details land in the changelog of the package
  that exposes the behaviour, and split the drizzle-root collapse from its
  one-line `stash` / `@cipherstash/stack` follow-on.
- Rewrote entries naming removed APIs to their final names: the
  `@cipherstash/stack/eql/v3/drizzle` and `@cipherstash/stack-drizzle/v3`
  subpaths, `createEncryptionOperatorsV3` / `extractEncryptionSchemaV3`, the
  encrypted `contains()` operator (now `matches()`), and the alpha-era bare
  domain names (now `public.eql_v3_*`).
- Dropped the "Superseded later in this release" footers. Where the entry was
  wholly about an rc-only surface 1.0.0 removed (`--eql-version`, `db push`,
  `encrypt cutover`), the entry is deleted — the rc changelog sections still
  record it; where the substance survives, the stale paragraph is gone and the
  body describes 1.0.0.
- Removed the blanket "order() on any encrypted column is rejected" claim that
  the OPE ord_term entry contradicts.

Skills (#791):

- `skills/stash-edge` and `skills/stash-cli` pinned `1.0.0-rc.4` in four
  places. Nothing rewrites those literals — tsup copies `skills/` verbatim and
  the runtime-versions embed only reaches compiled CLI code — so the published
  skill would have told Deno and Supabase Edge users to pin a release
  candidate in production. They now pin `1.0.0`, and the paragraph explaining
  why `@^1.0.0` misses `1.0.0-rc.4` is gone with the rc pin.
- The `supabase-worker` example pins `1.0.0` too.
- `release-train.test.ts` now sweeps every `skills/*/SKILL.md`: an exact pin of
  a release-train package must be a stable version on the current major.
  Verified it fails on a reintroduced rc pin.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/eql-v3-adapter-type-robustness.md:
- Around line 2-3: Update the changeset entries for `@cipherstash/stack-drizzle`
and `@cipherstash/stack-supabase` from minor to major to reflect the breaking
typed client contract change in createEncryptionOperators. Only retain minor
bumps if the project’s explicit prerelease-exit plan is intended to absorb this
compatibility break.

In @.changeset/eql-v3-drizzle-fail-open-guards.md:
- Around line 19-20: Update the “Terms of 3+ codepoints are unaffected”
statement in the breaking-changes description to refer to terms at or above the
configured token_length, preserving the default of 3 without hardcoding it as
the universal threshold.

In @.changeset/eql-v3-supabase-adapter.md:
- Around line 5-17: Update the unsupported-domain lifecycle description in the
changeset to match the implementation: explicitly declared schemas are validated
during construction, while unmodeled public.eql_v3_* columns are rejected when a
caller names the affected table. Remove the claim that every unsupported-domain
column throws at construction.

In `@packages/cli/src/__tests__/release-train.test.ts`:
- Around line 17-20: Update manifestVersion to accept the existing
ReleaseTrainPackage type and narrow regex captures with a type guard before
indexing RELEASE_TRAIN_MANIFESTS. Apply the same typed narrowing to the regex
handling around lines 100-103, preserving the existing invalid-package behavior
and verify with pnpm run code:check.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ad8c8ef5-c8e8-4e3c-938a-a9180357c1cf

📥 Commits

Reviewing files that changed from the base of the PR and between d53328b and eca1758.

📒 Files selected for processing (38)
  • .changeset/adapter-split-skills.md
  • .changeset/cli-eql-v3-single-bundle.md
  • .changeset/cli-v2-cutover-prompt-correction.md
  • .changeset/decrypt-chaining-docs.md
  • .changeset/encrypt-client-guard-parity.md
  • .changeset/encrypt-lifecycle-mixed-table.md
  • .changeset/eql-v3-adapter-type-robustness.md
  • .changeset/eql-v3-cli-install.md
  • .changeset/eql-v3-drizzle-encrypt-query.md
  • .changeset/eql-v3-drizzle-fail-open-guards.md
  • .changeset/eql-v3-drizzle.md
  • .changeset/eql-v3-ga-rebaseline.md
  • .changeset/eql-v3-rename-contains-to-matches.md
  • .changeset/eql-v3-sole-docs.md
  • .changeset/eql-v3-supabase-adapter.md
  • .changeset/eql-v3-wasm-inline.md
  • .changeset/init-drizzle-eql-v3.md
  • .changeset/init-placeholder-eql-v3.md
  • .changeset/init-scaffold-compiles.md
  • .changeset/migrate-column-exists.md
  • .changeset/migrate-eql-v3.md
  • .changeset/remove-eql-v2-drizzle-root-consumers.md
  • .changeset/remove-eql-v2-drizzle-root.md
  • .changeset/rewriter-never-drops-ciphertext.md
  • .changeset/skills-eql-v3-accuracy.md
  • .changeset/skills-pin-stable-1-0.md
  • .changeset/skills-v3-lifecycle-honesty.md
  • .changeset/stash-cli-eql-v3-default.md
  • .changeset/stash-cli-skill-refresh.md
  • .changeset/stash-supabase-contains-substrings.md
  • .changeset/supabase-in-list-operands.md
  • .changeset/supabase-is-null-operands.md
  • .changeset/supabase-or-string-parser.md
  • .changeset/supabase-v3-order-by-ope-term.md
  • examples/supabase-worker/supabase/functions/cipherstash-roundtrip/index.ts
  • packages/cli/src/__tests__/release-train.test.ts
  • skills/stash-cli/SKILL.md
  • skills/stash-edge/SKILL.md
💤 Files with no reviewable changes (6)
  • .changeset/eql-v3-cli-install.md
  • .changeset/skills-v3-lifecycle-honesty.md
  • .changeset/cli-v2-cutover-prompt-correction.md
  • .changeset/stash-cli-eql-v3-default.md
  • .changeset/remove-eql-v2-drizzle-root.md
  • .changeset/encrypt-lifecycle-mixed-table.md

Comment thread .changeset/eql-v3-adapter-type-robustness.md
Comment thread .changeset/eql-v3-drizzle-fail-open-guards.md Outdated
Comment thread .changeset/eql-v3-supabase-adapter.md
Comment thread packages/cli/src/__tests__/release-train.test.ts Outdated
@coderdan

Copy link
Copy Markdown
Contributor Author

Merged feat/842-rename-packages-1-0 (PR #844) into this branch and reconciled the retained changesets with the 1.0 package renames — the changesets this PR re-homed onto @cipherstash/stack-supabase now target @cipherstash/supabase, and the CONTRIBUTE.md train list uses the new names. Re-ran the isolated changeset version simulation on the merged branch: all train packages graduate to 1.0.0, pre.json is consumed, and the only old-name mentions in the generated 1.0.0 sections are the rename entry itself. pnpm --filter stash test: 909 passed. Merge #844 first; this PR's diff then shrinks back to its own changes.

coderdan added 3 commits July 30, 2026 13:39
… to @cipherstash/stack-prisma

Closes #842 (revised plan: all adapters use the stack- prefix).

- @cipherstash/prisma-next -> @cipherstash/stack-prisma
  (dir packages/stack-prisma), matching @cipherstash/stack-drizzle and
  @cipherstash/stack-supabase, which keep their names.
- skills/stash-prisma-next -> skills/stash-prisma; CLI/wizard skill maps,
  install-deps, release-train manifests, workflows, docs, and SECURITY.md
  updated to match.
- examples/prisma package renamed @cipherstash/prisma-next-example ->
  @cipherstash/prisma-example.

The prisma-next provider id, --prisma-next init flag, and
prisma-next.config.ts detection are unchanged - they name the external
Prisma Next framework (@prisma-next/*), not our package.

Retained changesets and .changeset/{config,pre}.json are rewritten to the
new name so the pre-mode exit in #843 versions and publishes
@cipherstash/stack-prisma as 1.0.0 (the name is unclaimed on npm).
@coderdan

Copy link
Copy Markdown
Contributor Author

Plan revised (#842 discussion): all adapters keep the stack- prefix — @cipherstash/prisma-next@cipherstash/stack-prisma; stack-drizzle and stack-supabase unchanged. Rebuilt this branch: dropped the earlier merge, merged the rebuilt #844 branch, updated CONTRIBUTE.md's train list. Re-ran the isolated changeset version simulation: whole train graduates to 1.0.0, pre.json consumed, generated changelogs use the final names. pnpm --filter stash test: 909 passed. Still merge #844 first.

@coderdan
coderdan force-pushed the chore/exit-prerelease-1-0-0 branch from 5141318 to 43dc906 Compare July 30, 2026 03:42
coderdan added a commit that referenced this pull request Jul 30, 2026
… to @cipherstash/stack-prisma (#844)

Closes #842 (revised plan: all adapters use the stack- prefix).

- @cipherstash/prisma-next -> @cipherstash/stack-prisma
  (dir packages/stack-prisma), matching @cipherstash/stack-drizzle and
  @cipherstash/stack-supabase, which keep their names.
- skills/stash-prisma-next -> skills/stash-prisma; CLI/wizard skill maps,
  install-deps, release-train manifests, workflows, docs, and SECURITY.md
  updated to match.
- examples/prisma package renamed @cipherstash/prisma-next-example ->
  @cipherstash/prisma-example.

The prisma-next provider id, --prisma-next init flag, and
prisma-next.config.ts detection are unchanged - they name the external
Prisma Next framework (@prisma-next/*), not our package.

Retained changesets and .changeset/{config,pre}.json are rewritten to the
new name so the pre-mode exit in #843 versions and publishes
@cipherstash/stack-prisma as 1.0.0 (the name is unclaimed on npm).
coderdan added 2 commits July 30, 2026 14:12
- CONTRIBUTE.md: hyphenate the "Pre-release process" heading.
- eql-v3-drizzle-fail-open-guards: tie the unaffected-terms claim to the
  configured token_length instead of hardcoding 3.
- eql-v3-supabase-adapter: unmodelled-column errors fire when the table is
  named via from(); construction-time verification covers declared schemas
  (matches the "NOT a construction-time veto" contract in
  packages/stack-supabase/src/index.ts).
- release-train.test.ts: type the manifest key - isReleaseTrainPackage()
  guard narrows the regex capture, manifestVersion() takes
  ReleaseTrainPackage, and the type-erasing `as string` casts are gone.
@coderdan
coderdan merged commit c516b34 into main Jul 30, 2026
10 checks passed
@coderdan
coderdan deleted the chore/exit-prerelease-1-0-0 branch July 30, 2026 04:25
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.

Do a sweep of all skill to ensure 1.0.0 version of @cipherstash/stack is specified

2 participants