specweave 1.0.19 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/CLAUDE.md +30 -0
  2. package/dist/src/cli/helpers/init/ado-repo-cloning.d.ts.map +1 -1
  3. package/dist/src/cli/helpers/init/ado-repo-cloning.js +6 -4
  4. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
  5. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts.map +1 -1
  6. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js +4 -2
  7. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js.map +1 -1
  8. package/dist/src/cli/helpers/init/github-repo-cloning.d.ts.map +1 -1
  9. package/dist/src/cli/helpers/init/github-repo-cloning.js +4 -2
  10. package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
  11. package/dist/src/cli/helpers/init/repository-setup.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/init/repository-setup.js +71 -11
  13. package/dist/src/cli/helpers/init/repository-setup.js.map +1 -1
  14. package/dist/src/cli/workers/clone-worker.js +6 -2
  15. package/dist/src/cli/workers/clone-worker.js.map +1 -1
  16. package/dist/src/sync/format-preservation-sync.d.ts +18 -0
  17. package/dist/src/sync/format-preservation-sync.d.ts.map +1 -1
  18. package/dist/src/sync/format-preservation-sync.js +126 -24
  19. package/dist/src/sync/format-preservation-sync.js.map +1 -1
  20. package/dist/src/sync/frontmatter-updater.d.ts +3 -0
  21. package/dist/src/sync/frontmatter-updater.d.ts.map +1 -1
  22. package/dist/src/sync/frontmatter-updater.js +28 -4
  23. package/dist/src/sync/frontmatter-updater.js.map +1 -1
  24. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  25. package/dist/src/sync/sync-coordinator.js +23 -1
  26. package/dist/src/sync/sync-coordinator.js.map +1 -1
  27. package/package.json +1 -1
  28. package/plugins/specweave/scripts/cleanup-state.sh +26 -0
