TODO
StandardConfig refactoring (DONE)
All config structs now embed StandardConfig via #[serde(flatten)].
Cache cleanup
-
Remove old DB cache code:
CacheEntry,OutputEntry,get_entry,has_cache_entry,get_cached_input_checksum,CACHE_TABLE. These are legacy from the pre-descriptor system.has_cache_entry(used in status display to distinguish “stale” vs “new”) should use the descriptor system instead. ~80 lines of dead code. -
Remove
cache_key()method fromProduct. Only used byhas_cache_entryandremove_stale. Oncehas_cache_entryis migrated to descriptors, it may become fully unused. -
Split db.redb: the configs table (
CONFIGS_TABLE) is still in the same DB as the now-unused cache table. Give configs its own file (configs.redb), then deletedb.redbentirely.
Cache correctness
-
Implement
output_depends_on_input_nameflag. Documented indocs/src/cache.mdbut not implemented. Needed for processors that embed the input filename in their output (e.g., a// Generated from foo.cheader). Without it, renaming such a file would produce a cache hit with stale content. -
Write a test for identical content processed by different processors. Verify two different processors processing the same file get separate cache entries (the processor name is in the descriptor key).
Code consolidation
-
Inline single-use
namesconstants. 20+ constants inprocessors::namesare used in exactly one place each (their processor’snew()call). Inline them as string literals. -
Clean
processor_configs.rs. Still 2,100+ lines. Check for:- ClangTidyConfig is nearly identical to StandardConfig — could it become a type alias?
- Unused
default_*helper functions left over from cppcheck removal. - Other config structs that are structurally identical to StandardConfig.
Documentation
- Add
docs/src/processors/creator.md— per-processor documentation for the Creator processor, like the other processor docs.
Housekeeping
-
Remove the
tarlockfile entries. The crate was added and removed, butCargo.lockmay still reference it. -
Commit everything. There is a large amount of uncommitted work spanning:
- HasScanConfig trait elimination
- SimpleGenerator (14 generators collapsed to data-driven)
- Creator processor (new processor type with multi-dir caching)
- Cache redesign (descriptor-based, content-addressed keys, no DB for cache data)
- Checksum cache centralization (moved mtime logic to
checksum.rswith own DB) - MassGenerator → Creator type rename
ProcessorTypeenum with strum iterationprocessors typesCLI command--no-mtime-cacheCLI flag- Mandatory
supports_batchon all processors - Checker consolidation (5 checkers → SimpleChecker entries)
- Removed unused
dirscrate - New documentation: cache.md, checksum-cache.md, processor-types.md