Files
envr/TODOS.md

3.3 KiB

TODOs

  1. envr scan crashes when there are zero results.

  2. Commands are still leaking.

  3. db.odin — Inconsistencies in how struct vs sqlite are named.

  4. Add color flag and support non colored output.

  5. Generate md and man pages again.

  6. db.odin:324-327 — Map iteration (remote_set) is non-deterministic. Same file can produce different JSON on each backup, causing spurious DB diffs. Sort remotes before storing.

  7. Make sure official path separators are used when appropriate, rather than '/'.

  8. cmd_restore.odin:20-30 & cmd_remove.odin:19-29 — Identical path-resolution block copy-pasted. is_abs guard is redundant since filepath.abs is a no-op on absolute paths. Extract a helper.

  9. cmd_restore.odin:44os.mkdir_all error silently discarded. Subsequent write failure will be confusing.

  10. config.odin:178search_paths silently ignores os.user_home_dir error. If home is empty, ~ isn't expanded. Same class of bug as issue 3.

  11. db.odin:115json.unmarshal_string error not checked. Malformed JSON silently produces empty/partial data.

  12. db.odin:352-353hex.encode error ignored. string(hex_bytes) aliases the byte slice.

  13. cmd_sync.odin:80, cmd_list.odin:33make([]string, 2) for table rows never freed. Leaks per row. Defer to memory pass.

  14. cmd_list.odin — Non-TTY branch builds ListEntry structs and marshals JSON separately. Now that render_json_rows (issue 1) accepts an io.Writer and uses json.marshal, unify both branches to use it. Note: will change JSON keys from "directory"/"path" to "Directory"/"Path".

  15. Check for prealloc opportunities. i.e. make([dynamic]string) -> make([dynamic]string, 5).

  16. Add a text filter to the multi_select.

  17. Add tests for untested commands.

  18. 2 scan tests silently skip when fd isn't installed, tests pass without actually testing anything. These should use #assert to be sure that fd is in path.

  19. add --format -f flag to commands that draw tables.

  20. Replace testing.expect calls with testing.expect_value calls where appropriate.

  21. Change struct field names from PascalCase to snake_case.

  22. procedures should be ordered by use, main at the top, then in the order they are called from main.

  23. Shell completion

  24. Bring back windows support / cross-compilation.

  25. Test all cmds / terminal branches.

Double-check AI output

  • cli.odin
  • cli_test.odin
  • cmd_backup.odin
  • cmd_check.odin
  • cmd_check_test.odin
  • cmd_edit_config.odin
  • cmd_init.odin
  • cmd_list.odin
  • cmd_list_test.odin
  • cmd_nushell_completion.odin
  • cmd_nushell_completion_test.odin
  • cmd_remove.odin
  • cmd_restore.odin
  • cmd_scan.odin
  • cmd_sync.odin
  • cmd_version.odin
  • config.odin
  • config_test.odin
  • crypto.odin
  • crypto_test.odin
  • db.odin
  • db_integration_test.odin
  • db_test.odin
  • main.odin
  • prompt.odin
  • scan.odin
  • scan_test.odin
  • sodium.odin
  • sqlite/sqlite.odin
  • ssh.odin
  • ssh_test.odin
  • table.odin
  • table_test.odin
  • findr/findr_test.odin
  • findr/gitignore.odin
  • findr/gitignore_test.odin
  • findr/glob.odin
  • findr/glob_test.odin
  • findr/repos.odin
  • findr/test_env.odin
  • findr/walker.odin