Skip to content

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. #437

@jamesdlevine

Description

@jamesdlevine

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

  1. Run pdd sync on a project with multiple prompts
  2. Inspect the resulting .pdd/meta/*.json files
  3. Observe all hash fields are null

Environment

  • PDD Version: 0.0.131
  • Platform: macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions