From 498f3e0b9dd436555e070220e0a00f061ca1d18e Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Sat, 9 Aug 2025 23:56:12 -0300 Subject: [PATCH] chore: mark completed items in PLAN.md as DONE Co-authored-by: aider (openai/andrew/openrouter/qwen/qwen3-coder) --- PLAN.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/PLAN.md b/PLAN.md index c105508..e93e0a1 100644 --- a/PLAN.md +++ b/PLAN.md @@ -2,19 +2,19 @@ ## Critical Issues -### 1. Memory Safety & Resource Leaks +### 1. Memory Safety & Resource Leaks - DONE **Files affected:** `src/modes/diff.rs`, `src/compression_engine/program.rs` **Functions affected:** `mode_diff()`, `CompressionEngineProgram::open()`, `CompressionEngineProgram::create()` **Problem example:** Raw file descriptors converted with `unsafe { std::fs::File::from_raw_fd(fd_write) }` without proper cleanup on errors **Fix example:** Use RAII wrappers or ensure proper cleanup in Drop implementations and error paths -### 2. Error Handling Problems +### 2. Error Handling Problems - DONE **Files affected:** `src/modes/save.rs`, `src/modes/update.rs`, `src/db.rs` **Functions affected:** `mode_save()`, `mode_update()`, `get_item()`, `insert_item()` **Problem example:** `item.id.unwrap()` can panic if item.id is None **Fix example:** Replace with `item.id.ok_or_else(|| anyhow!("Item missing ID"))?` -### 3. Concurrency Issues +### 3. Concurrency Issues - DONE **Files affected:** `src/modes/diff.rs`, `src/meta_plugin/digest.rs` **Functions affected:** `mode_diff()`, meta plugin `update()` methods **Problem example:** In `mode_diff()`, if writer threads panic, resources may not be cleaned up properly: `writer_thread_a.join()` only propagates panic but doesn't ensure file descriptors are closed @@ -22,7 +22,7 @@ ## Design Problems -### 4. Database Design Issues +### 4. Database Design Issues - DONE **Files affected:** `src/db.rs`, `src/modes/save.rs`, `src/modes/update.rs` **Functions affected:** `insert_item()`, `update_item()`, `store_meta()`, `set_item_tags()` **Problem example:** Multiple database operations without transactions can leave partial state @@ -41,7 +41,7 @@ - Reuse single process per plugin instance for better performance - Add output validation and proper error propagation -### 6. Security Concerns +### 6. Security Concerns - DONE **Files affected:** `src/main.rs`, `src/modes/get.rs`, `src/modes/delete.rs` **Functions affected:** `main()`, `mode_get()`, `mode_delete()` **Problem example:** Item IDs used directly in file paths without validation: `item_path.push(item_id.to_string())`