Skip to content

Releases: tursodatabase/turso

v0.3.0-pre.4

22 Oct 11:19

Choose a tag to compare

v0.3.0-pre.4 Pre-release
Pre-release

Install turso_cli 0.3.0-pre.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.4/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.4/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.0-pre.4

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.0-pre.3

17 Oct 08:39

Choose a tag to compare

v0.3.0-pre.3 Pre-release
Pre-release

Install turso_cli 0.3.0-pre.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.3/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.3/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.0-pre.3

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.0-pre.2

16 Oct 09:03

Choose a tag to compare

v0.3.0-pre.2 Pre-release
Pre-release

Install turso_cli 0.3.0-pre.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.2/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.0-pre.2

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.3.0-pre.1

10 Oct 17:05

Choose a tag to compare

v0.3.0-pre.1 Pre-release
Pre-release

Install turso_cli 0.3.0-pre.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.1/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.3.0-pre.1/turso_cli-installer.ps1 | iex"

Download turso_cli 0.3.0-pre.1

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

0.2.2 -- 2025-10-08

08 Oct 06:05

Choose a tag to compare

Release Notes

Added

  • add basic examples for database-wasm package (Nikita Sivukhin)
  • core/incremental: Implement "is null" and "is not null" tests for view filter (Glauber Costa)

Updated

  • core/mvcc: filter out seek results where is not same table_id (Pere Diaz Bou)

Fixed

  • Fix attach I/O error with in-memory databases (Preston Thorpe)
  • core/incremental: Fix re-insertion of data with same key (Glauber Costa)

Install turso_cli 0.2.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.2/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.2/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.2

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

0.2.1 -- 2025-10-04

04 Oct 07:56

Choose a tag to compare

Release Notes

Added

Updated

  • Actually enforce uniqueness in create unique index (Jussi Saurio)
  • Disallow unexpected interop between WAL mode and MVCC mode (Jussi Saurio)

Fixed

  • core/io/unix: Fix short writes in try_pwritev_raw() (FamHaggs)

Install turso_cli 0.2.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.1/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.1/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.1

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

0.2.0 -- 2025-10-03

03 Oct 10:02

Choose a tag to compare

Release Notes

Added

  • docs: Add section on MVCC limitations (Pekka Enberg)
  • sim: add Profile::SimpleMvcc (Jussi Saurio)
  • Add encryption internals docs (Avinash Sajjanshetty)
  • core/storage: Apple platforms support (Charly Delaroche)
  • Reject unsupported FROM clauses in UPDATE (Mikaël Francoeur)
  • Add Database::indexes_enabled() (Jussi Saurio)
  • Add Mold linker setup to CONTRIBUTING.md (Pekka Enberg)
  • support multiple conflict clauses in upsert (Nikita Sivukhin)
  • stress: add option to choose how many tables to generate (Pere Diaz Bou)
  • add manual page about materialized views (Glauber Costa)
  • support mixed integer and float expressions in the expr_compiler (Glauber Costa)
  • github: Add 30 minute timeout to all jobs (Pekka Enberg)
  • Add CAST to fuzzer (Levy A.)
  • Implement json_tree (Mikaël Francoeur)
  • translate: disable support for UPDATE ... ORDER BY (Jussi Saurio)
  • MVCC: support alter table (Jussi Saurio)
  • mvcc: add blocking checkpoint (Jussi Saurio)
  • Add built-in manual pages for Turso (Glauber Costa)
  • Support referring to rowid as rowid or oid (Jussi Saurio)
  • translate: implement Sequence opcode and fix sort order (Preston Thorpe)
  • mvcc: add blocking checkpoint lock (Jussi Saurio)
  • translate/emitter: Implement partial indexes (Preston Thorpe)
  • Support UNION queries in DBSP-based Materialized Views (Glauber Costa)
  • Add encryption throughput test (Avinash Sajjanshetty)
  • Support JOINs in DBSP materialized views (Glauber Costa)
  • Fix C API compatibility tests and add a minimal CI (Andrea Peruffo)
  • Introduce instruction VTABLE (Lâm Hoàng Phúc)
  • core/mvcc: introduce with_header for MVCC header update tracking (Pere Diaz Bou)
  • Inital support for window functions (Piotr Rżysko)
  • Implement Min/Max aggregators (Glauber Costa)
  • Add quoted identifier test cases for ALTER TABLE (Levy A.)
  • add perf/throughput/rusqlite to workspace (Pedro Muniz)
  • add perf/throughput/turso to workspace (Pedro Muniz)
  • Add per page checksums (Avinash Sajjanshetty)
  • core/throughput: Add per transaction think time support (Pekka Enberg)
  • Fix simulator docker build chef by adding whopper directory (Preston Thorpe)
  • Implement the balance_quick algorithm (Jussi Saurio)
  • benchmark: introduce simple 1 thread concurrent benchmark for mvcc/sq… (Pere Diaz Bou)
  • perf: Add simple throughput benchmark (Pekka Enberg)
  • Add BEGIN CONCURRENT support for MVCC mode (Pekka Enberg)
  • add explicit usize type annotation to range iterator in test (Denizhan Dakılır)
  • whopper: A new DST with concurrency (Pekka Enberg)
  • serverless: Add Connection.reconnect() method (Mayank)
  • Return parse error for unsupported exprs (Jussi Saurio)
  • translate: return parse error for unsupported join types (Jussi Saurio)
  • Add scripts that help debug bugs from simulator (Jussi Saurio)
  • core: Support ceiling modifier in datetime (Ceferino Patino)

