Skip to content

Auto-capture tags commits at .projectmem/ files, so precheck flags valid memories as stale #20

Description

@bigfree

Version

projectmem 0.3.3 (pipx), macOS, git post-commit hook installed by pjm init.

What happens

Every commit that also changes a file under .projectmem/ (typically the regenerated summary.md) is auto-captured with location set to that .projectmem/ file rather than to the code the commit describes:

{
  "auto_captured": true,
  "capture_source": "git_post_commit",
  "files": [".projectmem/summary.md", "apps/heating/src/homey/scopes.test.ts", "apps/heating/src/homey/scopes.ts", "apps/heating/src/main.ts"],
  "location": ".projectmem/summary.md",
  "summary": "Fix: fix(heating): check the token by capability, not by scope name",
  "type": "fix"
}

summary.md regenerates on every event, so it collects commits quickly (245 in 30 days in this project). The staleness check counts commits to the cited file after the event, and with the default threshold of 3 nearly every such memory is reported as possibly stale:

.projectmem/summary.md
  WARN  32 possibly-stale memories cite this file
         fix [evt_d872f0ed0b33490e8fc0] "Fix: fix: give the test target an actual command" — predates 226 commits to this file

In one project, 52 of 485 auto-captured events had a .projectmem/ location: 32 on summary.md, the rest on PROJECT_MAP.md, plan.md and issues/*. Every one of them also listed at least one real source file in files.

Cause

commands/auto_capture.py:

location=files[0] if files else None,

git lists changed paths in sorted order, and .projectmem/ sorts ahead of most paths because of the leading dot, so files[0] is the memory file whenever the commit includes one. Since the project's own workflow regenerates summary.md on every recorded event, that is most commits.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions