specweave 1.0.273 → 1.0.274
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-change-sync-trigger.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/status-change-sync-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,cAAc,CAA4B;IACzD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAyB;IAE9C;;;;;;;;;OASG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;;;OAUG;mBACkB,mBAAmB;IAgCxC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAkB3B;;;;;;;;;;OAUG;mBACkB,cAAc;
|
|
1
|
+
{"version":3,"file":"status-change-sync-trigger.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/status-change-sync-trigger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,cAAc,CAA4B;IACzD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAyB;IAE9C;;;;;;;;;OASG;WACU,eAAe,CAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,IAAI,CAAC;IAqChB;;;;;;;;;;OAUG;mBACkB,mBAAmB;IAgCxC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAkB3B;;;;;;;;;;OAUG;mBACkB,cAAc;IA4CnC;;;;;;OAMG;mBACkB,kBAAkB;IAuBvC;;;;;;OAMG;mBACkB,uBAAuB;IA4B5C;;OAEG;IACH,MAAM,CAAC,sBAAsB;IAI7B;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAIlC;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGvC"}
|
|
@@ -158,29 +158,37 @@ export class StatusChangeSyncTrigger {
|
|
|
158
158
|
static async spawnAsyncSync(incrementId, newStatus) {
|
|
159
159
|
// Dynamic import to avoid circular dependency
|
|
160
160
|
const { LivingDocsSync } = await import('../living-docs/living-docs-sync.js');
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (newStatus === IncrementStatus.COMPLETED) {
|
|
174
|
-
await this.autoCloseExternalIssues(projectRoot, incrementId);
|
|
175
|
-
}
|
|
176
|
-
this.circuitBreaker.recordSuccess();
|
|
177
|
-
this.logger.log(`✅ Auto-synced increment ${incrementId} to external tools`);
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
// Error will be caught by triggerIfNeeded()
|
|
181
|
-
throw error;
|
|
161
|
+
const syncFn = async () => {
|
|
162
|
+
const projectRoot = process.cwd();
|
|
163
|
+
// v1.0.19: Check if we need to auto-create external issues
|
|
164
|
+
await this.autoCreateIfNeeded(projectRoot, incrementId);
|
|
165
|
+
// Run living docs sync
|
|
166
|
+
const sync = new LivingDocsSync(projectRoot, {
|
|
167
|
+
logger: this.logger
|
|
168
|
+
});
|
|
169
|
+
await sync.syncIncrement(incrementId);
|
|
170
|
+
// v1.0.19: Auto-close issues on completion
|
|
171
|
+
if (newStatus === IncrementStatus.COMPLETED) {
|
|
172
|
+
await this.autoCloseExternalIssues(projectRoot, incrementId);
|
|
182
173
|
}
|
|
183
|
-
|
|
174
|
+
this.circuitBreaker.recordSuccess();
|
|
175
|
+
this.logger.log(`✅ Auto-synced increment ${incrementId} to external tools`);
|
|
176
|
+
};
|
|
177
|
+
// Completion transitions run synchronously to ensure issue closure
|
|
178
|
+
// completes before the process exits. Other transitions stay non-blocking.
|
|
179
|
+
if (newStatus === IncrementStatus.COMPLETED) {
|
|
180
|
+
await syncFn();
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
setTimeout(async () => {
|
|
184
|
+
try {
|
|
185
|
+
await syncFn();
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
}, 0);
|
|
191
|
+
}
|
|
184
192
|
}
|
|
185
193
|
/**
|
|
186
194
|
* Auto-create external issues if:
|
|
@@ -219,10 +227,10 @@ export class StatusChangeSyncTrigger {
|
|
|
219
227
|
incrementId,
|
|
220
228
|
logger: this.logger,
|
|
221
229
|
});
|
|
222
|
-
//
|
|
223
|
-
const result = await coordinator.
|
|
230
|
+
// Close GitHub/JIRA/ADO issues with proper completion comments
|
|
231
|
+
const result = await coordinator.syncIncrementClosure();
|
|
224
232
|
if (result.success) {
|
|
225
|
-
this.logger.log(`🎉 Auto-closed external issues for ${incrementId} (${result.
|
|
233
|
+
this.logger.log(`🎉 Auto-closed external issues for ${incrementId} (${result.closedIssues.length} closed)`);
|
|
226
234
|
}
|
|
227
235
|
}
|
|
228
236
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-change-sync-trigger.js","sourceRoot":"","sources":["../../../../src/core/increment/status-change-sync-trigger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status-change-sync-trigger.js","sourceRoot":"","sources":["../../../../src/core/increment/status-change-sync-trigger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.274",
|
|
4
4
|
"description": "Spec-driven development framework for AI coding agents. First-class support for Claude Code — compatible with any LLM-powered coding tool. Living documentation, autonomous execution, quality gates, and multilingual support (9 languages).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -113,12 +113,32 @@ Runs automatically after successful closure:
|
|
|
113
113
|
|
|
114
114
|
**B) Sync living docs to GitHub Project**: If `hooks.post_increment_done.sync_to_github_project` enabled, find living docs spec and run `/sw-github:sync-spec`.
|
|
115
115
|
|
|
116
|
-
**C) Close GitHub
|
|
116
|
+
**C) Close ALL per-user-story GitHub issues**: If `hooks.post_increment_done.close_github_issue` enabled:
|
|
117
|
+
|
|
118
|
+
1. Read `sync.github.owner` and `sync.github.repo` from config.json
|
|
119
|
+
2. Extract the feature ID (e.g. `FS-237`) from spec.md frontmatter or increment ID
|
|
120
|
+
3. For EACH user story in spec.md (US-001, US-002, etc.):
|
|
121
|
+
- Search GitHub by title pattern: `gh issue list -R {owner}/{repo} --search "[{feature_id}][{us_id}]" --state open --json number`
|
|
122
|
+
- Close each matching open issue: `gh issue close {number} -R {owner}/{repo} -c "Completed as part of increment {increment_id}"`
|
|
123
|
+
4. Also close the single issue in `metadata.github.issue` if it exists and is still open
|
|
124
|
+
5. Report: "Closed N of M user-story issues on GitHub"
|
|
125
|
+
|
|
126
|
+
**IMPORTANT**: Do NOT rely only on `metadata.github.issue` — that field tracks only one issue. Always search by title pattern to find ALL per-user-story issues.
|
|
117
127
|
|
|
118
128
|
**D) Close external-origin issue** (E-suffix increments only): Parse `metadata.external_ref` (format: `github#owner/repo#number`). Check `sync.settings.canUpdateStatus` permission. Close via `gh issue close -R`.
|
|
119
129
|
|
|
120
130
|
**E) Sync to external tools**: If `sync.statusSync.enabled`, use `syncACProgressToProviders()` to sync to all enabled providers (GitHub, JIRA, ADO).
|
|
121
131
|
|
|
132
|
+
**F) Sync Result Summary**: Display a summary of all closure operations:
|
|
133
|
+
```
|
|
134
|
+
| Tool | Action | Result |
|
|
135
|
+
|--------|---------------------|---------------------------|
|
|
136
|
+
| GitHub | Close N issues | OK / FAILED: {reason} |
|
|
137
|
+
| JIRA | Transition N issues | OK / SKIPPED |
|
|
138
|
+
| ADO | Close N work items | OK / SKIPPED |
|
|
139
|
+
```
|
|
140
|
+
If any operation failed, display: "Run `/sw:progress-sync` to retry."
|
|
141
|
+
|
|
122
142
|
### Step 10: Sync Living Docs (MANDATORY)
|
|
123
143
|
|
|
124
144
|
Execute: `Skill({ skill: "sw:sync-docs" })` with "review" mode. Do NOT just mention it -- actually invoke it.
|