Move database ownership, blocking IO and TQL binding into tt-adapter-triviumdb
and upgrade the native engine to 0.8.8. Preserve the plugin API capabilities
with awaited open, numeric IDs and explicit shared-namespace lifecycle.
Coordinate archive IO with database maintenance and restore each namespace
as a complete file group. Keep behavior tests for persistence, parameter
binding, transactions and recovery instead of per-method forwarding tests.
Validated with pnpm run check and tauri-pilot against the macOS app using
the real data root; temporary test namespaces were removed afterward.
On Windows hosts with NTFS last-access updates enabled (fsutil behavior
DisableLastAccess 0/2), every read of a file under src/ updates its
last-access time, and recursive fs.watch reports that as a change event.
The dev server then reloaded the page for any non-bundled path: fonts,
styles, images and other static assets fetched by the page itself.
Each reload fetched those assets again, producing a reload -> fetch ->
last-access -> reload feedback loop where any UI interaction kept
refreshing the page.
Two guards in handleFrontendChange:
- Directory-level change events arrive with a null filename and cannot
identify a reloadable file; ignore them instead of reloading.
- A last-access update never changes mtime, so a change event whose
mtime is far in the past is read noise, not an edit. Only reload for
files written within the last 30 seconds. Trade-off: writers that
deliberately preserve mtime no longer trigger a reload.
Verified on Windows (DisableLastAccess=2): two rounds of fetching 12
static assets produced zero reload events (previously 8 in one round),
while a real file write still triggered exactly one reload.
The boundary script previously only listed quickjs as a forbidden dependency of tt-application, so the crate's own dependency tree and source boundaries were never checked. Register it with a full rule set banning other adapters, host layers, and infra packages.
Also stop inheriting the workspace tokio full feature: the adapter only needs spawn_blocking (rt) and #[tokio::test] (macros).
Allow the QuickJS feature release to publish whatever succeeded instead of requiring every platform to build: add --best-effort to the desktop asset collector, run desktop/mobile with continue-on-error, gate publish on prepare success rather than all jobs, and relax the Linux deb/rpm count check to at least one.
Align the QuickJS feature branch release with the canary desktop pipeline:
- desktop-only matrix (win, mac x64/arm64, linux x64/arm64) with portable builds
- no signing / notarization, no apt/rpm repo publish, no nix, no Codex
- deterministic commit-based release notes
- move QuickJS-Feature tag via gh api PATCH (force) instead of git push
- fix missing linux-version step reference
- add desktop-only asset collector (scripts/ci/collect-desktop-release-assets.mjs)