3.2 KiB
TODOs
-
Consider giving db its own allocator
-
Commands are still leaking.
-
Generate md and man pages again.
-
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. -
Make sure official path separators are used when appropriate, rather than '/'.
-
cmd_restore.odin:20-30 & cmd_remove.odin:19-29 — Identical path-resolution block copy-pasted.
is_absguard is redundant sincefilepath.absis a no-op on absolute paths. Extract a helper. -
cmd_restore.odin:44 —
os.mkdir_allerror silently discarded. Subsequent write failure will be confusing. -
config.odin:178 —
search_pathssilently ignoresos.user_home_direrror. If home is empty,~isn't expanded. Same class of bug as issue 3. -
db.odin:115 —
json.unmarshal_stringerror not checked. Malformed JSON silently produces empty/partial data. -
db.odin:352-353 —
hex.encodeerror ignored.string(hex_bytes)aliases the byte slice. -
cmd_sync.odin:80, cmd_list.odin:33 —
make([]string, 2)for table rows never freed. Leaks per row. Defer to memory pass. -
cmd_list.odin — Non-TTY branch builds
ListEntrystructs and marshals JSON separately. Now thatrender_json_rows(issue 1) accepts anio.Writerand usesjson.marshal, unify both branches to use it. Note: will change JSON keys from"directory"/"path"to"Directory"/"Path". -
Check for prealloc opportunities. i.e.
make([dynamic]string)->make([dynamic]string, 5). -
Add a text filter to the multi_select.
-
Add tests for untested commands.
-
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.
-
add --format -f flag to commands that draw tables.
-
Replace
testing.expectcalls withtesting.expect_valuecalls where appropriate. -
Change struct field names from PascalCase to snake_case.
-
procedures should be ordered by use, main at the top, then in the order they are called from main.
-
Shell completion
-
Bring back windows support / cross-compilation.
-
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