Skip to content

TODO inventory: migrate remaining ~570 TODOs to GitHub issues #32

@friedenberg

Description

@friedenberg

Context

A systematic inventory of all TODO comments in the Go codebase was performed on 2026-03-21 (branch quiet-baobab). The goal is to reduce TODO debt by either fixing items directly or lifting them into tracked GitHub issues.

Work completed

Issues created

Direct fixes

  • blech32 error types — Replaced 6 fmt.Errorf calls with typed errors (ErrInvalidChecksum, ErrMixedCase, errInvalidHRPCharacter, errDataPortionTooShort)
  • blob_store_configs renameTomlV{0,1,2}TomlLocalHashBucketedV{0,1,2} (7 files)
  • markl errLength — Added missing Is() (with marker interface for generics) and GetErrorType() methods
  • markl errWrongHasher — New error type for hash algorithm mismatches
  • gob TODOs — Removed 5 TODO comments after creating Remove encoding/gob dependency entirely #26

TODO format convention

All linked TODOs use a two-line format:

// TODO https://github.com/amarbel-llc/dodder/issues/N
// Cleaned-up description of what needs to happen

Remaining inventory (~570 TODOs, 19 clusters)

Cluster Count Notes
Refactoring / Code Structure / Rename 57 Package splits, moves, renames. Includes env_dir split (4 TODOs), organize_text refactors, command pattern migrations
Organize / Edit / Checkout / Merge 45 merge.go has 12 TODOs alone. organize_text constructor duplicated (constructor.go / constructor2.go)
Performance / Memory / Pooling 39 Pool additions, repool fixes, cache additions, read-and-discard → os.Stat
Remote / Network / HTTP / SFTP 38 SFTP config, HTTP server/client improvements, remote_transfer hacks
Interface / Type Design 38 domain_interfaces markl redesign (4 TODOs), object_id3 fields, commit_options methods, sku types
Store / Config Architecture 37 env_workspace bootstrap, store_config compiled splits, env_dir constants
Format / Serialization / Encoding 36 markl binary coding, hyphence improvements, box_format parser, stream_index
JSON / Lua / MCP Scripting 27 sku_json_fmt duplicated across hotel/india, lua_transacted field TODOs
CLI Commands / Completion / UI 27 Completion refactoring (duplicated dodder/madder), info command renames
Filesystem / Directory / File I/O 24 blob_mover splits (4 TODOs), dir_info improvements, store_fs
Object Commit / Mutation / Locking 20 mutating.go has 12 TODOs, finalizer options
Query Engine 19 build_state decision tree, executor refactoring, sigil/digest support
Error Handling 18 Missing error contexts, deferred error capture, box_format parse errors
IDs / ZettelId 18 Tai pointer issue, zettel_id doddish.Seq migration, hash format hardcoding
Cryptography / Security / Signing 17 InsecureIgnoreHostKey (2), signing middleware extraction, TOFU prompt
Tags / Types / Genres 14 Type package split, deprecated type removal, bookmark type migration
Miscellaneous 12 Scattered single TODOs
Tests / Test Infrastructure 6 test_ui migration, scanner_test framework
Inventory Lists / Coders 5 SeqCoder error support, repool fixes

How to resume

  1. Pick a cluster from the table above
  2. Read the relevant files to understand the TODOs in context
  3. For each TODO, decide: fix directly (if simple) or create a GitHub issue
  4. If creating an issue, update the TODO to the two-line format with full URL
  5. Commit in logical batches (one commit per cluster or sub-cluster)

High-value clusters to tackle next

  • Error Handling (18) — Many are simple "add context" or "capture error" fixes
  • CLI Commands / Completion (27) — The info-* renames and completion duplications are straightforward
  • Tags / Types / Genres (14) — Small cluster, likely quick to triage
  • Tests / Test Infrastructure (6) — Smallest cluster, easy wins

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions