Skip to content

chore(sqlite-vfs): remove wasm sqlite packages and workspace wiring#4641

Open
NathanFlurry wants to merge 1 commit intochore/remove-wasm-sqlite-native-onlyfrom
chore/remove-sqlite-vfs-packages
Open

chore(sqlite-vfs): remove wasm sqlite packages and workspace wiring#4641
NathanFlurry wants to merge 1 commit intochore/remove-wasm-sqlite-native-onlyfrom
chore/remove-sqlite-vfs-packages

Conversation

@NathanFlurry
Copy link
Copy Markdown
Member

Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Copy link
Copy Markdown
Member Author

NathanFlurry commented Apr 13, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@claude
Copy link
Copy Markdown

claude bot commented Apr 13, 2026

PR Review: chore(sqlite-vfs): remove wasm sqlite packages and workspace wiring

Overview

This PR removes the WASM SQLite VFS package and its associated workspace wiring. The deleted surface includes:

  • rivetkit-typescript/packages/sqlite-vfs/ -- approx 2,300 lines of WASM VFS implementation (vfs.ts, kv.ts, pool.ts, schemas, scripts)
  • rivetkit-typescript/packages/sqlite-vfs-test/ -- approx 790 lines of tests
  • Three internal design docs (DYNAMIC_ACTOR_SQLITE_PROXY_SPEC.md, SQLITE_VFS.md, sqlite-batch-atomic-write.md)
  • COPY steps from all three frontend Dockerfiles
  • @rivetkit/sqlite-wasm from workspace resolutions and the sandbox example

The intent aligns with the design direction in the deleted spec: move to host-side native SQLite rather than in-isolate WASM.

Issues

Unintentional pnpm-lock.yaml override (likely a bug)

The @rivetkit/engine-api-full workspace override was changed from workspace:* to a pkg.pr.new PR preview URL. This pins CI and developers to an ephemeral commit build on an external service. If that URL expires or the package is removed this will silently break installs. This looks like it was included by accident and should be reverted before merge.

PR description is empty

All checklist boxes are unchecked and there is no summary. It is worth noting which downstream consumers depended on @rivetkit/sqlite-wasm and confirming they have been migrated or are intentionally left without SQLite support until the native path lands.

Test coverage removed without replacement

Approx 790 lines of tests are deleted, including:

  • pool.test.ts -- WASM pool lifecycle, sticky assignment, bin-packing, poisoned-short-name isolation, double-destroy idempotency, shutdown guard
  • sqlite-vfs.test.ts -- persistence across VFS instances, chunk-boundary payloads, unaligned overwrites
  • sqlite-lock-repro.test.ts -- Node.js SQLite locking regression test

The lock-repro test covers a property of the Node.js runtime rather than the WASM library, and could be relevant to the native path too. Consider whether it should be migrated.

kv.ts key layout reference is now gone

CLAUDE.md states the native Rust VFS and the WASM TypeScript VFS must match 1:1, and lists rivetkit-typescript/packages/sqlite-vfs/src/kv.ts as the authoritative TypeScript side. With kv.ts deleted, the native VFS (rivetkit-typescript/packages/sqlite-native/src/kv.rs) has lost its paired reference. Consider either moving the key-layout constants to a shared spec or updating CLAUDE.md to remove the now-stale file reference.

docs-internal/engine/NATIVE_SQLITE_DATA_CHANNEL.md not updated

CLAUDE.md references this file as the full spec for native/WASM VFS parity. Deleting the WASM implementation without updating that spec may leave it referencing a package that no longer exists.

Minor observations

  • Sandbox example version pin change to * is correct per CLAUDE.md workspace conventions.
  • Rust Cargo.lock bumps (anyhow, bitflags, bumpalo) are minor and look benign.
  • Dockerfile COPY removals are clean and correct.

Summary

The removal is well-scoped and directionally correct. The blocking concern is the @rivetkit/engine-api-full pkg.pr.new pin in pnpm-lock.yaml -- that should not land on main. The test deletion and missing doc updates are worth addressing before or immediately after merge.

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