diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..425694a --- /dev/null +++ b/TODO.md @@ -0,0 +1,33 @@ +# TODO for 1.0 Release + +## High Priority + +- [ ] **Fix panic in log.go** - `internal/log/log.go:141` has a `panic("unable to get logger")` that should return an error or handle gracefully instead. + +- [ ] **Clean up FIXMEs in manifest.go** - Multiple FIXMEs need attention: + - Line 67: Validate input paths exist before processing + - Line 77: Add validation for filesystem input + - Line 163: Avoid redundant stat calls + - Line 182: Add context support for cancellation + +- [ ] **Fix WriteToFile overwrite behavior** - `mfer/output.go:9` has FIXME to refuse overwriting without `-f` flag. + +- [ ] **Consolidate legacy manifest code** - `mfer/manifest.go` has old scanning code (`Scan()`, `addFile()`) that duplicates the new `internal/scanner` + `mfer/builder.go` pattern. Remove duplication. + +## Medium Priority + +- [ ] **Add unit tests for `internal/checker`** - Currently has no test files; only tested indirectly via CLI tests. + +- [ ] **Add unit tests for `internal/scanner`** - Currently has no test files. + +- [ ] **Add context cancellation to legacy code** - The old `manifest.Scan()` doesn't support context cancellation; the new scanner does. + +- [ ] **Validate input paths before scanning** - Should fail fast with a clear error if paths don't exist. + +- [ ] **Add resume support for fetch** - Allow resuming partial downloads using HTTP Range requests and existing temp files. + +## Lower Priority + +- [ ] **Add manifest signature support** - Implement signing and verification using signify or similar. + +- [ ] **Improve error messages** - Ensure all error messages are clear and actionable.