claude-flow 2.7.34 → 2.7.36

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 (134) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/bin/claude-flow +1 -1
  3. package/dist/src/__tests__/benchmarks/performance.bench.js +0 -19
  4. package/dist/src/__tests__/benchmarks/performance.bench.js.map +1 -1
  5. package/dist/src/__tests__/hook-matchers.test.js.map +1 -1
  6. package/dist/src/agents/agent-registry.js.map +1 -1
  7. package/dist/src/api/auth-service.js.map +1 -1
  8. package/dist/src/api/claude-client-enhanced.js +4 -2
  9. package/dist/src/api/claude-client-enhanced.js.map +1 -1
  10. package/dist/src/api/claude-client.js +4 -2
  11. package/dist/src/api/claude-client.js.map +1 -1
  12. package/dist/src/api/database-service.js.map +1 -1
  13. package/dist/src/api/swarm-api.js +1 -1
  14. package/dist/src/api/swarm-api.js.map +1 -1
  15. package/dist/src/cli/commands/hive-mind/wizard.js +1 -1
  16. package/dist/src/cli/commands/hive-mind/wizard.js.map +1 -1
  17. package/dist/src/cli/help-formatter.js +0 -5
  18. package/dist/src/cli/init/index.js +55 -33
  19. package/dist/src/cli/init/index.js.map +1 -1
  20. package/dist/src/cli/simple-commands/init/skills-copier.js +1 -1
  21. package/dist/src/cli/simple-commands/init/skills-copier.js.map +1 -1
  22. package/dist/src/cli/simple-orchestrator.js +1 -1
  23. package/dist/src/cli/simple-orchestrator.js.map +1 -1
  24. package/dist/src/coordination/conflict-resolution.js +1 -1
  25. package/dist/src/coordination/conflict-resolution.js.map +1 -1
  26. package/dist/src/coordination/load-balancer.js +1 -1
  27. package/dist/src/coordination/load-balancer.js.map +1 -1
  28. package/dist/src/core/DatabaseManager.js +39 -9
  29. package/dist/src/core/DatabaseManager.js.map +1 -1
  30. package/dist/src/core/config.js +1 -1
  31. package/dist/src/core/config.js.map +1 -1
  32. package/dist/src/enterprise/audit-manager.js +1 -1
  33. package/dist/src/enterprise/audit-manager.js.map +1 -1
  34. package/dist/src/providers/openai-provider.js +2 -2
  35. package/dist/src/providers/openai-provider.js.map +1 -1
  36. package/dist/src/sdk/checkpoint-manager.js +1 -1
  37. package/dist/src/sdk/checkpoint-manager.js.map +1 -1
  38. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js +1 -1
  39. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js.map +1 -1
  40. package/dist/src/swarm/coordinator.js +1 -1
  41. package/dist/src/swarm/coordinator.js.map +1 -1
  42. package/dist/src/utils/error-recovery.js +215 -0
  43. package/dist/src/utils/error-recovery.js.map +1 -0
  44. package/dist/src/utils/key-redactor.js.map +1 -1
  45. package/dist/src/utils/metrics-reader.js +10 -0
  46. package/dist/src/verification/rollback.js +2 -2
  47. package/dist/src/verification/rollback.js.map +1 -1
  48. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js +4 -2
  49. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js.map +1 -1
  50. package/docs/.claude-flow/metrics/performance.json +3 -3
  51. package/docs/.claude-flow/metrics/task-metrics.json +3 -3
  52. package/docs/architecture/README.md +555 -0
  53. package/docs/architecture/github-workflows-optimization-strategy.md +1079 -0
  54. package/docs/architecture/workflow-architecture-diagram.md +615 -0
  55. package/docs/architecture/workflow-optimization-implementation-guide.md +593 -0
  56. package/docs/features/AUTOMATIC_ERROR_RECOVERY_v2.7.35.md +321 -0
  57. package/docs/features/automatic-error-recovery.md +333 -0
  58. package/docs/fixes/WORKFLOW_FIXES.md +292 -0
  59. package/docs/fixes/WORKFLOW_FIXES_FINAL_STATUS.md +291 -0
  60. package/docs/fixes/github-workflow-fixes-pr888.md +279 -0
  61. package/docs/fixes/workflow-fixes-action-plan.md +388 -0
  62. package/docs/github-issues/README.md +88 -0
  63. package/docs/github-issues/wsl-enotempty-automatic-recovery.md +470 -0
  64. package/docs/github-workflow-fixes.md +219 -0
  65. package/docs/reviews/github-workflows-analysis-report.md +820 -0
  66. package/docs/reviews/pr-888-review-report.md +560 -0
  67. package/docs/testing/CONFIRMATION_AUTOMATIC_ERROR_RECOVERY.md +384 -0
  68. package/docs/testing/DOCKER_TEST_RESULTS_v2.7.35.md +305 -0
  69. package/docs/troubleshooting/wsl-better-sqlite3-error.md +239 -0
  70. package/docs/validation/workflow-fix-verification.md +206 -0
  71. package/package.json +7 -7
  72. package/scripts/create-github-issue.sh +64 -0
  73. package/scripts/test-docker-wsl.sh +198 -0
  74. package/src/__tests__/benchmarks/performance.bench.ts +2 -25
  75. package/src/__tests__/hook-matchers.test.ts +2 -0
  76. package/src/agents/agent-registry.ts +1 -1
  77. package/src/api/auth-service.ts +1 -1
  78. package/src/api/claude-client-enhanced.ts +2 -1
  79. package/src/api/claude-client.ts +2 -2
  80. package/src/api/database-service.ts +1 -2
  81. package/src/api/swarm-api.ts +2 -2
  82. package/src/cli/commands/hive-mind/wizard.ts +1 -1
  83. package/src/cli/init/index.ts +72 -42
  84. package/src/cli/simple-commands/init/skills-copier.js +1 -1
  85. package/src/cli/simple-orchestrator.ts +1 -1
  86. package/src/coordination/conflict-resolution.ts +1 -1
  87. package/src/coordination/load-balancer.ts +1 -1
  88. package/src/core/DatabaseManager.ts +55 -9
  89. package/src/core/config.ts +1 -1
  90. package/src/enterprise/audit-manager.ts +1 -1
  91. package/src/providers/openai-provider.ts +2 -2
  92. package/src/sdk/checkpoint-manager.ts +1 -1
  93. package/src/services/agentic-flow-hooks/workflow-hooks.ts +1 -1
  94. package/src/swarm/coordinator.ts +1 -1
  95. package/src/utils/error-recovery.ts +325 -0
  96. package/src/verification/rollback.ts +2 -2
  97. package/src/verification/tests/mocks/false-reporting-scenarios.test.ts +6 -3
  98. /package/docs/{BUG_REPORT_MEMORY_STATS.md → bug-reports/BUG_REPORT_MEMORY_STATS.md} +0 -0
  99. /package/docs/{MCP_2025_FEATURE_CONFIRMATION.md → features/MCP_2025_FEATURE_CONFIRMATION.md} +0 -0
  100. /package/docs/{OPTIONAL_LOCAL_EMBEDDINGS.md → features/OPTIONAL_LOCAL_EMBEDDINGS.md} +0 -0
  101. /package/docs/{mcp-2025-implementation-summary.md → features/mcp-2025-implementation-summary.md} +0 -0
  102. /package/docs/{mcp-spec-2025-implementation-plan.md → features/mcp-spec-2025-implementation-plan.md} +0 -0
  103. /package/docs/{AGENTIC_FLOW_ENABLED_LOG_FIX.md → fixes/AGENTIC_FLOW_ENABLED_LOG_FIX.md} +0 -0
  104. /package/docs/{MEMORY_COMMAND_FIX.md → fixes/MEMORY_COMMAND_FIX.md} +0 -0
  105. /package/docs/{NPX_MEMORY_FIX_v2.7.19.md → fixes/NPX_MEMORY_FIX_v2.7.19.md} +0 -0
  106. /package/docs/{REMOTE_INSTALL_FIX.md → fixes/REMOTE_INSTALL_FIX.md} +0 -0
  107. /package/docs/{SQLITE_FIX_COMPLETE_v2.7.21.md → fixes/SQLITE_FIX_COMPLETE_v2.7.21.md} +0 -0
  108. /package/docs/{NPM_PUBLISH_GUIDE_v2.7.33.md → guides/NPM_PUBLISH_GUIDE_v2.7.33.md} +0 -0
  109. /package/docs/{SWARM_INITIALIZATION_GUIDE.md → guides/SWARM_INITIALIZATION_GUIDE.md} +0 -0
  110. /package/docs/{AGENTDB_BRANCH_MERGE_VERIFICATION.md → integration/AGENTDB_BRANCH_MERGE_VERIFICATION.md} +0 -0
  111. /package/docs/{INTEGRATION_STATUS_FINAL.md → integration/INTEGRATION_STATUS_FINAL.md} +0 -0
  112. /package/docs/{agentic-flow-agentdb-mcp-integration.md → integration/agentic-flow-agentdb-mcp-integration.md} +0 -0
  113. /package/docs/{phase-1-2-implementation-summary.md → integration/phase-1-2-implementation-summary.md} +0 -0
  114. /package/docs/{.github-release-issue-v2.7.33.md → releases/.github-release-issue-v2.7.33.md} +0 -0
  115. /package/docs/{RELEASE_NOTES_v2.7.15.md → releases/RELEASE_NOTES_v2.7.15.md} +0 -0
  116. /package/docs/{RELEASE_NOTES_v2.7.33.md → releases/RELEASE_NOTES_v2.7.33.md} +0 -0
  117. /package/docs/{RELEASE_READINESS_SUMMARY.md → releases/RELEASE_READINESS_SUMMARY.md} +0 -0
  118. /package/docs/{RELEASE_SUMMARY_v2.7.33.md → releases/RELEASE_SUMMARY_v2.7.33.md} +0 -0
  119. /package/docs/{V2.7.14_RELEASE_NOTES.md → releases/V2.7.14_RELEASE_NOTES.md} +0 -0
  120. /package/docs/{V2.7.25_RELEASE_NOTES.md → releases/V2.7.25_RELEASE_NOTES.md} +0 -0
  121. /package/docs/{V2.7.26_RELEASE_SUMMARY.md → releases/V2.7.26_RELEASE_SUMMARY.md} +0 -0
  122. /package/docs/{V2.7.27_RELEASE_NOTES.md → releases/V2.7.27_RELEASE_NOTES.md} +0 -0
  123. /package/docs/{V2.7.28_RELEASE_NOTES.md → releases/V2.7.28_RELEASE_NOTES.md} +0 -0
  124. /package/docs/{AGENTIC_FLOW_INTEGRATION_REVIEW.md → reviews/AGENTIC_FLOW_INTEGRATION_REVIEW.md} +0 -0
  125. /package/docs/{BRANCH_REVIEW_SUMMARY.md → reviews/BRANCH_REVIEW_SUMMARY.md} +0 -0
  126. /package/docs/{DEEP_CODE_REVIEW_v2.7.33.md → reviews/DEEP_CODE_REVIEW_v2.7.33.md} +0 -0
  127. /package/docs/{LATEST_LIBRARIES_REVIEW.md → reviews/LATEST_LIBRARIES_REVIEW.md} +0 -0
  128. /package/docs/{REGRESSION_TEST_REPORT_v2.7.33.md → testing/REGRESSION_TEST_REPORT_v2.7.33.md} +0 -0
  129. /package/docs/{V2.7.27_TEST_REPORT.md → testing/V2.7.27_TEST_REPORT.md} +0 -0
  130. /package/docs/{regression-analysis-phase-1-2.md → testing/regression-analysis-phase-1-2.md} +0 -0
  131. /package/docs/{TRANSFORMER_INITIALIZATION_ISSUE.md → troubleshooting/TRANSFORMER_INITIALIZATION_ISSUE.md} +0 -0
  132. /package/docs/{FIX_VERIFICATION_MEMORY_STATS.md → validation/FIX_VERIFICATION_MEMORY_STATS.md} +0 -0
  133. /package/docs/{TOOL_VALIDATION_REPORT.md → validation/TOOL_VALIDATION_REPORT.md} +0 -0
  134. /package/docs/{VALIDATION_REPORT_v2.7.1.md → validation/VALIDATION_REPORT_v2.7.1.md} +0 -0
