Repository navigation
chore(deps): bump turso_core from 0.8.2 to 0.8.3 - #2717
Merged
Merged
Conversation
Records the supply-chain delta audits the bump needs, which is what the dependabot PR (#2707) was missing: every rust job was green there except `Audit`, where `cargo vet --locked` reported the four turso crates unvetted at 0.8.3. Reviewed each published package diff against 0.8.2. turso_ext, turso_macros and turso_parser have no Rust source change at all — zero differing .rs files, only version strings and release metadata. turso_core changes nine Rust files, with no new dependencies, no new unsafe, and no new host filesystem, network or process access: * AUTOINCREMENT explicit-rowid advance now reads the backing table's is_called column, so a fresh sequence row (1, is_called = 0) no longer leaves the next generated id at a rowid an explicit INSERT already used. * An abandoned MVCC commit releases the connection's read transaction and, for the main database only, resets transaction state — state the dropped CommitStateMachine does not own and previously leaked. * Cursor seek reuse narrows from "position matches the seek key" to "position is the only row for that key". * The logical-log header upgrade returns the CRC-filled header for the caller to adopt instead of publishing it before the write lands, so a failed header write keeps the previous on-disk header and retries. turso_core remains BETA and gated behind the non-default `sqlite` feature, as knowledge/runtimes/sqlite-builtin.md describes.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 38e973b | Commit Preview URL Branch Preview URL |
Oct 13 2026, 10:07 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Takes the turso 0.8.2 → 0.8.3 bump from #2707 and adds the supply-chain delta
audits it needs. No observable behavior change in bashkit:
turso_corestaysBETA behind the non-default
sqlitefeature.Supersedes #2707, which cannot merge as-is.
Why
Every rust job on #2707 was green —
Test,Lint,Examples, the WASM andWindows jobs — except
Audit, wherecargo vet --lockedreported the fourturso crates unvetted at the new version:
Dependabot cannot write an audit, and the
/cargo entry excludesturso_*from the aggregated group precisely so each bump gets reviewed onits own. So the review is the work here; the lockfile change is the easy part.
Before / After
What the review found
Diffed each published package against 0.8.2.
turso_ext,turso_macrosandturso_parsercontain no Rust source change at all — zero differing.rsfiles across the two published trees, only the crate version, matching sibling
versions and release metadata (
Cargo.lock,.cargo_vcs_info.json).turso_corechanges nine Rust files. No new dependencies, no newunsafe, nonew build scripts, and no new host filesystem, network or process access:
table's
is_calledcolumn. A fresh sequence row is(1, is_called = 0), andwithout that check an explicit rowid of 1 left the next generated id at 1, so
the next insert replaced the row. The single
Lecomparison becomesLt/Gtplus an
is_calledtest, with the descending case mirrored.transaction and, for the main database only, resets transaction state — state
the dropped
CommitStateMachinedoes not own and previously leaked. Attacheddatabases keep their own slot, already cleared by the state machine.
"position is the only row for that key", which requires a rowid, a whole
index entry, or every column of a UNIQUE index with no NULL.
to adopt instead of publishing it before the write lands, so a failed header
write keeps the previous on-disk header and retries. A new fault-injecting
file covers that path.
with visibility and write-write conflict rules unchanged.
Recorded as four
0.8.2 -> 0.8.3delta audits, the same shape as the existing0.8.1 -> 0.8.2entries.Risk
sqliteis off by default, and the four changes aboveare each a narrowing — a leak closed, a stale watermark corrected, a seek
fast path restricted, a header no longer published before it is durable.
turso_coreremains BETA upstream, asknowledge/runtimes/sqlite-builtin.mdsays. This bump does not change that.the MVCC and logical-log changes are the parts a future regression would most
likely come from.
just bench-sqliteregeneration is included.Checklist
metadata, with the existing sqlite suite covering behavior. The gate that
was failing is shown passing above. Matches the shape of the last turso
bump (chore(deps): bump turso_core from 0.8.1 to 0.8.2-pre.2 #2528:
Cargo.lock+supply-chain/audits.toml).stays behind the non-default
sqlitefeature.Generated by Claude Code