fix(atlas): honour a project pin only when its dedupe key matches (#112)
resolveProjectId returned the local .openscience/project.json pin unconditionally, ignoring the dedupe_key that writeProjectPin had stored alongside it. When the pin is stale or belongs to a different identity — the remote was re-pointed to a fork, a .openscience/ dir was copied in, or the project was deleted — find-or-create returned the wrong/dead id and never created the correct graph, surfacing as 'the graph won't load / shows the wrong project / stays empty'. readProjectPin now returns the stored dedupe_key, and resolveProjectId trusts the pin only when pinMatchesKey() holds (no key = legacy pin, kept for back-compat; otherwise the key must equal the repo's freshly-computed key). A mismatched pin falls through to resolve-or-create, which overwrites it with the current key.
A
Aayam Bansal committed
8014fa79078646f9bfb75e28b783f98db388ec76
Parent: b91a212
Committed by GitHub <noreply@github.com>
on 7/6/2026, 3:57:21 PM