@@ -0,0 +1,239 @@
1
+ # WSL better-sqlite3 Error - Troubleshooting Guide
2
+
3
+ ## ⚡ Automatic Error Recovery (v2.7.35+)
4
+
5
+ **Good news!** Starting with v2.7.35, claude-flow includes **automatic error recovery** that handles this issue without manual intervention.
6
+
7
+ ### What Happens Automatically:
8
+ 1. ✅ Detects ENOTEMPTY and better-sqlite3 errors
9
+ 2. ✅ Cleans npm/npx cache automatically
10
+ 3. ✅ Applies WSL-specific fixes
11
+ 4. ✅ Retries initialization (up to 5 times with `--force`)
12
+ 5. ✅ Falls back to JSON storage if SQLite fails
13
+
14
+ ### Just Run:
15
+ ```bash
16
+ npx claude-flow@alpha init --force
17
+ ```
18
+
19
+ The `--force` flag enables **automatic error recovery** and will:
20
+ - Detect and clean npm cache errors
21
+ - Apply WSL environment optimizations
22
+ - Retry up to 5 times with exponential backoff
23
+ - Automatically switch to JSON storage if needed
24
+
25
+ ---
26
+
27
+ ## Error Description
28
+ ```
29
+ [Error: ENOTEMPTY: directory not empty, rmdir '/home/username/.npm/_npx/xxxxx/node_modules/better-sqlite3']
30
+ errno: -39
31
+ ```
32
+
33
+ When running: `npx claude-flow@alpha init --force` on Windows Subsystem for Linux (WSL)
34
+
35
+ **Note:** If you're using v2.7.35+, automatic recovery handles this. Manual fixes below are only needed for older versions or edge cases.
36
+
37
+ ## Root Causes
38
+
39
+ 1. **File locking conflicts** between Windows and WSL filesystems
40
+ 2. **NPX cache corruption** due to interrupted installations
41
+ 3. **Permission issues** with npm cache directories
42
+ 4. **Native module compilation** issues specific to WSL
43
+
44
+ ## Solutions (Try in order)
45
+
46
+ ### Solution 1: Clear NPM/NPX Cache
47
+ ```bash
48
+ # Clear npm cache
49
+ npm cache clean --force
50
+
51
+ # Remove npx cache directory
52
+ rm -rf ~/.npm/_npx
53
+
54
+ # Retry installation
55
+ npx claude-flow@alpha init --force
56
+ ```
57
+
58
+ ### Solution 2: Use npm instead of npx
59
+ ```bash
60
+ # Install globally first
61
+ npm install -g claude-flow@alpha
62
+
63
+ # Then run init
64
+ claude-flow init --force
65
+ ```
66
+
67
+ ### Solution 3: Manual Directory Cleanup
68
+ ```bash
69
+ # Find the problematic directory
70
+ ls -la ~/.npm/_npx/
71
+
72
+ # Force remove with elevated permissions if needed
73
+ sudo rm -rf ~/.npm/_npx/*/node_modules/better-sqlite3
74
+
75
+ # Clear entire npx cache
76
+ rm -rf ~/.npm/_npx
77
+
78
+ # Retry
79
+ npx claude-flow@alpha init --force
80
+ ```
81
+
82
+ ### Solution 4: Fix WSL File Permissions
83
+ ```bash
84
+ # Ensure proper ownership
85
+ sudo chown -R $(whoami) ~/.npm
86
+
87
+ # Fix permissions
88
+ chmod -R 755 ~/.npm
89
+
90
+ # Clear and retry
91
+ npm cache clean --force
92
+ npx claude-flow@alpha init --force
93
+ ```
94
+
95
+ ### Solution 5: Rebuild better-sqlite3
96
+ ```bash
97
+ # Install build tools if missing
98
+ sudo apt-get update
99
+ sudo apt-get install -y build-essential python3
100
+
101
+ # Clear cache and retry with rebuild flag
102
+ npm cache clean --force
103
+ rm -rf ~/.npm/_npx
104
+ npx claude-flow@alpha init --force
105
+ ```
106
+
107
+ ### Solution 6: Use WSL2 with Proper Node Version
108
+ ```bash
109
+ # Check WSL version
110
+ wsl --list --verbose
111
+
112
+ # Ensure using WSL2 (not WSL1)
113
+ wsl --set-version Ubuntu 2
114
+
115
+ # Use Node 18+ (better-sqlite3 compatibility)
116
+ node --version
117
+
118
+ # Install/update node if needed via nvm
119
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
120
+ source ~/.bashrc
121
+ nvm install 20
122
+ nvm use 20
123
+
124
+ # Retry installation
125
+ npx claude-flow@alpha init --force
126
+ ```
127
+
128
+ ### Solution 7: Run from Linux Filesystem (Not Windows Mount)
129
+ ```bash
130
+ # Bad: Running from /mnt/c/Users/... (Windows filesystem)
131
+ cd /mnt/c/Users/username/project # ❌
132
+
133
+ # Good: Running from WSL filesystem
134
+ cd ~/projects/your-project # ✅
135
+
136
+ # Copy project to WSL if needed
137
+ cp -r /mnt/c/Users/username/project ~/projects/
138
+
139
+ # Run from WSL filesystem
140
+ cd ~/projects/project
141
+ npx claude-flow@alpha init --force
142
+ ```
143
+
144
+ ## Prevention
145
+
146
+ ### Best Practices for WSL Users
147
+
148
+ 1. **Always work in WSL filesystem** (`~/` not `/mnt/c/`)
149
+ 2. **Use Node 18+** for better native module support
150
+ 3. **Keep npm updated**: `npm install -g npm@latest`
151
+ 4. **Regular cache cleanup**: Add to `.bashrc`:
152
+ ```bash
153
+ alias npm-clean="npm cache clean --force && rm -rf ~/.npm/_npx"
154
+ ```
155
+
156
+ ## Quick Fix Script
157
+
158
+ Create a script to automate the fix:
159
+
160
+ ```bash
161
+ #!/bin/bash
162
+ # wsl-fix-npx.sh
163
+
164
+ echo "🔧 Fixing WSL NPX cache issues..."
165
+
166
+ # Stop any running node processes
167
+ pkill -f node || true
168
+
169
+ # Clean npm cache
170
+ echo "📦 Cleaning npm cache..."
171
+ npm cache clean --force
172
+
173
+ # Remove npx cache
174
+ echo "🗑️ Removing npx cache..."
175
+ rm -rf ~/.npm/_npx
176
+
177
+ # Fix permissions
178
+ echo "🔐 Fixing permissions..."
179
+ sudo chown -R $(whoami) ~/.npm
180
+ chmod -R 755 ~/.npm
181
+
182
+ # Verify node/npm
183
+ echo "✅ Verifying Node.js..."
184
+ node --version
185
+ npm --version
186
+
187
+ echo "🎉 Cleanup complete! Try running your command again."
188
+ echo "Command: npx claude-flow@alpha init --force"
189
+ ```
190
+
191
+ Usage:
192
+ ```bash
193
+ chmod +x wsl-fix-npx.sh
194
+ ./wsl-fix-npx.sh
195
+ npx claude-flow@alpha init --force
196
+ ```
197
+
198
+ ## Still Having Issues?
199
+
200
+ ### Report the Issue
201
+ If none of the solutions work, gather this information:
202
+
203
+ ```bash
204
+ # System info
205
+ cat /etc/os-release
206
+ node --version
207
+ npm --version
208
+ wsl --list --verbose # Run from Windows PowerShell
209
+
210
+ # Error details
211
+ npx claude-flow@alpha init --force --verbose 2>&1 | tee error-log.txt
212
+ ```
213
+
214
+ Then report at: https://github.com/ruvnet/claude-flow/issues
215
+
216
+ ### Alternative: Use Docker
217
+ If WSL issues persist, consider using Docker:
218
+
219
+ ```bash
220
+ # Pull claude-flow Docker image (if available)
221
+ docker pull ruvnet/claude-flow:latest
222
+
223
+ # Run in container
224
+ docker run -it -v $(pwd):/workspace ruvnet/claude-flow:latest init --force
225
+ ```
226
+
227
+ ## Technical Background
228
+
229
+ The `ENOTEMPTY` error occurs because:
230
+
231
+ 1. **WSL filesystem translation layer** can cause delays in file operations
232
+ 2. **better-sqlite3** is a native Node.js module requiring compilation
233
+ 3. **NPX temporary directories** may not be fully cleaned before reuse
234
+ 4. **Windows Defender** or antivirus may lock files during scanning
235
+
236
+ The error code `-39` (ENOTEMPTY) means the system tried to remove a directory that still contains files, typically due to:
237
+ - Race conditions in cleanup
238
+ - File handles still open
239
+ - Filesystem caching inconsistencies
@@ -0,0 +1,206 @@
1
+ # Workflow Fix Verification Checklist
2
+
3
+ ## Pre-Deployment Verification
4
+
5
+ ### ✅ Syntax Validation
6
+ - [x] verification-pipeline.yml passes @action-validator/cli
7
+ - [x] ci.yml passes @action-validator/cli
8
+ - [x] YAML syntax is valid
9
+ - [x] No linting errors
10
+
11
+ ### ✅ Logic Verification
12
+
13
+ #### Issue 1: PR Comment Posting
14
+ ```yaml
15
+ # Conditional: github.event_name == 'pull_request' && github.event.pull_request.number
16
+
17
+ Test Cases:
18
+ 1. ✅ PR event with number → RUNS
19
+ 2. ✅ Push event → SKIPS (no error)
20
+ 3. ✅ Workflow dispatch → SKIPS (no error)
21
+ 4. ✅ PR without number (edge) → SKIPS (no error)
22
+ ```
23
+
24
+ #### Issue 2: Windows CLI Test
25
+ ```yaml
26
+ # Path: bin\claude-flow (Windows native)
27
+ # Fallback: continue-on-error: true
28
+
29
+ Test Cases:
30
+ 1. ✅ Windows build with working CLI → PASSES
31
+ 2. ✅ Windows build with path issues → FAILS (non-blocking)
32
+ 3. ✅ Linux/macOS builds → SKIPS Windows step
33
+ ```
34
+
35
+ ### ✅ Backward Compatibility
36
+ - [x] No changes to existing test logic
37
+ - [x] All continue-on-error flags preserved
38
+ - [x] PR comment functionality unchanged
39
+ - [x] Build matrix unchanged
40
+ - [x] Artifact handling unchanged
41
+
42
+ ### ✅ Best Practices Applied
43
+ - [x] Explicit null checks for optional values
44
+ - [x] Platform-specific path handling
45
+ - [x] Non-blocking tests for optional features
46
+ - [x] Clear conditional logic
47
+ - [x] Proper GitHub context usage
48
+
49
+ ## Post-Deployment Verification
50
+
51
+ ### After Merge to Main
52
+ - [ ] Verify verification-pipeline.yml runs without errors on push
53
+ - [ ] Create test PR and verify comment posts correctly
54
+ - [ ] Verify Windows build completes successfully
55
+ - [ ] Check all artifacts are generated correctly
56
+
57
+ ### Test Commands
58
+ ```bash
59
+ # Local syntax validation
60
+ npx @action-validator/cli .github/workflows/verification-pipeline.yml
61
+ npx @action-validator/cli .github/workflows/ci.yml
62
+
63
+ # Check workflow changes
64
+ git diff main..HEAD -- .github/workflows/
65
+
66
+ # Validate YAML
67
+ yamllint .github/workflows/verification-pipeline.yml
68
+ yamllint .github/workflows/ci.yml
69
+ ```
70
+
71
+ ## Known Issues Resolved
72
+
73
+ ### Issue 1: Verification Report Step Failure
74
+ **Before**:
75
+ - Failed on push events with "Cannot read property 'number' of undefined"
76
+ - Used `context.issue.number` which only exists in issue/PR comment events
77
+
78
+ **After**:
79
+ - Only runs when `github.event.pull_request.number` exists
80
+ - Uses `context.payload.pull_request.number` for safe access
81
+ - Skips gracefully on non-PR events
82
+
83
+ ### Issue 2: Windows Build CLI Test
84
+ **Before**:
85
+ - Used Unix path separator `/` which may fail on Windows PowerShell
86
+ - No fallback protection if test failed
87
+
88
+ **After**:
89
+ - Uses Windows-native backslash `\` for path
90
+ - Added `continue-on-error: true` for non-blocking behavior
91
+ - Consistent with Unix build error handling
92
+
93
+ ## GitHub Actions Context Reference
94
+
95
+ ### Available Context Objects
96
+ ```javascript
97
+ // In Pull Request events:
98
+ github.event.pull_request.number // ✅ PR number
99
+ context.payload.pull_request.number // ✅ Same as above
100
+ github.event.pull_request.head.ref // ✅ PR branch name
101
+
102
+ // In Push events:
103
+ github.event.pull_request // ❌ undefined
104
+ context.issue.number // ❌ undefined
105
+
106
+ // Always available:
107
+ github.ref // ✅ refs/heads/branch-name
108
+ github.sha // ✅ commit SHA
109
+ github.event_name // ✅ push, pull_request, etc.
110
+ ```
111
+
112
+ ### Recommended Conditionals
113
+ ```yaml
114
+ # ✅ GOOD: Explicit checks
115
+ if: github.event_name == 'pull_request' && github.event.pull_request.number
116
+
117
+ # ❌ BAD: Assumes PR context exists
118
+ if: github.event_name == 'pull_request'
119
+ # Then uses: context.issue.number (fails!)
120
+
121
+ # ✅ GOOD: Safe property access
122
+ context.payload.pull_request.number
123
+
124
+ # ❌ BAD: Can fail in non-PR events
125
+ context.issue.number
126
+ ```
127
+
128
+ ## Windows Path Handling
129
+
130
+ ### Path Separator Best Practices
131
+ ```bash
132
+ # ✅ Windows PowerShell (GitHub Actions default)
133
+ node bin\claude-flow --version
134
+
135
+ # ✅ Git Bash on Windows
136
+ node bin/claude-flow --version
137
+
138
+ # ✅ Cross-platform (via npm)
139
+ npm run cli:version
140
+
141
+ # ⚠️ Mixed (works but inconsistent)
142
+ node bin/claude-flow --version # May work in PowerShell
143
+ ```
144
+
145
+ ### Shell Detection in GitHub Actions
146
+ ```yaml
147
+ # Default shells by platform:
148
+ ubuntu-latest: bash
149
+ macos-latest: bash
150
+ windows-latest: pwsh (PowerShell)
151
+
152
+ # Override shell if needed:
153
+ - run: |
154
+ node bin/claude-flow --version
155
+ shell: bash # Force bash on Windows (uses Git Bash)
156
+ ```
157
+
158
+ ## Commit Message Template
159
+ ```
160
+ fix: Resolve GitHub workflow failures in PR #888
161
+
162
+ Issue 1: Verification Report - PR comment posting
163
+ - Add explicit check for github.event.pull_request.number
164
+ - Use context.payload.pull_request.number for safe access
165
+ - Prevents failures on push/workflow_dispatch events
166
+
167
+ Issue 2: Windows Build - CLI binary path handling
168
+ - Change to Windows-native path separator (backslash)
169
+ - Add continue-on-error for non-blocking behavior
170
+ - Ensures build completes even if CLI test fails
171
+
172
+ Validation:
173
+ - Both workflows pass @action-validator/cli syntax check
174
+ - Conditional logic verified for all event types
175
+ - Maintains backward compatibility
176
+ - All existing continue-on-error flags preserved
177
+
178
+ Fixes #888
179
+ ```
180
+
181
+ ## Rollback Plan
182
+ If issues occur post-deployment:
183
+
184
+ ```bash
185
+ # Revert specific files
186
+ git checkout HEAD~1 -- .github/workflows/verification-pipeline.yml
187
+ git checkout HEAD~1 -- .github/workflows/ci.yml
188
+ git commit -m "Revert workflow changes from PR #888"
189
+ git push
190
+ ```
191
+
192
+ ## Success Criteria
193
+ - [x] Workflow syntax validation passes
194
+ - [x] No breaking changes introduced
195
+ - [x] Conditional logic is correct
196
+ - [x] Platform-specific handling works
197
+ - [x] Error handling is appropriate
198
+ - [ ] Post-merge verification passes
199
+ - [ ] Windows build completes successfully
200
+ - [ ] PR comments post correctly
201
+
202
+ ---
203
+
204
+ **Status**: ✅ Ready for merge
205
+ **Reviewed by**: GitHub Actions Workflow Validator
206
+ **Date**: 2025-11-28
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow",
3
- "version": "2.7.34",
3
+ "version": "2.7.36",
4
4
  "description": "Enterprise-grade AI agent orchestration with WASM-powered ReasoningBank memory and AgentDB vector database (always uses latest agentic-flow)",
5
5
  "mcpName": "io.github.ruvnet/claude-flow",
6
6
  "main": "cli.mjs",
@@ -26,14 +26,14 @@
26
26
  "dev:build": "tsc --watch",
27
27
  "test": "NODE_OPTIONS='--experimental-vm-modules' jest --bail --maxWorkers=1 --forceExit",
28
28
  "test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --watch",
29
- "test:unit": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/unit",
30
- "test:integration": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/integration",
31
- "test:e2e": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/e2e",
32
- "test:performance": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/performance",
29
+ "test:unit": "NODE_OPTIONS='--experimental-vm-modules' jest tests/unit --maxWorkers=2 --forceExit",
30
+ "test:integration": "NODE_OPTIONS='--experimental-vm-modules' jest tests/integration --maxWorkers=2 --forceExit",
31
+ "test:e2e": "NODE_OPTIONS='--experimental-vm-modules' jest tests/e2e",
32
+ "test:performance": "NODE_OPTIONS='--experimental-vm-modules' jest tests/performance",
33
33
  "test:cli": "NODE_OPTIONS='--experimental-vm-modules' jest src/cli/__tests__",
34
34
  "test:coverage": "NODE_OPTIONS='--experimental-vm-modules' jest --coverage",
35
- "test:coverage:unit": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/unit --coverage",
36
- "test:coverage:integration": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/integration --coverage",
35
+ "test:coverage:unit": "NODE_OPTIONS='--experimental-vm-modules' jest tests/unit --coverage",
36
+ "test:coverage:integration": "NODE_OPTIONS='--experimental-vm-modules' jest tests/integration --coverage",
37
37
  "test:coverage:e2e": "NODE_OPTIONS='--experimental-vm-modules' jest src/__tests__/e2e --coverage",
38
38
  "test:ci": "NODE_OPTIONS='--experimental-vm-modules' jest --ci --coverage --maxWorkers=2",
39
39
  "test:debug": "NODE_OPTIONS='--experimental-vm-modules --inspect-brk' jest --runInBand --no-cache",
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+ # Create GitHub Issue for Automatic Error Recovery
3
+ # Run this after confirming fix works in Docker/CLI
4
+
5
+ set -e
6
+
7
+ echo "📝 Creating GitHub Issue for Automatic Error Recovery"
8
+ echo ""
9
+
10
+ # Check if gh CLI is installed
11
+ if ! command -v gh &> /dev/null; then
12
+ echo "❌ GitHub CLI (gh) is not installed"
13
+ echo " Install: https://cli.github.com/"
14
+ exit 1
15
+ fi
16
+
17
+ # Check if authenticated
18
+ if ! gh auth status &> /dev/null; then
19
+ echo "❌ Not authenticated with GitHub CLI"
20
+ echo " Run: gh auth login"
21
+ exit 1
22
+ fi
23
+
24
+ echo "✅ GitHub CLI ready"
25
+ echo ""
26
+
27
+ # Issue title
28
+ TITLE="✅ Fixed: Automatic recovery for WSL better-sqlite3 ENOTEMPTY error during init"
29
+
30
+ # Issue body (from template)
31
+ BODY=$(cat docs/github-issues/wsl-enotempty-automatic-recovery.md)
32
+
33
+ # Labels
34
+ LABELS="enhancement,bug-fix,wsl,user-experience,v2.7.35"
35
+
36
+ # Milestone
37
+ MILESTONE="v2.7.35"
38
+
39
+ echo "Creating issue..."
40
+ echo "Title: $TITLE"
41
+ echo "Labels: $LABELS"
42
+ echo "Milestone: $MILESTONE"
43
+ echo ""
44
+
45
+ # Create the issue
46
+ gh issue create \
47
+ --title "$TITLE" \
48
+ --body "$BODY" \
49
+ --label "$LABELS" \
50
+ --milestone "$MILESTONE"
51
+
52
+ if [ $? -eq 0 ]; then
53
+ echo ""
54
+ echo "✅ GitHub issue created successfully!"
55
+ echo ""
56
+ echo "Next steps:"
57
+ echo "1. Add test results to the issue"
58
+ echo "2. Attach screenshots if available"
59
+ echo "3. Request review from maintainers"
60
+ else
61
+ echo ""
62
+ echo "❌ Failed to create issue"
63
+ exit 1
64
+ fi