@programinglive/dev-workflow-mcp-server 1.5.6 → 1.5.8

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.
@@ -20,6 +20,9 @@ jobs:
20
20
  steps:
21
21
  - name: Checkout repository
22
22
  uses: actions/checkout@v4
23
+ with:
24
+ ref: main
25
+ fetch-depth: 0
23
26
 
24
27
  - name: Setup Node.js
25
28
  uses: actions/setup-node@v4
@@ -46,7 +49,11 @@ jobs:
46
49
 
47
50
  - name: Generate release notes
48
51
  run: |
52
+ echo "Extracting release notes for version ${{ steps.version.outputs.version }}"
49
53
  node scripts/extract-release-notes.cjs "${{ steps.version.outputs.version }}" > release-notes.md
54
+ echo "--- Release notes content ---"
55
+ cat release-notes.md
56
+ echo "--- End of release notes ---"
50
57
 
51
58
  - name: Publish GitHub release
52
59
  uses: actions/github-script@v7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [1.5.8](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.5.7...v1.5.8) (2025-12-05)
6
+
7
+
8
+ ### 🐛 Bug Fixes
9
+
10
+ * **release:** amend tag to include release notes, remove build-docs.js and dist/docs ([a3cea9b](https://github.com/programinglive/dev-workflow-mcp-server/commit/a3cea9b612ee2d8f970bf7dd93bcbeef98ba0924))
11
+
12
+ ### [1.5.7](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.5.6...v1.5.7) (2025-12-05)
13
+
14
+
15
+ ### 🐛 Bug Fixes
16
+
17
+ * **ci:** checkout main branch for release notes and remove RELEASE_NOTES.html generation ([5d50dc0](https://github.com/programinglive/dev-workflow-mcp-server/commit/5d50dc0597f1a9a60dde00cde876f3324bee6062))
18
+
5
19
  ### [1.5.6](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.5.5...v1.5.6) (2025-12-05)
6
20
 
7
21
 
@@ -4,6 +4,15 @@ Authoritative history of user-visible changes for the Development Workflow MCP S
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 1.5.8 — 2025-12-05 — 🐛 Bug Fixes
8
+ - **release:** amend tag to include release notes, remove build-docs.js and dist/docs (a3cea9b)
9
+
10
+ ## 1.5.7 — 2025-12-05 — 🐛 Bug Fixes
11
+ - **ci:** checkout main branch for release notes and remove RELEASE_NOTES.html generation (5d50dc0)
12
+
13
+ ## 1.5.6 — 2025-12-05 — 🐛 Bug Fixes
14
+ - **ci:** update github release workflow to use github-script (0990808)
15
+
7
16
  ## 1.5.5 — 2025-12-05 — 📝 Documentation
8
17
  - add unreleased note for release automation (a5478dc)
9
18
  - ensure GitHub release workflow writes release notes correctly
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@programinglive/dev-workflow-mcp-server",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "MCP server to enforce development workflow discipline",
5
5
  "homepage": "https://devworkflow.programinglive.com/",
6
6
  "mcpName": "io.github.programinglive/dev-workflow-mcp-server",
@@ -14,7 +14,6 @@
14
14
  "build:server": "vite build",
15
15
  "build:web": "npm run build --prefix web",
16
16
  "watch:web": "npm run dev --prefix web",
17
- "postbuild": "node scripts/build-docs.js",
18
17
  "dev": "node --watch index.js",
19
18
  "start": "node index.js",
20
19
  "local": "node index.js",
@@ -185,6 +185,20 @@ function runRelease({
185
185
  const gitAddResult = spawnSync('git', ['add', releaseNotesPath], { stdio: 'inherit', cwd });
186
186
  if (!gitAddResult || typeof gitAddResult.status !== 'number' || gitAddResult.status !== 0) {
187
187
  console.warn('⚠️ Release notes updated but failed to stage. Please add manually: git add ' + releaseNotesPath);
188
+ } else {
189
+ // Amend the release commit to include release notes and move the tag
190
+ const pkg = loadPackageJson(cwd);
191
+ const version = pkg ? pkg.version : null;
192
+ if (version) {
193
+ const tagName = `v${version}`;
194
+ // Delete the old tag
195
+ spawnSync('git', ['tag', '-d', tagName], { stdio: 'inherit', cwd });
196
+ // Amend the commit to include release notes
197
+ spawnSync('git', ['commit', '--amend', '--no-edit'], { stdio: 'inherit', cwd });
198
+ // Recreate the tag on the amended commit
199
+ spawnSync('git', ['tag', tagName], { stdio: 'inherit', cwd });
200
+ console.log(`✅ Added release notes entry for version ${version}.`);
201
+ }
188
202
  }
189
203
  }
190
204
 
@@ -8,7 +8,7 @@ import path from 'path';
8
8
  const exec = promisify(execCallback);
9
9
 
10
10
  test('build generates dist/index.mjs file', async () => {
11
- const { stderr } = await exec('npm run build:server && npm run postbuild');
11
+ const { stderr } = await exec('npm run build:server');
12
12
  // Allow the known vite warning about node:process
13
13
  const knownWarning = '[plugin vite:resolve] Module "node:process" has been externalized for browser compatibility';
14
14
  const tailwindOutput = '≈ tailwindcss';
@@ -27,15 +27,6 @@ test('build generates dist/index.mjs file', async () => {
27
27
  const content = await readFile(distPath, 'utf-8');
28
28
  assert(content.includes('main'), 'Bundle should contain main function');
29
29
  assert(content.length > 1000, 'Bundle should be substantial');
30
-
31
- const docDir = path.join(process.cwd(), 'dist', 'docs');
32
- const docFiles = ['README.html', 'web-dashboard.html'];
33
- for (const file of docFiles) {
34
- const fullPath = path.join(docDir, file);
35
- await access(fullPath);
36
- const docContent = await readFile(fullPath, 'utf-8');
37
- assert(docContent.includes('<h1'), `${file} should contain HTML output`);
38
- }
39
30
  });
40
31
 
41
32
  test('build script exists in package.json', async () => {
@@ -1,63 +0,0 @@
1
- import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
- import path from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- import { marked } from 'marked';
5
-
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
- const projectRoot = path.join(__dirname, '..');
9
-
10
- const docs = [
11
- {
12
- key: 'README.md',
13
- source: path.join(projectRoot, 'README.md'),
14
- output: 'README.html',
15
- },
16
- {
17
- key: 'web-dashboard.md',
18
- source: path.join(projectRoot, 'docs', 'web-dashboard.md'),
19
- output: 'web-dashboard.html',
20
- },
21
- {
22
- key: 'GETTING-STARTED.md',
23
- source: path.join(projectRoot, 'docs', 'antigravity', 'GETTING-STARTED.md'),
24
- output: 'GETTING-STARTED.html',
25
- },
26
- {
27
- key: 'EXAMPLES.md',
28
- source: path.join(projectRoot, 'docs', 'antigravity', 'EXAMPLES.md'),
29
- output: 'EXAMPLES.html',
30
- },
31
- {
32
- key: 'WORKFLOW-TEMPLATES.md',
33
- source: path.join(projectRoot, 'docs', 'antigravity', 'WORKFLOW-TEMPLATES.md'),
34
- output: 'WORKFLOW-TEMPLATES.html',
35
- },
36
- {
37
- key: 'TROUBLESHOOTING.md',
38
- source: path.join(projectRoot, 'docs', 'antigravity', 'TROUBLESHOOTING.md'),
39
- output: 'TROUBLESHOOTING.html',
40
- },
41
- {
42
- key: 'RELEASE_NOTES.md',
43
- source: path.join(projectRoot, 'docs', 'release-notes', 'RELEASE_NOTES.md'),
44
- output: 'RELEASE_NOTES.html',
45
- },
46
- ];
47
-
48
- const distDocDir = path.join(projectRoot, 'dist', 'docs');
49
-
50
- async function buildDocs() {
51
- await mkdir(distDocDir, { recursive: true });
52
-
53
- for (const doc of docs) {
54
- const markdown = await readFile(doc.source, 'utf-8');
55
- const html = marked.parse(markdown);
56
- await writeFile(path.join(distDocDir, doc.output), html, 'utf-8');
57
- }
58
- }
59
-
60
- buildDocs().catch((error) => {
61
- console.error('Failed to build documentation assets:', error);
62
- process.exitCode = 1;
63
- });