fix(logging): keep debug logging in a packaged debug build

import.meta.env.DEV is true only under the vite dev server, but
scripts/build-android.sh produces the debug APK with a plain `bun run build` —
so the logger defaulted to warn there too and the debug package lost every
frontend message from logcat. `bun run android:logs` is a documented workflow
that depends on them.

vite now defines __JT_DEBUG_BUILD__ from Tauri's TAURI_ENV_DEBUG, which the CLI
sets while running beforeBuildCommand. The decision is split into a pure
resolveDefaultLogLevel(isDevServer, isDebugBuild) because neither
import.meta.env.DEV nor a vite define can be varied from inside a test.

Also replaces the pinned requirement counts in extract-traces.test.ts with
invariants. The pins guarded nothing the computeCoverage fixtures don't already
cover, while forcing every branch that adds a requirement to edit the numbers —
the comment above them had become a ledger of which branch contributed which row.

TRACES: | DR-204 | UT-201
This commit is contained in:
2026-08-20 20:06:51 +02:00
parent aeb29f916b
commit 34026d22b4
4 changed files with 89 additions and 24 deletions
+8
View File
@@ -8,6 +8,14 @@ const host = process.env.TAURI_DEV_HOST;
export default defineConfig(async () => ({
plugins: [sveltekit(), tailwindcss()],
// Tauri sets TAURI_ENV_DEBUG while it runs `beforeBuildCommand`, which is how
// the frontend can tell a debug package from a release one. `import.meta.env.DEV`
// cannot: it is true only under the dev server, so both APKs look identical to
// it and the debug build loses its logging (see logger.ts).
define: {
__JT_DEBUG_BUILD__: JSON.stringify(process.env.TAURI_ENV_DEBUG === "true"),
},
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
//
// 1. prevent Vite from obscuring rust errors