specweave 1.0.18 → 1.0.20

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 (46) hide show
  1. package/CLAUDE.md +48 -0
  2. package/dist/src/core/config/types.d.ts +15 -0
  3. package/dist/src/core/config/types.d.ts.map +1 -1
  4. package/dist/src/core/config/types.js.map +1 -1
  5. package/dist/src/core/increment/increment-utils.d.ts +40 -0
  6. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  7. package/dist/src/core/increment/increment-utils.js +56 -2
  8. package/dist/src/core/increment/increment-utils.js.map +1 -1
  9. package/dist/src/core/increment/status-change-sync-trigger.d.ts +26 -2
  10. package/dist/src/core/increment/status-change-sync-trigger.d.ts.map +1 -1
  11. package/dist/src/core/increment/status-change-sync-trigger.js +70 -6
  12. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  13. package/dist/src/hooks/auto-create-external-issue.d.ts +19 -0
  14. package/dist/src/hooks/auto-create-external-issue.d.ts.map +1 -0
  15. package/dist/src/hooks/auto-create-external-issue.js +54 -0
  16. package/dist/src/hooks/auto-create-external-issue.js.map +1 -0
  17. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +3 -1
  18. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  19. package/dist/src/integrations/jira/jira-incremental-mapper.js +7 -1
  20. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  21. package/dist/src/integrations/jira/jira-mapper.d.ts +3 -1
  22. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  23. package/dist/src/integrations/jira/jira-mapper.js +7 -1
  24. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  25. package/dist/src/sync/external-issue-auto-creator.d.ts +156 -0
  26. package/dist/src/sync/external-issue-auto-creator.d.ts.map +1 -0
  27. package/dist/src/sync/external-issue-auto-creator.js +694 -0
  28. package/dist/src/sync/external-issue-auto-creator.js.map +1 -0
  29. package/dist/src/sync/format-preservation-sync.d.ts +18 -0
  30. package/dist/src/sync/format-preservation-sync.d.ts.map +1 -1
  31. package/dist/src/sync/format-preservation-sync.js +126 -24
  32. package/dist/src/sync/format-preservation-sync.js.map +1 -1
  33. package/dist/src/sync/frontmatter-updater.d.ts +3 -0
  34. package/dist/src/sync/frontmatter-updater.d.ts.map +1 -1
  35. package/dist/src/sync/frontmatter-updater.js +28 -4
  36. package/dist/src/sync/frontmatter-updater.js.map +1 -1
  37. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  38. package/dist/src/sync/sync-coordinator.js +23 -1
  39. package/dist/src/sync/sync-coordinator.js.map +1 -1
  40. package/dist/src/utils/feature-id-collision.d.ts +51 -0
  41. package/dist/src/utils/feature-id-collision.d.ts.map +1 -1
  42. package/dist/src/utils/feature-id-collision.js +149 -0
  43. package/dist/src/utils/feature-id-collision.js.map +1 -1
  44. package/package.json +1 -1
  45. package/plugins/specweave/commands/sync-progress.md +92 -0
  46. package/plugins/specweave/scripts/cleanup-state.sh +26 -0
@@ -54,6 +54,23 @@ rm -rf "$STATE_DIR"/.processor.lock.d 2>/dev/null || true
54
54
  rm -rf "$STATE_DIR"/.processor.lock 2>/dev/null || true
55
55
  echo " ✓ Done"
56
56
 
57
+ # Clean sync lock directories (v1.0.20+)
58
+ echo "→ Cleaning sync locks..."
59
+ LOCKS_DIR="$STATE_DIR/.locks"
60
+ if [[ -d "$LOCKS_DIR" ]]; then
61
+ # Remove ALL lock dirs older than 5 minutes (stale threshold is 30-60s, so 5min is safe)
62
+ # Covers: github-issue-*, github-comment-*, jira-comment-*, ado-comment-*, frontmatter-*
63
+ STALE_LOCKS=$(find "$LOCKS_DIR" -mindepth 1 -maxdepth 1 -type d -mmin +5 2>/dev/null | wc -l | tr -d ' ')
64
+ if [[ "$STALE_LOCKS" -gt 0 ]]; then
65
+ find "$LOCKS_DIR" -mindepth 1 -maxdepth 1 -type d -mmin +5 -exec rm -rf {} + 2>/dev/null || true
66
+ echo " ✓ Removed $STALE_LOCKS stale lock(s)"
67
+ else
68
+ echo " ✓ No stale locks"
69
+ fi
70
+ else
71
+ echo " ✓ No locks directory"
72
+ fi
73
+
57
74
  # Clean dedup cache
58
75
  echo "→ Cleaning dedup cache..."
59
76
  rm -rf "$STATE_DIR"/.dedup-cache/*.lock 2>/dev/null || true
@@ -86,6 +103,15 @@ if [[ "$1" == "--all" ]]; then
86
103
  echo "0" > "$STATE_DIR/.hook-circuit-breaker-pre" 2>/dev/null || true
87
104
  echo " ✓ Done"
88
105
 
106
+ # Full locks cleanup (remove ALL lock dirs, not just stale ones)
107
+ echo " → Removing ALL lock directories..."
108
+ if [[ -d "$STATE_DIR/.locks" ]]; then
109
+ rm -rf "$STATE_DIR/.locks"
110
+ echo " ✓ Done"
111
+ else
112
+ echo " ✓ No locks directory"
113
+ fi
114
+
89
115
  # Reset status line cache
90
116
  echo " → Resetting status line cache..."
91
117
  rm -f "$STATE_DIR/status-line.json" 2>/dev/null || true