Description
The update-packmind-artifacts GitHub Action keeps a no-op pull request perpetually open. On every run, even when no standard, skill, or command has changed, it commits, pushes, and keeps a PR open. The cause is that packmind-cli install rewrites the installedAt timestamp in the tracked packmind-lock.json on each invocation, and the action's change-detection is a plain git status --porcelain check that treats the timestamp bump as a real change, so changed is always true.
Suggested fixes, any one of which resolves it:
- Do not write
installedAt into the tracked lock file, move it to a gitignored sidecar file, or drop it.
- Exclude
installedAt from change-detection, for example by normalizing or masking it before the git status check so timestamp-only diffs report changed=false.
- Add an action input, for example
ignore-paths or ignore-fields, so consumers can exclude volatile fields from change-detection.
Steps to Reproduce
- Set up the action on a repository with no pending playbook changes.
- Trigger the workflow.
- Trigger it again without editing any playbook artifact.
Expected Behavior
When no standard, skill, or command has changed, the action reports changed=false and does not open or update a pull request.
Actual Behavior
A pull request stays open on every run, and its entire net diff is a single installedAt line (see Logs).
Environment
- Packmind version: 1.15.1 (Helm chart packmind-ai 1.17.0)
- packmind-cli version (if relevant): 0.31.0
- Browser/OS (if frontend issue): N/A, runs in GitHub Actions on ubuntu-latest
- Environment (open-source/cloud/on-prem): on-prem, self-hosted (OSS edition)
- update-packmind-artifacts action: pinned at
9c2aa860c80a31f49873814c3cb7718a54458fe5 (v1)
Logs/Screenshots
Net diff of a run with no playbook changes:
- "installedAt": "2026-07-20T07:02:32.281Z",
+ "installedAt": "2026-07-22T15:57:09.22
Description
The
update-packmind-artifactsGitHub Action keeps a no-op pull request perpetually open. On every run, even when no standard, skill, or command has changed, it commits, pushes, and keeps a PR open. The cause is thatpackmind-cli installrewrites theinstalledAttimestamp in the trackedpackmind-lock.jsonon each invocation, and the action's change-detection is a plaingit status --porcelaincheck that treats the timestamp bump as a real change, sochangedis alwaystrue.Suggested fixes, any one of which resolves it:
installedAtinto the tracked lock file, move it to a gitignored sidecar file, or drop it.installedAtfrom change-detection, for example by normalizing or masking it before thegit statuscheck so timestamp-only diffs reportchanged=false.ignore-pathsorignore-fields, so consumers can exclude volatile fields from change-detection.Steps to Reproduce
Expected Behavior
When no standard, skill, or command has changed, the action reports
changed=falseand does not open or update a pull request.Actual Behavior
A pull request stays open on every run, and its entire net diff is a single
installedAtline (see Logs).Environment
9c2aa860c80a31f49873814c3cb7718a54458fe5(v1)Logs/Screenshots
Net diff of a run with no playbook changes: