Title
Asset hashes in metadata are null after successful sync/generate
Body
Bug Description
After a successful sync (or generate) command, the fingerprint metadata files in .pdd/meta/ have all hash fields set to null instead of containing actual content hashes.
Expected Behavior
According to the README, PDD uses "fingerprint-based change detection" that tracks content hashes and timestamps. After assets are generated, the metadata files should contain valid hashes for:
prompt_hash
code_hash
example_hash
test_hash
Actual Behavior
All hash fields are null after sync completes successfully:
{
"pdd_version": "0.0.131",
"timestamp": "2026-01-28T04:39:27.091470+00:00",
"command": "generate",
"prompt_hash": null,
"code_hash": null,
"example_hash": null,
"test_hash": null,
"test_files": null
}
Affected Files
Multiple meta files are affected, including:
.pdd/meta/tui_animations_python.json
.pdd/meta/tui_app_Python.json
.pdd/meta/tui_widgets_Python.json
.pdd/meta/tui_screens_Python.json
.pdd/meta/cli_Python.json
Impact
This breaks the fingerprint-based change detection feature. Without valid hashes:
- PDD cannot intelligently detect which files have changed
- Incremental regeneration decisions may be incorrect
- The system cannot determine when to skip regeneration vs when updates are needed
Reproduction
- Run
pdd sync on a project with multiple prompts
- Inspect the resulting
.pdd/meta/*.json files
- Observe all hash fields are
null
Environment
- PDD Version: 0.0.131
- Platform: macOS