1.9 KiB
1.9 KiB
Audit Log
2026-04-20
Found and fixed 4 issues:
- Dead code in conflict recovery (sync.rs:756) —
parts[1] != ".listdata.json"was unreachable because the branch is already gated onparts[1].ends_with(".md"), which.listdata.jsoncannot satisfy. Removed the redundant check. - O(n²) cascade delete (tauri/lib.rs) — descendant traversal in
delete_taskusedVec::containsinside the inner loop, making it quadratic in the number of tasks per list. Swapped the visited set toHashSet;HashSet::insertfolds the contains+push into one call. - Silent cascade failure in toggle_task (tauri/lib.rs) — subtask
update_taskerrors were discarded withlet _ = ..., leaving subtasks stuck at the old status with no UI feedback. Propagate the error so the frontend can surface it. - Duplicated UUID-parse boilerplate (tauri/lib.rs) — 17 commands repeated
Uuid::parse_str(&x).map_err(|e| e.to_string())?. Extracted aparse_uuidhelper so callers read aslet id = parse_uuid(&list_id)?;.
2026-04-15
Found and fixed 4 issues:
- Bug: debouncedSave shared timer loses edits (TaskDetailView.svelte) - When user edits both title and description within 400ms, only the last-edited field was saved. Fixed by always saving both fields in the debounced callback.
- Code duplication: atomic_write_bytes (google_tasks.rs) - Identical copy of
atomic_writefrom storage.rs. Removed duplicate and reused the sharedpub(crate)function. - Bug: silent success on missing workspace (lib.rs) - Four Tauri commands (
set_webdav_config,set_workspace_theme,set_sync_interval,set_sync_interval_unfocused) silently succeeded when given a nonexistent workspace ID. Fixed to return an error. - Bug: failing test due to wrong frontmatter field name (storage.rs) -
test_parse_frontmatter_with_optional_fieldsuseddue:instead ofdate:in frontmatter YAML, causing the assertion onfm.date.is_some()to fail.