Updated

  • CI: run long fuzz tests and stress on every PR, use 2 threads for stress (Jussi Saurio)
  • Disallow INDEXED BY / NOT INDEXED in select (Jussi Saurio)
  • core/mvcc: Rename "-lg" to "-log" (Pekka Enberg)
  • docs: Document more CLI command line options (Pekka Enberg)
  • Update man pages for encryption (Avinash Sajjanshetty)
  • core/mvcc: Return completions from logical log methods (Pedro Muniz)
  • Improve MCP configuration docs (Jamie Barton)
  • Enable encryption properly in Rust bindings, whopper, and throughput tests (Avinash Sajjanshetty)
  • Enable checksums only if its opted in via feature flag (Avinash Sajjanshetty)
  • Sync engine defered sync (Nikita Sivukhin)
  • core/vdbe: Avoid cloning Arc on every VDBE step (Pekka Enberg)
  • mvcc: dont try to end pager tx on connection close (Jussi Saurio)
  • Allow workflow_dispatch for all CI to allow for re-running jobs (Preston Thorpe)
  • printf should truncates floats (Pavan Nambi)
  • simulator: reopen database with mvcc and indexes when necessary (Pedro Muniz)
  • core/storage: Switch page cache queue to linked list (Pekka Enberg)
  • Improve throughput benchmarks (Pekka Enberg)
  • Beta (Pekka Enberg)
  • make connect() method optional and call it implicitly on first query execution (Nikita Sivukhin)
  • mvcc: dont use mv store for ephemeral tables (Jussi Saurio)
  • Simulator: Concurrent transactions (Pedro Muniz)
  • Measure read/write latencies in encryption benchmarks (Avinash Sajjanshetty)
  • simplify exec_trim code + only pattern match on whitespace char (Pedro Muniz)
  • MVCC: Handle table ID / rootpages properly for both checkpointed and non-checkpointed tables (Jussi Saurio)
  • Make encryption opt in via flag (Avinash Sajjanshetty)
  • core/mvcc: Optimize exclusive transaction check (Pekka Enberg)
  • core: change root_page to i64 (Pere Diaz Bou)
  • core/storage: Remove unused import from encryption.rs (Pekka Enberg)
  • small improvement of stress testing tool (Nikita Sivukhin)
  • sum() can throw integer overflow (Duy Dang)
  • correct span in ParseUnexpectedToken (Lâm Hoàng Phúc)
  • Remove double-quoted identifier assert (Diego Reis)
  • substr scalar should also work with non-text values (Diego Reis)
  • core: Disallow CREATE INDEX when MVCC is enabled (Pekka Enberg)
  • javascript: Rename "browser" packages to "wasm" (Pekka Enberg)
  • core/vdbe: Wrap Program::n_change with AtomicI64 (Pekka Enberg)
  • use explicit null if it set instead of column default value (Nikita Sivukhin)
  • Improve encryption module (Avinash Sajjanshetty)
  • Remove vendored parser now that we have our own (Preston Thorpe)
  • core/storage: Wrap Pager::commit_info with RwLock (Pekka Enberg)
  • core/storage: Wrap WalFile::{max,min}_frame with AtomicU64 (Pekka Enberg)
  • core/storage: Wrap WalFile::max_frame_read_lock_index with AtomicUsize (Pekka Enberg)
  • core/storage: Mark Page as Send and Sync (Pekka Enberg)
  • Move turso.png image to assets directory (Preston Thorpe)
  • core/translate: rewrite default column value from identifier to string literal (Preston Thorpe)
  • core/translate: Persist NOT NULL column constraint to schema table (Preston Thorpe)
  • Sqlean fuzzy string (Danawan Bimantoro)
  • Make Sorter Send and Sync (Pekka Enberg)
  • length shall not count when it sees nullc (Pavan Nambi)
  • core/storage: Wrap WalFile::syncing with AtomicBool (Pekka Enberg)
  • Make MVCC code Send and Sync (Pekka Enberg)
  • core: recover logical log on Database::connect (Pere Diaz Bou)
  • core/storage: Display page category for rowid integrity check failure (Pekka Enberg)
  • translate: refactor arguments and centralize parameter context (Preston Thorpe)
  • translate: disallow creating/dropping internal tables (Jussi Saurio)
  • Improve DBSP view serialization (Glauber Costa)
  • Disallow multiple primary keys in table definition (Jussi Saurio)
  • Display nothing for .schema command when table not found (Preston Thorpe)
  • Make Connection Send (Pekka Enberg)
  • core/mvcc/logical-log: refactor get log path in tests (Pere Diaz Bou)
  • Disallow ORDER BY and LIMIT in a non-compound VALUES() statement (Jussi Saurio)
  • core: Wrap Connection::mv_tx with RwLock (Pekka Enberg)
  • Autoincrement (Pavan Nambi)
  • core/mvcc/logical-log: load logical log from disk (Pere Diaz Bou)
  • Normalize target table name identifier on table or column rename (Iaroslav Zeigerman)
  • use a different seed for gen_rng (Pedro Muniz)
  • core: Wrap Connection::attached_databases with RwLock (Pekka Enberg)
  • core/mvcc/logical-log: on disk format for logical log (Pere Diaz Bou)
  • Wrap more Connection fields with atomics (Pekka Enberg)
  • core/mvcc: Wrap Transaction::database_header with RwLock (Pekka Enberg)
  • core: Wrap Connection::capture_data_changes in RwLock (Pekka Enberg)
  • antithesis-tests: Rename "utils.py" to "helper_utils.py" (Pekka Enberg)
  • Make some Connection fields atomic (Pekka Enberg)
  • Simulator Runtime generation (Pedro Muniz)
  • Use SQL over HTTP batch statements for sync push (Nikita Sivukhin)
  • JavaScript bindings browser tests (Nikita Sivukhin)
  • core: Wrap Connection::transaction_state with RwLock (Pekka Enberg)
  • core: Wrap Connection::autocommit in AtomicBool (Pekka Enberg)
  • use wasm-runtime from NPM instead of patched sources (Nikita Sivukhin)
  • core: Wrap Connection::database_schemas in RwLock (Pekka Enberg)
  • core: Wrap Connection::schema in RwLock (Pekka Enberg)
  • Stop incrementing n_changes for idx delete (Preston Thorpe)
  • core: Wrap Connection::pager in RwLock (Pekka Enberg)
  • Disable extension loading at runtime (Preston Thorpe)
  • mvcc: simplify StateMachine (Jussi Saurio)
  • core: Wrap Pager::io_ctx in RwLock (Pekka Enberg)
  • Enable checksum tests if checksum feature is on (Kacper Kołodziej)
  • Wrap Pager vacuum state in RwLock (Pekka Enberg)
  • Enhancement to Sim Snapshot isolation code (Pedro Muniz)
  • core/io: Ensure callbacks are invoked once (Pedro Muniz)
  • Upgrade dist to 0.30.0 (Pekka Enberg)
  • Sync improvements (Nikita Sivukhin)
  • Remove some unnecessary unsafe impls (Pedro Muniz)
  • Pragma busy timeout (Nikita Sivukhin)
  • translate/optimize: centralize AST/expr traversal (Preston Thorpe)
  • prevent alter table with materialized views (Glauber Costa)
  • core/mvcc: Wrap LogicalLog in RwLock (Pekka Enberg)
  • mvcc: remove unused code related to is_logical_log() (Jussi Saurio)
  • Put the unused variable behind a flag as intended (Avinash Sajjanshetty)
  • whopper: Gracefully handle file size limits in simulator (Avinash Sajjanshetty)
  • core/storage: Wrap Pager::header_ref_state in RwLock (Pekka Enberg)
  • core/mvcc: Kill noop storage (Pekka Enberg)
  • core/mvcc: LogicalLog simple append serializer (Pere Diaz Bou)
  • core/storage: Wrap Pager::free_page_state with RwLock (Pekka Enberg)
  • core: Rename Connection::_db to db (Pekka Enberg)
  • core/storage: Switch Pager::max_page_count to AtomicU32 (Pekka Enberg)
  • core/storage: Use AtomicU16 for Pager::reserved_space (Pekka Enberg)
  • remove io.blocks from btree balancing code (Nikita Sivukhin)
  • core: Use sequential consistency for atomics by default (Pekka Enberg)
  • core/storage: Use AtomicU32 for Pager::page_size (Pekka Enberg)
  • Convert more Pager fields towards being Send (Pekka Enberg)...
Read more

v0.2.0-pre.15

03 Oct 09:00

Choose a tag to compare

v0.2.0-pre.15 Pre-release
Pre-release

Install turso_cli 0.2.0-pre.15

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.15/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.15/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.0-pre.15

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.2.0-pre.14

02 Oct 12:12

Choose a tag to compare

v0.2.0-pre.14 Pre-release
Pre-release

Install turso_cli 0.2.0-pre.14

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.14/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.14/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.0-pre.14

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.2.0-pre.13

01 Oct 14:29

Choose a tag to compare

v0.2.0-pre.13 Pre-release
Pre-release

Install turso_cli 0.2.0-pre.13

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.13/turso_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.2.0-pre.13/turso_cli-installer.ps1 | iex"

Download turso_cli 0.2.0-pre.13

File Platform Checksum
turso_cli-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
turso_cli-x86_64-apple-darwin.tar.xz Intel macOS checksum
turso_cli-x86_64-pc-windows-msvc.zip x64 Windows checksum
turso_cli-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>