-
Notifications
You must be signed in to change notification settings - Fork 0
how to contribute debugging
Douwe de Vries edited this page Jul 1, 2026
·
1 revision
Use this page for common failure areas in the Tauri desktop app, contract boundary, Local AI path, and release tooling. See Testing for the commands that verify fixes.
Symptoms:
- The frontend wrapper in
frontend/src/tauri.tsrejects with an invoke error. - A capability permission exists, but the command never reaches Rust.
- Browser fallback works, while the desktop app does not.
Check:
- The command is included in
src-tauri/src/tauri_command_list.rs. - The command function is exported through
src-tauri/src/commands.rsand its submodule. -
src-tauri/src/main.rsusestauri_command_list!(generate_tauri_handler). -
src-tauri/capabilities/default.jsonincludes the generatedallow-*permission. -
frontend/src/tauri.tscalls the exact snake_case command name.
Run:
cargo test -p csv-anonymizer-tauri
npm run frontend:testSymptoms:
-
npm run contracts:checkreports missing enum variants or struct fields. - Frontend code sees
undefinedfields after a Rust response changes. - Rust serialization tests pass, but TypeScript interfaces were not updated.
Check:
- Rust DTOs in
crates/csv-anonymizer-core/src/types.rs. - Frontend mirrors in
frontend/src/types.ts. - Tauri request wrappers in
frontend/src/tauri.ts. - Command request structs in
src-tauri/src/commands/csv.rsandsrc-tauri/src/commands/job_commands.rs.
Run:
npm run contracts:check
npm run testAdd targeted serialization tests when optional fields, defaults, or serde casing changed.
Symptoms:
- A command returns "File access has not been granted".
- Manual paths fail while paths selected through Browse work.
- Output opening fails after a successful transform.
Check:
-
src-tauri/src/path_access.rsgrants canonical input files and normalized output files. -
src-tauri/src/commands/shared.rsconfirms manually typed input and output paths with a dialog. - Existing output leaves must be regular files, not symlinks or directories.
- Output suffixes must not contain separators or control characters.
Use Browse in the UI to create a grant, or confirm manual access when the Tauri dialog appears. For output issues, verify the parent directory exists and the leaf is not a symlink.
Symptoms:
- Smart replacement is blocked by preflight.
- The status says Ollama is not running.
- The model download job fails or remains unavailable.
Check:
-
src-tauri/src/local_ai/mod.rsfixes the endpoint athttp://127.0.0.1:11434. -
src-tauri/src/local_ai/ollama.rschecks/api/versionand/api/tags. - The default model is
gemma3:4b, unless settings selected another model. -
src-tauri/src/local_ai/download.rsstreams/api/pullprogress and supports cancellation. - Smart replacement validates Local AI output in
crates/csv-anonymizer-core/src/smart.rs.
Run:
npm run frontend:test
cargo test -p csv-anonymizer-tauri local_ai
cargo test -p csv-anonymizer-core smartSymptoms:
- Tauri build cannot find
frontend/dist. -
CSV_ANONYMIZER_USE_PREBUILT_FRONTEND=1fails. - The prebuilt check reports a missing
index.htmlor CSS asset.
Check:
-
scripts/build_frontend_for_tauri.shvalidatesfrontend/dist/index.htmland non-empty CSS files underfrontend/dist/assets. -
scripts/check-tauri-prebuilt-frontend.shintentionally removesfrontend/distand a CSS asset to prove the guard fails when it should. -
src-tauri/tauri.conf.jsonpointsfrontendDistat../frontend/dist.
Run:
npm run frontend:build
npm run tauri:prebuilt:checkSymptoms:
-
npm run release:checkfails before a tag. - Linux package metadata validation fails for
.debor.rpm. - The APT installer or repository check fails.
Check:
- Version sync in
package.json,frontend/package.json,frontend/package-lock.json,Cargo.toml, andsrc-tauri/tauri.conf.json. - Changelog and metainfo release date sync in
CHANGELOG.mdandbuild/linux/io.github.ddv1982.csv-data-anonymizer.metainfo.xml. - Required icon entries in
src-tauri/tauri.conf.json. - Desktop template expectations in
build/linux/csv-anonymizer.desktop.hbsandsrc-tauri/tauri.linux.conf.json. - Linux package metadata extraction in
scripts/validate_linux_package_metadata.py. - APT repository and installer checks in
scripts/check-apt-repository.mjsandscripts/check-apt-installer.mjs.
Run:
npm run release:check
npm run linux:package-manager:checkSee Deployment before changing release workflows or signing inputs.