-
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
·
2 revisions
Use this page for common failure modes while developing CSV Align. For validation commands, see testing. For release packaging context, see deployment.
Symptom:
-
cargo runexits with a message that built frontend assets could not be found. - Tauri build with
CSV_ALIGN_USE_PREBUILT_FRONTEND=1exits because/Users/vriesd/projects/csv-align/frontend/dist/index.htmlis missing.
Checks:
(cd /Users/vriesd/projects/csv-align/frontend && npm run build)
cargo run --manifest-path /Users/vriesd/projects/csv-align/Cargo.tomlThe local web lookup lives in /Users/vriesd/projects/csv-align/src/api/app.rs. The Tauri build hook lives in /Users/vriesd/projects/csv-align/scripts/build_frontend_for_tauri.sh.
Symptom:
- Browser API returns
{ "code": "not_found", "error": "Session not found" }. - Tauri command serialization returns the same error shape.
- Frontend cleanup ignores missing-session deletes but surfaces missing sessions for active operations.
Checks:
- Confirm the frontend created a session through
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts. - Confirm the request path includes the current
session_id. - Inspect session lifecycle behavior in
/Users/vriesd/projects/csv-align/src/backend/store.rsand/Users/vriesd/projects/csv-align/src/backend/session.rs. - Reproduce through
/Users/vriesd/projects/csv-align/tests/response_contracts.rsor/Users/vriesd/projects/csv-align/tests/session_store_integration.rs.
Symptom:
- Upload fails with duplicate header, empty file, oversized file, malformed row, or parse error messages.
- A row reports a different column count than the header row.
Checks:
-
/Users/vriesd/projects/csv-align/src/data/csv_loader.rsuses header-aware CSV parsing, delimiter detection for comma or semicolon, BOM trimming, and duplicate header rejection. -
/Users/vriesd/projects/csv-align/src/backend/workflow.rsrejects empty files and files over 25 MiB. - Browser upload body limits are configured in
/Users/vriesd/projects/csv-align/src/api/app.rs. - Regression coverage lives in
/Users/vriesd/projects/csv-align/tests/csv_loader_integration.rsand/Users/vriesd/projects/csv-align/tests/local_file_loading_integration.rs.
Symptom:
- Compare fails with a message about too many flexible key candidates or comparisons.
Cause:
- Flexible
**key matching can produce broad candidate sets. Guardrails in/Users/vriesd/projects/csv-align/src/backend/workflow.rscall limit helpers in/Users/vriesd/projects/csv-align/src/comparison/engine.rsbefore running the full comparison. - Current limits are 10,000 flexible key candidates and 1,000,000 flexible key comparisons.
Checks:
- Narrow selected key columns.
- Add literal anchors around
**patterns. - Disable flexible key matching if exact matching is sufficient.
- Use
/Users/vriesd/projects/csv-align/tests/comparison_engine_integration.rsfor regression examples.
Symptom:
- Desktop save or load actions for pair-order files, snapshots, CSV export, or HTML export return without showing the expected native dialog.
Checks:
- Verify dialog permissions in
/Users/vriesd/projects/csv-align/src-tauri/capabilities/default.json. - Verify the command uses
tauri_plugin_dialoghelpers in/Users/vriesd/projects/csv-align/src-tauri/src/commands.rs. - Verify the frontend invokes the correct command name from
/Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts. - Run
/Users/vriesd/projects/csv-align/src-tauri/src/pair_order_tests.rsand/Users/vriesd/projects/csv-align/src-tauri/src/comparison_snapshot_tests.rs.
Symptom:
- CI or tagged release fails while validating Linux metadata, signing Debian packages, building the APT repository, or publishing macOS DMGs.
Checks:
- For version mismatches, run
python3 /Users/vriesd/projects/csv-align/scripts/check_release_metadata.py --expected-tag vX.Y.Z. - For Debian desktop id drift, check
/Users/vriesd/projects/csv-align/scripts/normalize_linux_deb_desktop_id.py. - For package metadata failures, check
/Users/vriesd/projects/csv-align/scripts/validate_linux_deb_metadata.py. - For RPM failures, check
/Users/vriesd/projects/csv-align/scripts/build_rpm_package.py. - For APT repository failures, check
/Users/vriesd/projects/csv-align/scripts/build_apt_repository.pyand/Users/vriesd/projects/csv-align/scripts/install-apt-repo.sh. - For macOS failures, verify the Apple signing and App Store Connect API key secrets listed in
/Users/vriesd/projects/csv-align/docs/releasing.md.
| File | Debug area |
|---|---|
/Users/vriesd/projects/csv-align/src/api/app.rs |
Frontend dist lookup, API routes, and HTTP body limits. |
/Users/vriesd/projects/csv-align/scripts/build_frontend_for_tauri.sh |
Tauri prebuilt frontend contract. |
/Users/vriesd/projects/csv-align/src/backend/error.rs |
Shared HTTP and Tauri error serialization. |
/Users/vriesd/projects/csv-align/src/backend/store.rs |
Session count, idle, and memory eviction. |
/Users/vriesd/projects/csv-align/src/data/csv_loader.rs |
CSV decoding, delimiter detection, header validation, and malformed row errors. |
/Users/vriesd/projects/csv-align/src/comparison/engine.rs |
Flexible key limits and comparison result generation. |
/Users/vriesd/projects/csv-align/src-tauri/capabilities/default.json |
Desktop permissions for dialogs and webview windows. |
/Users/vriesd/projects/csv-align/.github/workflows/ci.yml |
CI validation and Linux package artifact production. |
/Users/vriesd/projects/csv-align/.github/workflows/release.yml |
Tagged release validation, signing, package upload, APT Pages deploy, and DMG publishing. |