@@ -1 +1 @@
1
- {"version":3,"file":"clone-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/clone-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,uEAAuE;AACvE,+EAA+E;AAE/E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAgB3C;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,SAAiB,EACjB,QAAgB,EAChB,GAA0B;IAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAEnC,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;YAC7D,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;gBAC3E,GAAG,CAAC,mBAAmB,QAAQ,KAAK,cAAc,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,GAAG,CAAC,0BAA0B,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5B,wCAAwC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3F,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElD,wBAAwB;IACxB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,IAAI,aAAkB,CAAC;IAEvB,IAAI,CAAC;QACH,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAE/F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAEpF,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3F,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;YAC1B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC;YAC1C,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,sCAAsC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QACpC,GAAG,CAAC,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,0BAA0B,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/D,iCAAiC;QACjC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;QAC9E,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;QAE/C,sCAAsC;QACtC,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC9C,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE3B,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAExD,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC;QACrC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,WAAW,GAA2C,EAAE,CAAC;QAE/D,GAAG,CAAC,qBAAqB,KAAK,CAAC,MAAM,wDAAwD,CAAC,CAAC;QAE/F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnD,6DAA6D;YAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC9C,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClE,SAAS;YACX,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,IAAI,CAAC,IAAI,EACT,GAAG,CACJ,CAAC;YAEF,SAAS,EAAE,CAAC;YAEZ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,SAAS,EAAE,CAAC;gBACZ,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;gBAC9E,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7E,qDAAqD;gBACrD,GAAG,CAAC,sBAAsB,IAAI,CAAC,IAAI,kCAAkC,KAAK,CAAC,MAAM,GAAG,SAAS,aAAa,CAAC,CAAC;YAC9G,CAAC;YAED,sDAAsD;YACtD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACjD,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,iBAAiB,SAAS,cAAc,MAAM,gCAAgC,OAAO,EAAE,CAAC,CAAC;QACnH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC9B,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,uBAAuB;QACvB,6DAA6D;QAC7D,2GAA2G;QAC3G,iEAAiE;QACjE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAE9E,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,qCAAqC;YACrC,GAAG,CAAC,yCAAyC,CAAC,CAAC;YAC/C,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,4DAA4D;YAC5D,MAAM,UAAU,GAAG,GAAG,MAAM,OAAO,KAAK,CAAC,MAAM,yBAAyB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,iEAAiE,CAAC;YAChK,GAAG,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;YACxB,UAAU,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,iEAAiE;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC/F,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1C,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,SAAS;YACT,MAAM;YACN,OAAO;YACP,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,2DAA2D;YAC3D,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;aACjD,CAAC,CAAC;YACH,iBAAiB;YACjB,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,6FAA6F,CAAC,CAAC,CAAC,IAAI;SAC9H,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEb,oDAAoD;QACpD,GAAG,CAAC,sCAAsC,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YACvE,IAAI,MAAM,GAAwB,EAAE,CAAC;YAErC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,gDAAgD;YAChD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,EAAE,EAAE,IAAI,CAAC,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpC,QAAQ,EAAG,IAAY,CAAC,QAAQ;gBAChC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAClC,MAAM,EAAE,QAAiB;aAC1B,CAAC,CAAC,CAAC;YAEJ,iEAAiE;YACjE,iFAAiF;YACjF,4DAA4D;YAC5D,MAAM,kBAAkB,GAAyB,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC;YACnF,MAAM,WAAW,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAE5C,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oBACvB,gEAAgE;oBAChE,WAAW,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,eAAe;oBACf,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,MAAM,CAAC,QAAQ,GAAG;gBAChB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,WAAW;gBACzB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,GAAG,CAAC,0BAA0B,WAAW,CAAC,MAAM,WAAW,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACpG,CAAC;QAAC,OAAO,aAAkB,EAAE,CAAC;YAC5B,GAAG,CAAC,+CAA+C,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,0CAA0C;QAC5C,CAAC;QAED,GAAG,CAAC,wBAAwB,SAAS,IAAI,KAAK,CAAC,MAAM,eAAe,MAAM,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/H,+DAA+D;QAC/D,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,YAAY;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3F,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QACtF,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAE/C,qBAAqB;QACrB,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/D,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,mCAAmC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,yBAAyB;QACzB,MAAM,IAAI,GAAG,QAAQ;aAClB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;aACnB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;aACzB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,aAAa;AACb,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"clone-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/clone-worker.ts"],"names":[],"mappings":"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"}
@@ -40,8 +40,10 @@ export interface CompletionCommentData {
40
40
  export declare class FormatPreservationSyncService {
41
41
  private logger;
42
42
  private config;
43
+ private projectRoot;
43
44
  constructor(config?: SyncConfig, options?: {
44
45
  logger?: Logger;
46
+ projectRoot?: string;
45
47
  });
46
48
  /**
47
49
  * Sync User Story to external tool with origin-based routing
@@ -94,5 +96,21 @@ export declare class FormatPreservationSyncService {
94
96
  * Examples: "GH-#123" → 123, "#456" → 456
95
97
  */
96
98
  private extractIssueNumber;
99
+ /**
100
+ * Post JIRA comment with atomic locking to prevent concurrent duplicates
101
+ * FIX (v1.0.20): Prevent duplicate comments under concurrent load
102
+ *
103
+ * Note: JIRA doesn't have a simple getComments API exposed in our client,
104
+ * so we rely on atomic locking to serialize comment posts per issue.
105
+ */
106
+ private postJiraCommentWithIdempotency;
107
+ /**
108
+ * Post ADO comment with atomic locking to prevent concurrent duplicates
109
+ * FIX (v1.0.20): Prevent duplicate comments under concurrent load
110
+ *
111
+ * Note: ADO doesn't have a simple getComments API exposed in our client,
112
+ * so we rely on atomic locking to serialize comment posts per work item.
113
+ */
114
+ private postAdoCommentWithIdempotency;
97
115
  }
98
116
  //# sourceMappingURL=format-preservation-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-preservation-sync.d.ts","sourceRoot":"","sources":["../../../src/sync/format-preservation-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAa,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAa;gBAGzB,MAAM,GAAE,UAAe,EACvB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAUnC;;;;;OAKG;IACG,aAAa,CACjB,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS,GACtD,OAAO,CAAC,IAAI,CAAC;IAchB;;;;OAIG;YACW,cAAc;IA6C5B;;;;;;OAMG;YACW,oBAAoB;IAqClC;;;;OAIG;YACW,cAAc;IAmD5B;;;;;;;;;;;;;;;;;OAiBG;IACH,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM;IA0C3D;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAI3B"}
1
+ {"version":3,"file":"format-preservation-sync.d.ts","sourceRoot":"","sources":["../../../src/sync/format-preservation-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,gBAAgB,EAAa,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAG3D,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAG1B,MAAM,GAAE,UAAe,EACvB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAWzD;;;;;OAKG;IACG,aAAa,CACjB,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,qBAAqB,EACrC,cAAc,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS,GACtD,OAAO,CAAC,IAAI,CAAC;IAchB;;;;OAIG;YACW,cAAc;IAoE5B;;;;;;OAMG;YACW,oBAAoB;IAqClC;;;;OAIG;YACW,cAAc;IAyE5B;;;;;;;;;;;;;;;;;OAiBG;IACH,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM;IA0C3D;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;;;OAMG;YACW,8BAA8B;IAmC5C;;;;;;OAMG;YACW,6BAA6B;CAkC5C"}
@@ -8,11 +8,13 @@
8
8
  * - External US (origin=external): Comment-only sync (no title/description changes)
9
9
  * - Internal US (origin=internal): Full sync (title, description, status, comments)
10
10
  */
11
+ import path from 'path';
11
12
  import { getOrigin } from '../types/living-docs-us-file.js';
12
13
  import { GitHubClientV2 } from '../../plugins/specweave-github/lib/github-client-v2.js';
13
14
  import { JiraClient } from '../integrations/jira/jira-client.js';
14
15
  import { AdoClient } from '../integrations/ado/ado-client.js';
15
16
  import { consoleLogger } from '../utils/logger.js';
17
+ import { LockManager } from '../utils/lock-manager.js';
16
18
  export class FormatPreservationSyncService {
17
19
  constructor(config = {}, options = {}) {
18
20
  this.config = {
@@ -21,6 +23,7 @@ export class FormatPreservationSyncService {
21
23
  canUpdateStatus: config.canUpdateStatus ?? false
22
24
  };
23
25
  this.logger = options.logger ?? consoleLogger;
26
+ this.projectRoot = options.projectRoot ?? process.cwd();
24
27
  }
25
28
  /**
26
29
  * Sync User Story to external tool with origin-based routing
@@ -49,27 +52,45 @@ export class FormatPreservationSyncService {
49
52
  this.logger.log(` 💬 External US: Comment-only sync (format preserved)`);
50
53
  // Build completion comment
51
54
  const comment = this.buildCompletionComment(completionData);
52
- // Post comment to external tool with idempotency check
55
+ // Post comment to external tool with idempotency check + atomic locking
53
56
  if (externalClient instanceof GitHubClientV2) {
54
57
  // FIX (v0.26.0): Idempotency check to prevent duplicate comments
58
+ // FIX (v1.0.20): Atomic locking to prevent TOCTOU race condition
55
59
  // See: .specweave/increments/0051-*/reports/GITHUB-COMMENT-RECURSION-ROOT-CAUSE-2025-11-24.md
56
60
  const issueNumber = usFile.external_tools?.github?.number || 0;
57
- // Check if we already posted this exact comment
58
- const lastComment = await externalClient.getLastComment(issueNumber);
59
- if (lastComment && lastComment.body === comment) {
60
- this.logger.log(` ⏭️ Skipping duplicate comment (already posted)`);
61
- return; // Idempotency: Don't post duplicate!
61
+ // ATOMIC LOCK: Prevent race condition between check and post
62
+ const lockDir = path.join(this.projectRoot, '.specweave/state/.locks', `github-comment-${issueNumber}`);
63
+ const lockManager = new LockManager(lockDir, 30, { logger: this.logger }); // 30s stale threshold
64
+ let lockAcquired = false;
65
+ try {
66
+ lockAcquired = await lockManager.acquire();
67
+ if (!lockAcquired) {
68
+ this.logger.log(` ⏳ Issue #${issueNumber} - Another comment in progress, skipping`);
69
+ return;
70
+ }
71
+ // Check if we already posted this exact comment (within lock)
72
+ const lastComment = await externalClient.getLastComment(issueNumber);
73
+ if (lastComment && lastComment.body === comment) {
74
+ this.logger.log(` ⏭️ Skipping duplicate comment (already posted)`);
75
+ return; // Idempotency: Don't post duplicate!
76
+ }
77
+ await externalClient.addComment(issueNumber, comment);
78
+ this.logger.log(` ✅ Posted progress comment to issue #${issueNumber}`);
79
+ }
80
+ finally {
81
+ if (lockAcquired) {
82
+ await lockManager.release();
83
+ }
62
84
  }
63
- await externalClient.addComment(issueNumber, comment);
64
- this.logger.log(` ✅ Posted progress comment to issue #${issueNumber}`);
65
85
  }
66
86
  else if (externalClient instanceof JiraClient) {
67
- const issueKey = usFile.external_id || '';
68
- await externalClient.addComment(issueKey, comment);
87
+ const issueKey = usFile.external_id || usFile.external_tools?.jira?.key || '';
88
+ await this.postJiraCommentWithIdempotency(externalClient, String(issueKey), comment);
69
89
  }
70
90
  else if (externalClient instanceof AdoClient) {
71
- const workItemId = parseInt(usFile.external_id || '0', 10);
72
- await externalClient.addComment(workItemId, comment);
91
+ const adoId = usFile.external_id || usFile.external_tools?.ado?.id || '0';
92
+ const workItemId = parseInt(String(adoId), 10);
93
+ await this.postAdoCommentWithIdempotency(externalClient, workItemId, comment);
73
94
  }
74
95
  // Conditional status update (only if config allows AND progress is 100%)
75
96
  if (this.config.canUpdateStatus && completionData.progressPercentage === 100) {
@@ -137,29 +158,48 @@ export class FormatPreservationSyncService {
137
158
  this.logger.log(` ✅ External updates enabled`);
138
159
  // Build completion comment
139
160
  const comment = this.buildCompletionComment(completionData);
140
- // Post comment with idempotency check
161
+ // Post comment with idempotency check + atomic locking
141
162
  if (externalClient instanceof GitHubClientV2) {
142
163
  // FIX (v0.26.0): Idempotency check to prevent duplicate comments
164
+ // FIX (v1.0.20): Atomic locking to prevent TOCTOU race condition
143
165
  const issueNumber = usFile.external_tools?.github?.number || 0;
144
- // Check if we already posted this exact comment
145
- const lastComment = await externalClient.getLastComment(issueNumber);
146
- if (lastComment && lastComment.body === comment) {
147
- this.logger.log(` ⏭️ Skipping duplicate comment (already posted)`);
166
+ // ATOMIC LOCK: Prevent race condition between check and post
167
+ const lockDir = path.join(this.projectRoot, '.specweave/state/.locks', `github-comment-${issueNumber}`);
168
+ const lockManager = new LockManager(lockDir, 30, { logger: this.logger });
169
+ let lockAcquired = false;
170
+ try {
171
+ lockAcquired = await lockManager.acquire();
172
+ if (!lockAcquired) {
173
+ this.logger.log(` ⏳ Issue #${issueNumber} - Another comment in progress, skipping`);
174
+ }
175
+ else {
176
+ // Check if we already posted this exact comment (within lock)
177
+ const lastComment = await externalClient.getLastComment(issueNumber);
178
+ if (lastComment && lastComment.body === comment) {
179
+ this.logger.log(` ⏭️ Skipping duplicate comment (already posted)`);
180
+ }
181
+ else {
182
+ await externalClient.addComment(issueNumber, comment);
183
+ this.logger.log(` ✅ Posted progress comment to issue #${issueNumber}`);
184
+ }
185
+ }
148
186
  }
149
- else {
150
- await externalClient.addComment(issueNumber, comment);
151
- this.logger.log(` ✅ Posted progress comment to issue #${issueNumber}`);
187
+ finally {
188
+ if (lockAcquired) {
189
+ await lockManager.release();
190
+ }
152
191
  }
153
192
  // Update title/description if needed
154
193
  // TODO: Implement title/description update logic
155
194
  }
156
195
  else if (externalClient instanceof JiraClient) {
157
- const issueKey = usFile.external_id || '';
158
- await externalClient.addComment(issueKey, comment);
196
+ const issueKey = usFile.external_id || usFile.external_tools?.jira?.key || '';
197
+ await this.postJiraCommentWithIdempotency(externalClient, String(issueKey), comment);
159
198
  }
160
199
  else if (externalClient instanceof AdoClient) {
161
- const workItemId = parseInt(usFile.external_id || '0', 10);
162
- await externalClient.addComment(workItemId, comment);
200
+ const adoId = usFile.external_id || usFile.external_tools?.ado?.id || '0';
201
+ const workItemId = parseInt(String(adoId), 10);
202
+ await this.postAdoCommentWithIdempotency(externalClient, workItemId, comment);
163
203
  }
164
204
  // Update status if allowed AND progress is 100%
165
205
  if (this.config.canUpdateStatus && completionData.progressPercentage === 100) {
@@ -235,5 +275,67 @@ export class FormatPreservationSyncService {
235
275
  const match = externalId.match(/#(\d+)/);
236
276
  return match ? parseInt(match[1], 10) : 0;
237
277
  }
278
+ /**
279
+ * Post JIRA comment with atomic locking to prevent concurrent duplicates
280
+ * FIX (v1.0.20): Prevent duplicate comments under concurrent load
281
+ *
282
+ * Note: JIRA doesn't have a simple getComments API exposed in our client,
283
+ * so we rely on atomic locking to serialize comment posts per issue.
284
+ */
285
+ async postJiraCommentWithIdempotency(client, issueKey, comment) {
286
+ if (!issueKey) {
287
+ this.logger.log(` ⚠️ No JIRA issue key, skipping comment`);
288
+ return;
289
+ }
290
+ // ATOMIC LOCK: Serialize comment posts per issue to prevent duplicates
291
+ const lockDir = path.join(this.projectRoot, '.specweave/state/.locks', `jira-comment-${issueKey}`.toLowerCase().replace(/[^a-z0-9-]/g, '-'));
292
+ const lockManager = new LockManager(lockDir, 30, { logger: this.logger });
293
+ let lockAcquired = false;
294
+ try {
295
+ lockAcquired = await lockManager.acquire();
296
+ if (!lockAcquired) {
297
+ this.logger.log(` ⏳ JIRA ${issueKey} - Another comment in progress, skipping`);
298
+ return;
299
+ }
300
+ await client.addComment(issueKey, comment);
301
+ this.logger.log(` ✅ Posted progress comment to JIRA ${issueKey}`);
302
+ }
303
+ finally {
304
+ if (lockAcquired) {
305
+ await lockManager.release();
306
+ }
307
+ }
308
+ }
309
+ /**
310
+ * Post ADO comment with atomic locking to prevent concurrent duplicates
311
+ * FIX (v1.0.20): Prevent duplicate comments under concurrent load
312
+ *
313
+ * Note: ADO doesn't have a simple getComments API exposed in our client,
314
+ * so we rely on atomic locking to serialize comment posts per work item.
315
+ */
316
+ async postAdoCommentWithIdempotency(client, workItemId, comment) {
317
+ if (!workItemId) {
318
+ this.logger.log(` ⚠️ No ADO work item ID, skipping comment`);
319
+ return;
320
+ }
321
+ // ATOMIC LOCK: Serialize comment posts per work item to prevent duplicates
322
+ const lockDir = path.join(this.projectRoot, '.specweave/state/.locks', `ado-comment-${workItemId}`);
323
+ const lockManager = new LockManager(lockDir, 30, { logger: this.logger });
324
+ let lockAcquired = false;
325
+ try {
326
+ lockAcquired = await lockManager.acquire();
327
+ if (!lockAcquired) {
328
+ this.logger.log(` ⏳ ADO #${workItemId} - Another comment in progress, skipping`);
329
+ return;
330
+ }
331
+ await client.addComment(workItemId, comment);
332
+ this.logger.log(` ✅ Posted progress comment to ADO #${workItemId}`);
333
+ }
334
+ finally {
335
+ if (lockAcquired) {
336
+ await lockManager.release();
337
+ }
338
+ }
339
+ }
238
340
  }
239
341
  //# sourceMappingURL=format-preservation-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-preservation-sync.js","sourceRoot":"","sources":["../../../src/sync/format-preservation-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-preservation-sync.js","sourceRoot":"","sources":["../../../src/sync/format-preservation-sync.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,9 @@ export declare class FrontmatterUpdater {
41
41
  *
42
42
  * CRITICAL: This is Layer 1 backfill for 3-layer idempotency
43
43
  * Must be called after GitHub issue creation to cache issue number
44
+ *
45
+ * FIX (v1.0.20): Added atomic locking to prevent race conditions when
46
+ * multiple agents update the same user story frontmatter concurrently.
44
47
  */
45
48
  updateUserStoryFrontmatter(options: FrontmatterUpdateOptions): Promise<boolean>;
46
49
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter-updater.d.ts","sourceRoot":"","sources":["../../../src/sync/frontmatter-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAAuB;gBAElC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IASnE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAYpB;;;;;OAKG;IACG,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmErF;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,eAAe,CAAA;KAAE,CAAC,GACpE,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB/C;;OAEG;YACW,gBAAgB;IAsC9B;;OAEG;IACG,6BAA6B,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAmCnC"}
1
+ {"version":3,"file":"frontmatter-updater.d.ts","sourceRoot":"","sources":["../../../src/sync/frontmatter-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAI3D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAAuB;gBAElC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IASnE;;;OAGG;IACH,OAAO,CAAC,YAAY;IAYpB;;;;;;;;OAQG;IACG,0BAA0B,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4FrF;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,eAAe,CAAA;KAAE,CAAC,GACpE,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB/C;;OAEG;YACW,gBAAgB;IAsC9B;;OAEG;IACG,6BAA6B,CACjC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAmCnC"}
@@ -10,12 +10,13 @@
10
10
  * - Layer 2: Increment metadata.json (fast, <5ms)
11
11
  * - Layer 3: GitHub API query (slow, 500-2000ms)
12
12
  */
13
- import { readFile, writeFile, readdir } from 'fs/promises';
13
+ import { readFile, writeFile, readdir, mkdir } from 'fs/promises';
14
14
  import { existsSync } from 'fs';
15
15
  import path from 'path';
16
16
  import yaml from 'yaml';
17
17
  import { consoleLogger } from '../utils/logger.js';
18
18
  import { autoDetectProjectIdSync } from '../utils/project-detection.js';
19
+ import { LockManager } from '../utils/lock-manager.js';
19
20
  export class FrontmatterUpdater {
20
21
  constructor(options = {}) {
21
22
  this.projectRoot = null;
@@ -47,17 +48,34 @@ export class FrontmatterUpdater {
47
48
  *
48
49
  * CRITICAL: This is Layer 1 backfill for 3-layer idempotency
49
50
  * Must be called after GitHub issue creation to cache issue number
51
+ *
52
+ * FIX (v1.0.20): Added atomic locking to prevent race conditions when
53
+ * multiple agents update the same user story frontmatter concurrently.
50
54
  */
51
55
  async updateUserStoryFrontmatter(options) {
56
+ const { projectRoot, featureId, userStoryId, githubIssue } = options;
57
+ // ATOMIC LOCK: Prevent race condition when parallel agents update same file
58
+ // Lock is per-user-story file to allow parallel updates to different files
59
+ const locksDir = path.join(projectRoot, '.specweave/state/.locks');
60
+ if (!existsSync(locksDir)) {
61
+ await mkdir(locksDir, { recursive: true });
62
+ }
63
+ const lockDir = path.join(locksDir, `frontmatter-${featureId}-${userStoryId}`.toLowerCase().replace(/[^a-z0-9-]/g, '-'));
64
+ const lockManager = new LockManager(lockDir, 30, { logger: this.logger }); // 30s stale threshold
65
+ let lockAcquired = false;
52
66
  try {
53
- const { projectRoot, featureId, userStoryId, githubIssue } = options;
67
+ lockAcquired = await lockManager.acquire();
68
+ if (!lockAcquired) {
69
+ this.logger.log(` ⏳ ${userStoryId} frontmatter update in progress by another agent, skipping`);
70
+ return false;
71
+ }
54
72
  // Construct user story file path
55
73
  const userStoryPath = await this.getUserStoryPath(projectRoot, featureId, userStoryId);
56
74
  if (!existsSync(userStoryPath)) {
57
75
  this.logger.log(`⚠️ User story file not found: ${userStoryPath}`);
58
76
  return false;
59
77
  }
60
- // Read current content
78
+ // Read current content (within lock)
61
79
  const content = await readFile(userStoryPath, 'utf-8');
62
80
  // Parse frontmatter
63
81
  const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
@@ -85,7 +103,7 @@ export class FrontmatterUpdater {
85
103
  const newFrontmatter = yaml.stringify(frontmatter);
86
104
  // Replace frontmatter in content
87
105
  const newContent = content.replace(/^---\n[\s\S]*?\n---/, `---\n${newFrontmatter.trim()}\n---`);
88
- // Write back to file
106
+ // Write back to file (within lock)
89
107
  await writeFile(userStoryPath, newContent, 'utf-8');
90
108
  this.logger.log(` ✅ Updated ${userStoryId} frontmatter with issue #${githubIssue.number}`);
91
109
  return true;
@@ -94,6 +112,12 @@ export class FrontmatterUpdater {
94
112
  this.logger.error(`❌ Failed to update frontmatter for ${options.userStoryId}:`, error);
95
113
  return false;
96
114
  }
115
+ finally {
116
+ // ALWAYS release lock
117
+ if (lockAcquired) {
118
+ await lockManager.release();
119
+ }
120
+ }
97
121
  }
98
122
  /**
99
123
  * Batch update multiple user story frontmatters
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter-updater.js","sourceRoot":"","sources":["../../../src/sync/frontmatter-updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontmatter-updater.js","sourceRoot":"","sources":["../../../src/sync/frontmatter-updater.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-coordinator.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAK3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAChH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,EAAE,sBAAsB;IAa3C;;;;;OAKG;IACH,iBAAiB,IAAI,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAI7D;;OAEG;IACH,0BAA0B,IAAI,MAAM;IAIpC;;;;;;;;;;;;;OAaG;IACG,gCAAgC,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqU3E;;;;;;;;;;;;;;;OAeG;IACG,+BAA+B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0HrE;;;;;;;;OAQG;IACG,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IA8EjE;;;;;;;;OAQG;IACG,+BAA+B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAyGnE;;;;;;;;;;;;OAYG;IACG,oBAAoB,IAAI,OAAO,CAAC,UAAU,GAAG;QAAE,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAqI9E;;;;;;;;;;;;;;OAcG;YACW,oBAAoB;IAsDlC;;;OAGG;YACW,wBAAwB;IA2DtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC;IA6HpD;;OAEG;YACW,aAAa;IAiL3B;;OAEG;YACW,kBAAkB;IAmEhC;;OAEG;YACW,2BAA2B;IA6FzC;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;CAyCpC"}
1
+ {"version":3,"file":"sync-coordinator.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAK3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAAE,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAG5E,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAChH,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAqB;IACxC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,EAAE,sBAAsB;IAa3C;;;;;OAKG;IACH,iBAAiB,IAAI,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAI7D;;OAEG;IACH,0BAA0B,IAAI,MAAM;IAIpC;;;;;;;;;;;;;OAaG;IACG,gCAAgC,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA+V3E;;;;;;;;;;;;;;;OAeG;IACG,+BAA+B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0HrE;;;;;;;;OAQG;IACG,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IA8EjE;;;;;;;;OAQG;IACG,+BAA+B,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAyGnE;;;;;;;;;;;;OAYG;IACG,oBAAoB,IAAI,OAAO,CAAC,UAAU,GAAG;QAAE,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAqI9E;;;;;;;;;;;;;;OAcG;YACW,oBAAoB;IAsDlC;;;OAGG;YACW,wBAAwB;IA2DtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC;IA6HpD;;OAEG;YACW,aAAa;IAiL3B;;OAEG;YACW,kBAAkB;IAmEhC;;OAEG;YACW,2BAA2B;IA6FzC;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;CAyCpC"}
@@ -18,6 +18,7 @@ import { AdoClient } from '../integrations/ado/ado-client.js';
18
18
  import { getAdoPat } from '../integrations/ado/ado-pat-provider.js';
19
19
  import { deriveFeatureId } from '../utils/feature-id-derivation.js';
20
20
  import { createClosureMetrics } from './closure-metrics.js';
21
+ import { LockManager } from '../utils/lock-manager.js';
21
22
  export class SyncCoordinator {
22
23
  constructor(options) {
23
24
  this.projectRoot = options.projectRoot;
@@ -113,9 +114,24 @@ export class SyncCoordinator {
113
114
  catch (error) {
114
115
  this.logger.log('⚠️ Could not create/get milestone, continuing without it');
115
116
  }
116
- // Create issue for each user story (with idempotency)
117
+ // Create issue for each user story (with idempotency + atomic locking)
118
+ // Ensure locks directory exists (once per batch, not per user story)
119
+ const locksDir = path.join(this.projectRoot, '.specweave/state/.locks');
120
+ if (!existsSync(locksDir)) {
121
+ await fs.mkdir(locksDir, { recursive: true });
122
+ }
117
123
  for (const usFile of userStories) {
124
+ // ATOMIC LOCK: Prevent race conditions when multiple syncs run concurrently
125
+ // Lock is per-user-story to allow parallel processing of different stories
126
+ const lockDir = path.join(locksDir, `github-issue-${featureId}-${usFile.id}`.toLowerCase().replace(/[^a-z0-9-]/g, '-'));
127
+ const lockManager = new LockManager(lockDir, 60, { logger: this.logger }); // 60s stale threshold
128
+ let lockAcquired = false;
118
129
  try {
130
+ lockAcquired = await lockManager.acquire();
131
+ if (!lockAcquired) {
132
+ this.logger.log(` ⏳ ${usFile.id} - Another sync in progress, skipping (lock not acquired)`);
133
+ continue;
134
+ }
119
135
  // LAYER 1: Check user story frontmatter for existing GitHub issue
120
136
  const cachedIssue = await this.frontmatterUpdater.getGitHubIssueFromFrontmatter(this.projectRoot, featureId, usFile.id);
121
137
  if (cachedIssue) {
@@ -306,6 +322,12 @@ export class SyncCoordinator {
306
322
  catch (error) {
307
323
  this.logger.error(` ❌ Failed to create issue for ${usFile.id}:`, error);
308
324
  }
325
+ finally {
326
+ // ALWAYS release lock, even on error or early continue
327
+ if (lockAcquired) {
328
+ await lockManager.release();
329
+ }
330
+ }
309
331
  }
310
332
  if (createdIssues.length > 0) {
311
333
  this.logger.log(`\n✅ Created ${createdIssues.length} GitHub issue(s) for ${featureId}`);