Skip to content

fix: re-sync the viewer from the 1.8.3 desktop port - #6

Merged
zknpr merged 1 commit into
mainfrom
chore/viewer-runtime-b45ac83
Oct 24, 2026
Merged

zknpr merged 1 commit into
mainfrom
chore/viewer-runtime-b45ac83

Conversation

@zknpr

@zknpr zknpr commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Problem

0.3.2 on main was synced from desktop-dev-port before the extension's 1.8.3 release. Its native runtime is txiki.js 9875455, which the 1.8.3 cycle replaced with b45ac83 after a review of the runtime, and its worker bundles predate a refactor of the shared NUL containment helper. The README and the inventory pin an unreleased port commit.

Solution

Re-sync viewer-dist from desktop-dev-port at b7cf55a, which merges the extension's v1.8.3 tag (dbb433c), and move the pins with it.

  • viewer-dist/native/tjs: the runtime re-pinned to txiki.js b45ac83. Its follow-ups: a statement whose rows fail to convert is reset instead of left running, synchronous row conversion checks every step, vacuumInto errors carry SQLite's message instead of the generic text of the error code, and the authorizer calls uv_thread_self only for ATTACH of a named file.
  • viewer-dist/worker.js, viewer-dist/native/native-worker-desktop.js: rebuilt for the shared NUL containment helper refactor; the grid's behavior is unchanged.
  • The viewer, the WebAssembly glue (sql.js 35ac205) and the query-plan library are byte-identical to main.

Architecture

No architectural change. scripts/sync-viewer.mjs copies the port's build outputs at a pinned commit and records their hashes in viewer-dist/manifest.json; --verify re-checks them. It also re-checks that the native method table still matches the 38 audited methods.

Per-file changes

File Change
viewer-dist/native/tjs txiki.js b45ac83 runtime from the port at b7cf55a.
viewer-dist/worker.js, viewer-dist/native/native-worker-desktop.js Rebuilt worker bundles from the port at b7cf55a.
viewer-dist/manifest.json Source ref b7cf55a and the new file hashes.
third-party/inventory.json, THIRD_PARTY_NOTICES.txt txiki.js 9875455 → b45ac83 (11 occurrences each); viewerSource → b7cf55a. Every notice file is unchanged between the two runtime commits, so only the pins change.
README.md The sync command pins b7cf55a; the version paragraph names the extension's 1.8.3 release.

Security

  • The native method table is unchanged (38 audited methods), so the App's command surface is the same as 0.3.2's.
  • The runtime's ATTACH, DETACH and VACUUM INTO rules are the same as in 9875455; the b45ac83 changes are error handling and statement cleanup. The runtime's contract tests passed on all five targets (zknpr/txiki.js Actions run 40086152581), and the extension's five-target native fuzz found no attached database or file write (run 40095348078).
  • Third-party notices and the inventory match the release dependency graph (scripts/release/notices.mjs).

Test plan

Run on macOS arm64.

  • npm test: 27/27.
  • node scripts/release/notices.mjs: inventory and notices match the release dependency graph and viewer pin.
  • node scripts/sync-viewer.mjs --verify: 10 files verified at b7cf55a.
  • node scripts/release/version.mjs: 0.3.2.
  • cargo test --lib --locked: 138 passed; the 4 ignored live tests pass with -- --ignored.
  • v1.8.3 (dbb433c) is an ancestor of the pinned port commit b7cf55a (git merge-base --is-ancestor).
  • At the port commit: extension unit suite 3249/3249, native smoke 112/112, native lane passed.
  • Not run: a packaged macOS, Linux or Windows build of this branch (CI and the release candidate checks cover packaging), and a GUI run of the App.

Sync from desktop-dev-port at b7cf55a, which merges the extension's
v1.8.3 tag. viewer-dist/native/tjs moves to the runtime re-pinned to
txiki.js b45ac83, and the two worker bundles are rebuilt for a refactor
of the shared NUL containment helper that leaves the grid's behavior
unchanged. The viewer, WebAssembly glue and query-plan library are
byte-identical.

The runtime follow-ups from the review of 9875455: a statement whose
rows fail to convert is reset instead of left running, synchronous row
conversion checks every step, vacuumInto errors carry SQLite's message
(so a failed export says why instead of the generic text of the error
code), and the authorizer calls uv_thread_self only for ATTACH of a
named file.

Inventory and notices: txiki.js 9875455 -> b45ac83. Every notice file is
unchanged between them (the runtime commit touches only
src/mod_sqlite3.c, tests and its CI workflow), so only the pins change.
viewerSource and the README pin follow b7cf55a; the README names the
extension's 1.8.3 release.
@coderabbitai

coderabbitai Bot commented Oct 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 855cb853-afcf-4992-a110-0ce1e90beff9
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-24T14:14:42.154314Z ed069dc PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@zknpr
zknpr merged commit a26c7f7 into main Oct 24, 2026
9 of 10 checks passed
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