@programinglive/dev-workflow-mcp-server 1.4.6 โ 1.5.1
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.
- package/CHANGELOG.md +114 -0
- package/docs/NETLIFY_DEPLOYMENT.md +125 -0
- package/docs/product/PRD.md +4 -2
- package/docs/release-notes/RELEASE_NOTES.md +32 -0
- package/docs/web-dashboard.md +12 -0
- package/package.json +1 -1
- package/server.json +13 -3
- package/tests/build.test.js +30 -0
- package/tests/mcpRegistry.test.js +13 -3
- package/web/app/api/history/route.ts +10 -17
- package/web/app/api/summary/route.ts +11 -13
- package/web/app/api/version/route.ts +4 -11
- package/web/netlify.toml +6 -0
- package/web/next.config.ts +1 -2
- package/web/package-lock.json +17 -428
- package/web/package.json +0 -1
- package/web-legacy/public/assets/android-chrome-192x192.png +0 -0
- package/web-legacy/public/assets/android-chrome-512x512.png +0 -0
- package/web-legacy/public/assets/apple-touch-icon.png +0 -0
- package/web-legacy/public/assets/favicon-16x16.png +0 -0
- package/web-legacy/public/assets/favicon-32x32.png +0 -0
- package/web-legacy/public/assets/favicon.ico +0 -0
- package/web-legacy/public/assets/favicon.png +0 -0
- package/web-legacy/public/assets/logo.png +0 -0
- package/web-legacy/public/assets/og-preview.png +0 -0
- package/web-legacy/public/assets/site.webmanifest +0 -1
- package/web-legacy/public/docs/EXAMPLES.html +0 -496
- package/web-legacy/public/docs/GETTING-STARTED.html +0 -318
- package/web-legacy/public/docs/README.html +0 -620
- package/web-legacy/public/docs/RELEASE_NOTES.html +0 -275
- package/web-legacy/public/docs/TROUBLESHOOTING.html +0 -627
- package/web-legacy/public/docs/WORKFLOW-TEMPLATES.html +0 -676
- package/web-legacy/public/docs/web-dashboard.html +0 -243
- package/web-legacy/public/index.html +0 -223
- package/web-legacy/public/input.css +0 -80
- package/web-legacy/public/main.js +0 -167
- package/web-legacy/public/output.css +0 -1559
- package/web-legacy/server.js +0 -207
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,120 @@
|
|
|
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.1](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.5.0...v1.5.1) (2025-12-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ๐๏ธ Build System
|
|
9
|
+
|
|
10
|
+
* add netlify.toml for static site deployment ([8667537](https://github.com/programinglive/dev-workflow-mcp-server/commit/8667537baf16889b830c46d3ffde5770589f868f))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### โจ Features
|
|
14
|
+
|
|
15
|
+
* add Netlify deployment support for web dashboard ([c05a791](https://github.com/programinglive/dev-workflow-mcp-server/commit/c05a791b3dac12d708e971061c48d3783733f985))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### ๐ Documentation
|
|
19
|
+
|
|
20
|
+
* update generated web-dashboard.html ([96d47a5](https://github.com/programinglive/dev-workflow-mcp-server/commit/96d47a52a658b105d4d094e18156a8cfc2d13854))
|
|
21
|
+
* update release notes for 1.5.0 ([d860460](https://github.com/programinglive/dev-workflow-mcp-server/commit/d860460826d179e94524807b1776f60854c1db4c))
|
|
22
|
+
|
|
23
|
+
## [1.5.0](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.6...v1.5.0) (2025-12-02)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### โป๏ธ Refactors
|
|
27
|
+
|
|
28
|
+
* **dashboard:** combine analytics charts and use local Chart.js ([86ed3f4](https://github.com/programinglive/dev-workflow-mcp-server/commit/86ed3f4a88570b2f580cb1408e459da681288254))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### โจ Features
|
|
32
|
+
|
|
33
|
+
* **dashboard:** implement random data generation for analytics chart ([17e2073](https://github.com/programinglive/dev-workflow-mcp-server/commit/17e20737b719392a2bd90cb1a6f4cc6084b54ab5))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### ๐ Bug Fixes
|
|
37
|
+
|
|
38
|
+
* **dashboard:** improve responsive layout for admin stats cards ([33d5b39](https://github.com/programinglive/dev-workflow-mcp-server/commit/33d5b3929ffda733d2328d1e9214c17c1e3d2b40))
|
|
39
|
+
* **dashboard:** improve responsive layout for admin stats cards ([530400d](https://github.com/programinglive/dev-workflow-mcp-server/commit/530400d6ce266d151c617b4b2c7ea56cb1b15042))
|
|
40
|
+
* move build dependencies to dependencies section ([701b07c](https://github.com/programinglive/dev-workflow-mcp-server/commit/701b07c91d31007bc63899a8ddd6350773d4704f))
|
|
41
|
+
* move dompdf to require and resolve debugbar production error ([e5d1cb6](https://github.com/programinglive/dev-workflow-mcp-server/commit/e5d1cb68f70f0980fbbd69f914b76bf0fb09af18))
|
|
42
|
+
* move vite to dependencies to ensure build works on production ([62fc4c0](https://github.com/programinglive/dev-workflow-mcp-server/commit/62fc4c0fecf3ef4cfce231a2663bc67d34668c25))
|
|
43
|
+
* resolve sentry permission issues ([c739f8e](https://github.com/programinglive/dev-workflow-mcp-server/commit/c739f8e2bc5b99d70d63dbc66cefc3fa3b187651))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### ๐งน Chores
|
|
47
|
+
|
|
48
|
+
* align MCP registry schema and docs ([e4e732d](https://github.com/programinglive/dev-workflow-mcp-server/commit/e4e732d6149a63ddf327ffb741f94d90103c903b))
|
|
49
|
+
* **release:** 1.4.10 ๐ ([74fa5c1](https://github.com/programinglive/dev-workflow-mcp-server/commit/74fa5c11e44bf9c3b29981314c4d13469691fab2))
|
|
50
|
+
* **release:** 1.4.11 ๐ ([28c7a62](https://github.com/programinglive/dev-workflow-mcp-server/commit/28c7a62422d247369ea6652d0bf31b874534a1e4))
|
|
51
|
+
* **release:** 1.4.7 ๐ ([ab4c218](https://github.com/programinglive/dev-workflow-mcp-server/commit/ab4c2184a4fe5e410f54d3723af247ecb0d06f28))
|
|
52
|
+
* **release:** 1.4.8 ๐ ([b60681b](https://github.com/programinglive/dev-workflow-mcp-server/commit/b60681b801be01919711302be38fb6e576f99a8b))
|
|
53
|
+
* **release:** 1.4.9 ๐ ([3f73564](https://github.com/programinglive/dev-workflow-mcp-server/commit/3f73564197068b6a055d36df560322150c0ba6b4))
|
|
54
|
+
* remove web-legacy ([5f0d29e](https://github.com/programinglive/dev-workflow-mcp-server/commit/5f0d29e087918e6891b7e41aa58e262c710d4a67))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### ๐ Documentation
|
|
58
|
+
|
|
59
|
+
* update release notes html for 1.4.11 ([e683ab6](https://github.com/programinglive/dev-workflow-mcp-server/commit/e683ab6b06bfd5bbcc2dbd6441c9d121bec74feb))
|
|
60
|
+
|
|
61
|
+
### [1.4.11](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.10...v1.4.11) (2025-12-01)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### ๐ Bug Fixes
|
|
65
|
+
|
|
66
|
+
* move vite to dependencies to ensure build works on production ([62fc4c0](https://github.com/programinglive/dev-workflow-mcp-server/commit/62fc4c0fecf3ef4cfce231a2663bc67d34668c25))
|
|
67
|
+
* resolve sentry permission issues ([c739f8e](https://github.com/programinglive/dev-workflow-mcp-server/commit/c739f8e2bc5b99d70d63dbc66cefc3fa3b187651))
|
|
68
|
+
|
|
69
|
+
### [1.4.10](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.9...v1.4.10) (2025-12-01)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### โจ Features
|
|
73
|
+
|
|
74
|
+
* **dashboard:** implement random data generation for analytics chart ([17e2073](https://github.com/programinglive/dev-workflow-mcp-server/commit/17e20737b719392a2bd90cb1a6f4cc6084b54ab5))
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### ๐ Bug Fixes
|
|
78
|
+
|
|
79
|
+
* move dompdf to require and resolve debugbar production error ([e5d1cb6](https://github.com/programinglive/dev-workflow-mcp-server/commit/e5d1cb68f70f0980fbbd69f914b76bf0fb09af18))
|
|
80
|
+
|
|
81
|
+
### [1.4.9](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.8...v1.4.9) (2025-11-30)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
### โป๏ธ Refactors
|
|
85
|
+
|
|
86
|
+
* **dashboard:** combine analytics charts and use local Chart.js ([86ed3f4](https://github.com/programinglive/dev-workflow-mcp-server/commit/86ed3f4a88570b2f580cb1408e459da681288254))
|
|
87
|
+
|
|
88
|
+
### [1.4.8](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.7...v1.4.8) (2025-11-30)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### ๐ Bug Fixes
|
|
92
|
+
|
|
93
|
+
* **dashboard:** improve responsive layout for admin stats cards ([33d5b39](https://github.com/programinglive/dev-workflow-mcp-server/commit/33d5b3929ffda733d2328d1e9214c17c1e3d2b40))
|
|
94
|
+
* **dashboard:** improve responsive layout for admin stats cards ([530400d](https://github.com/programinglive/dev-workflow-mcp-server/commit/530400d6ce266d151c617b4b2c7ea56cb1b15042))
|
|
95
|
+
|
|
96
|
+
### [1.4.7](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.3...v1.4.7) (2025-11-29)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
### โจ Features
|
|
100
|
+
|
|
101
|
+
* add core doc types (PRD/README/RELEASE_NOTES) and fix CI build ([8ed0567](https://github.com/programinglive/dev-workflow-mcp-server/commit/8ed0567e8de772b95de6fb744a936b07ed3e1c32))
|
|
102
|
+
* update hero text and meta description to emphasize Indonesian programmer community ([681547b](https://github.com/programinglive/dev-workflow-mcp-server/commit/681547b764b2fcf3a874cc637d9653c12bf62640))
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### ๐ Bug Fixes
|
|
106
|
+
|
|
107
|
+
* display dynamic version in web dashboard from /api/version ([69f561d](https://github.com/programinglive/dev-workflow-mcp-server/commit/69f561d369fa8347399fafe5dcdb3a2dbb485064))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
### ๐งน Chores
|
|
111
|
+
|
|
112
|
+
* add 1.4.3 release notes ([8b165f7](https://github.com/programinglive/dev-workflow-mcp-server/commit/8b165f7a8201f6b8484dce60f3f907cb195abb83))
|
|
113
|
+
* add MCP registry metadata (mcpName & server.json) ([66caea1](https://github.com/programinglive/dev-workflow-mcp-server/commit/66caea1d684473cfc916917faa42e16fc4ad9e14))
|
|
114
|
+
* align MCP registry schema and docs ([e4e732d](https://github.com/programinglive/dev-workflow-mcp-server/commit/e4e732d6149a63ddf327ffb741f94d90103c903b))
|
|
115
|
+
* **release:** 1.4.4 ๐ ([05a968f](https://github.com/programinglive/dev-workflow-mcp-server/commit/05a968fd08ca41e50d324893d993cb5117b2575c))
|
|
116
|
+
* **release:** 1.4.5 ๐ ([7e823b9](https://github.com/programinglive/dev-workflow-mcp-server/commit/7e823b993c04c5372b4c6acbdf58c713458e8881))
|
|
117
|
+
* **release:** 1.4.6 ๐ ([7e0b672](https://github.com/programinglive/dev-workflow-mcp-server/commit/7e0b67208756b2e6bb34f61ff0382022979b294e))
|
|
118
|
+
|
|
5
119
|
### [1.4.6](https://github.com/programinglive/dev-workflow-mcp-server/compare/v1.4.5...v1.4.6) (2025-11-27)
|
|
6
120
|
|
|
7
121
|
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Netlify Deployment Guide
|
|
2
|
+
|
|
3
|
+
Deploy the Dev Workflow web dashboard to Netlify for a public-facing documentation and demo site.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The web dashboard can be deployed to Netlify as a static Next.js application. This deployment mode provides:
|
|
8
|
+
|
|
9
|
+
- **Static documentation pages** - Full access to the `/docs` section
|
|
10
|
+
- **Demo interface** - Showcase the workflow features
|
|
11
|
+
- **API endpoints** - Serverless functions for version and npm download stats
|
|
12
|
+
|
|
13
|
+
> **Note:** Database features (history, summary) return placeholder data in this deployment mode. For full functionality with persistent data, use the [local development server](./web-dashboard.md) or [Plesk deployment](./PLESK_DEPLOYMENT.md).
|
|
14
|
+
|
|
15
|
+
## Live Site
|
|
16
|
+
|
|
17
|
+
The official deployment is available at:
|
|
18
|
+
- **Primary:** https://devworkflow.programinglive.com
|
|
19
|
+
- **Netlify:** https://devworkflow.netlify.app
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- Netlify account (free tier works)
|
|
24
|
+
- Node.js 18+ for local builds
|
|
25
|
+
- Git repository connected to Netlify (optional, for auto-deploy)
|
|
26
|
+
|
|
27
|
+
## Quick Deploy
|
|
28
|
+
|
|
29
|
+
### Option 1: Netlify CLI
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Install Netlify CLI
|
|
33
|
+
npm install -g netlify-cli
|
|
34
|
+
|
|
35
|
+
# Login to Netlify
|
|
36
|
+
netlify login
|
|
37
|
+
|
|
38
|
+
# Navigate to web directory
|
|
39
|
+
cd web
|
|
40
|
+
|
|
41
|
+
# Create new site and deploy
|
|
42
|
+
netlify sites:create --name your-site-name
|
|
43
|
+
netlify deploy --prod --build
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Option 2: Netlify Dashboard
|
|
47
|
+
|
|
48
|
+
1. Go to [app.netlify.com](https://app.netlify.com)
|
|
49
|
+
2. Click "Add new site" > "Import an existing project"
|
|
50
|
+
3. Connect your GitHub repository
|
|
51
|
+
4. Configure build settings:
|
|
52
|
+
- **Base directory:** `web`
|
|
53
|
+
- **Build command:** `npm run build`
|
|
54
|
+
- **Publish directory:** `.next`
|
|
55
|
+
5. Deploy
|
|
56
|
+
|
|
57
|
+
## Configuration
|
|
58
|
+
|
|
59
|
+
The `web/netlify.toml` file configures the build:
|
|
60
|
+
|
|
61
|
+
```toml
|
|
62
|
+
[build]
|
|
63
|
+
command = "npm run build"
|
|
64
|
+
publish = ".next"
|
|
65
|
+
|
|
66
|
+
[[plugins]]
|
|
67
|
+
package = "@netlify/plugin-nextjs"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Custom Domain Setup
|
|
71
|
+
|
|
72
|
+
1. Go to your site's **Domain management** in Netlify
|
|
73
|
+
2. Click **Add a domain**
|
|
74
|
+
3. Enter your subdomain (e.g., `devworkflow.yourdomain.com`)
|
|
75
|
+
4. Add a CNAME record in your DNS provider:
|
|
76
|
+
- **Host:** `devworkflow` (or your subdomain)
|
|
77
|
+
- **Value:** `your-site-name.netlify.app`
|
|
78
|
+
5. Click **Provision certificate** for HTTPS
|
|
79
|
+
|
|
80
|
+
## API Endpoints
|
|
81
|
+
|
|
82
|
+
The following API routes are available as Netlify Functions:
|
|
83
|
+
|
|
84
|
+
| Endpoint | Description |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| `/api/version` | Returns current package version |
|
|
87
|
+
| `/api/npm-downloads` | Returns monthly npm download count |
|
|
88
|
+
| `/api/summary` | Returns placeholder summary data |
|
|
89
|
+
| `/api/history` | Returns placeholder history data |
|
|
90
|
+
| `/api/docs` | Returns documentation content |
|
|
91
|
+
|
|
92
|
+
## Limitations
|
|
93
|
+
|
|
94
|
+
When deployed to Netlify (static mode):
|
|
95
|
+
|
|
96
|
+
- **No persistent database** - History and summary return empty/placeholder data
|
|
97
|
+
- **No real-time updates** - Data is static between deployments
|
|
98
|
+
- **Version is build-time** - Update `web/app/api/version/route.ts` before each release
|
|
99
|
+
|
|
100
|
+
## Updating the Deployment
|
|
101
|
+
|
|
102
|
+
### Manual Redeploy
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
cd web
|
|
106
|
+
netlify deploy --prod --build
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Auto-Deploy (Recommended)
|
|
110
|
+
|
|
111
|
+
Connect your GitHub repository to Netlify for automatic deployments on push to main branch.
|
|
112
|
+
|
|
113
|
+
## Troubleshooting
|
|
114
|
+
|
|
115
|
+
| Issue | Solution |
|
|
116
|
+
| --- | --- |
|
|
117
|
+
| 404 on custom domain | Provision SSL certificate in Netlify dashboard |
|
|
118
|
+
| Build fails | Ensure `web/package.json` has no native dependencies |
|
|
119
|
+
| Functions timeout | Netlify has 10s limit; optimize API routes |
|
|
120
|
+
|
|
121
|
+
## Related
|
|
122
|
+
|
|
123
|
+
- [Web Dashboard Guide](./web-dashboard.md)
|
|
124
|
+
- [Plesk Deployment](./PLESK_DEPLOYMENT.md)
|
|
125
|
+
- [Main README](../README.md)
|
package/docs/product/PRD.md
CHANGED
|
@@ -43,6 +43,7 @@ Developers need structured guidance to maintain disciplined workflows across pro
|
|
|
43
43
|
- Optional SQLite integration for history and summary caching.
|
|
44
44
|
- Vite build pipeline for distribution bundle; source usage recommended for MCP.
|
|
45
45
|
- Windows compatibility requirements (Python, Build Tools for native modules).
|
|
46
|
+
- **Deployment options**: Local development, Netlify (static), Plesk (full-featured).
|
|
46
47
|
|
|
47
48
|
## 9. Success Metrics
|
|
48
49
|
- โฅ90% of workflow operations executed via MCP tools (vs. manual overrides).
|
|
@@ -51,8 +52,9 @@ Developers need structured guidance to maintain disciplined workflows across pro
|
|
|
51
52
|
|
|
52
53
|
## 10. Milestones
|
|
53
54
|
1. **MVP**: Core workflow tools, state persistence, basic history (complete).
|
|
54
|
-
2. **Enhancements**: Improved project root detection, compatibility mirrors, `run_full_workflow` automation (
|
|
55
|
-
3. **
|
|
55
|
+
2. **Enhancements**: Improved project root detection, compatibility mirrors, `run_full_workflow` automation (complete).
|
|
56
|
+
3. **v1.5.0**: Netlify deployment support for static web dashboard (complete).
|
|
57
|
+
4. **Future**: Expanded dashboard analytics, customizable workflows, richer integrations.
|
|
56
58
|
|
|
57
59
|
## 11. Risks & Mitigations
|
|
58
60
|
- **Risk**: Workflow feels overly prescriptive. **Mitigation**: Provide escape hatches (`force_complete_task`, `drop_task`) with audit trails.
|
|
@@ -4,6 +4,38 @@ Authoritative history of user-visible changes for the Development Workflow MCP S
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 1.5.0 โ 2025-12-02
|
|
8
|
+
- See CHANGELOG for details.
|
|
9
|
+
|
|
10
|
+
## 1.4.11 โ 2025-12-01 โ ๐ Bug Fixes
|
|
11
|
+
- move vite to dependencies to ensure build works on production (62fc4c0)
|
|
12
|
+
- resolve sentry permission issues (c739f8e)
|
|
13
|
+
|
|
14
|
+
## 1.4.10 โ 2025-12-01 โ โจ Features
|
|
15
|
+
- **dashboard:** implement random data generation for analytics chart (17e2073)
|
|
16
|
+
- move dompdf to require and resolve debugbar production error (e5d1cb6)
|
|
17
|
+
|
|
18
|
+
## 1.4.9 โ 2025-11-30 โ โป๏ธ Refactors
|
|
19
|
+
- **dashboard:** combine analytics charts and use local Chart.js (86ed3f4)
|
|
20
|
+
|
|
21
|
+
## 1.4.8 โ 2025-11-30 โ ๐ Bug Fixes
|
|
22
|
+
- **dashboard:** improve responsive layout for admin stats cards (33d5b39)
|
|
23
|
+
- **dashboard:** improve responsive layout for admin stats cards (530400d)
|
|
24
|
+
|
|
25
|
+
## 1.4.7 โ 2025-11-29 โ โจ Features
|
|
26
|
+
- add core doc types (PRD/README/RELEASE_NOTES) and fix CI build (8ed0567)
|
|
27
|
+
- update hero text and meta description to emphasize Indonesian programmer community (681547b)
|
|
28
|
+
- display dynamic version in web dashboard from /api/version (69f561d)
|
|
29
|
+
- add 1.4.3 release notes (8b165f7)
|
|
30
|
+
- add MCP registry metadata (mcpName & server.json) (66caea1)
|
|
31
|
+
- align MCP registry schema and docs (e4e732d)
|
|
32
|
+
- **release:** 1.4.4 ๐ (05a968f)
|
|
33
|
+
- **release:** 1.4.5 ๐ (7e823b9)
|
|
34
|
+
- **release:** 1.4.6 ๐ (7e0b672)
|
|
35
|
+
|
|
36
|
+
## 1.4.6 โ 2025-11-27 โ ๐งน Chores
|
|
37
|
+
- add MCP registry metadata (mcpName & server.json) (66caea1)
|
|
38
|
+
|
|
7
39
|
## 1.4.5 โ 2025-11-27 โ ๐ Bug Fixes
|
|
8
40
|
- display dynamic version in web dashboard from /api/version (69f561d)
|
|
9
41
|
|
package/docs/web-dashboard.md
CHANGED
|
@@ -156,8 +156,20 @@ Returns an array of task counts grouped by period.
|
|
|
156
156
|
| Dashboard shows empty data | Confirm the MCP server has generated `.state/users/<user>/workflow-state.json` and that the chosen `user` matches. |
|
|
157
157
|
| Port already in use | Set `DEV_WORKFLOW_WEB_PORT` to a free port before running `npm run web`. |
|
|
158
158
|
|
|
159
|
+
## Deployment Options
|
|
160
|
+
|
|
161
|
+
The web dashboard can be deployed in multiple ways:
|
|
162
|
+
|
|
163
|
+
| Platform | Database Support | Best For |
|
|
164
|
+
| --- | --- | --- |
|
|
165
|
+
| Local (`npm run web`) | Full SQLite | Development and personal use |
|
|
166
|
+
| [Netlify](./NETLIFY_DEPLOYMENT.md) | Static only | Public documentation site |
|
|
167
|
+
| [Plesk](./PLESK_DEPLOYMENT.md) | Full SQLite | Self-hosted production |
|
|
168
|
+
|
|
159
169
|
## Related Topics
|
|
160
170
|
|
|
161
171
|
- [Main README](../README.md)
|
|
172
|
+
- [Netlify Deployment](./NETLIFY_DEPLOYMENT.md)
|
|
173
|
+
- [Plesk Deployment](./PLESK_DEPLOYMENT.md)
|
|
162
174
|
- [Workflow State Internals](./state.md) *(coming soon)*
|
|
163
175
|
- [CLI Tools](../README.md#๐ ๏ธ-available-tools)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@programinglive/dev-workflow-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
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",
|
package/server.json
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
|
|
3
3
|
"name": "io.github.programinglive/dev-workflow-mcp-server",
|
|
4
4
|
"description": "MCP server to enforce development workflow discipline",
|
|
5
|
+
"title": "Dev Workflow MCP Server",
|
|
6
|
+
"websiteUrl": "https://devworkflow.programinglive.com/",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/programinglive/dev-workflow-mcp-server",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
5
11
|
"version": "1.4.6",
|
|
6
12
|
"packages": [
|
|
7
13
|
{
|
|
8
|
-
"
|
|
14
|
+
"registryType": "npm",
|
|
15
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
9
16
|
"identifier": "@programinglive/dev-workflow-mcp-server",
|
|
10
|
-
"version": "1.4.6"
|
|
17
|
+
"version": "1.4.6",
|
|
18
|
+
"transport": {
|
|
19
|
+
"type": "stdio"
|
|
20
|
+
}
|
|
11
21
|
}
|
|
12
22
|
]
|
|
13
23
|
}
|
package/tests/build.test.js
CHANGED
|
@@ -59,3 +59,33 @@ test('Hero component fetches version dynamically', async () => {
|
|
|
59
59
|
assert(heroContent.includes('fetch("/api/version")'), 'Hero should fetch version from API');
|
|
60
60
|
assert(heroContent.includes('useState<string | null>(null)'), 'Hero should have version state');
|
|
61
61
|
});
|
|
62
|
+
|
|
63
|
+
test('Netlify deployment configuration exists', async () => {
|
|
64
|
+
const netlifyTomlPath = path.join(process.cwd(), 'web', 'netlify.toml');
|
|
65
|
+
await access(netlifyTomlPath);
|
|
66
|
+
|
|
67
|
+
const content = await readFile(netlifyTomlPath, 'utf-8');
|
|
68
|
+
assert(content.includes('[build]'), 'netlify.toml should have build section');
|
|
69
|
+
assert(content.includes('npm run build'), 'netlify.toml should have build command');
|
|
70
|
+
assert(content.includes('@netlify/plugin-nextjs'), 'netlify.toml should use Next.js plugin');
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test('Web package.json does not include better-sqlite3', async () => {
|
|
74
|
+
const webPackagePath = path.join(process.cwd(), 'web', 'package.json');
|
|
75
|
+
const content = await readFile(webPackagePath, 'utf-8');
|
|
76
|
+
const pkg = JSON.parse(content);
|
|
77
|
+
|
|
78
|
+
assert(!pkg.dependencies['better-sqlite3'], 'Web should not depend on better-sqlite3 for Netlify compatibility');
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test('API routes return static data for Netlify deployment', async () => {
|
|
82
|
+
const summaryRoutePath = path.join(process.cwd(), 'web', 'app', 'api', 'summary', 'route.ts');
|
|
83
|
+
const historyRoutePath = path.join(process.cwd(), 'web', 'app', 'api', 'history', 'route.ts');
|
|
84
|
+
|
|
85
|
+
const summaryContent = await readFile(summaryRoutePath, 'utf-8');
|
|
86
|
+
const historyContent = await readFile(historyRoutePath, 'utf-8');
|
|
87
|
+
|
|
88
|
+
// Verify no database imports
|
|
89
|
+
assert(!summaryContent.includes('from "@/lib/db"'), 'Summary route should not import from db');
|
|
90
|
+
assert(!historyContent.includes('from "@/lib/db"'), 'History route should not import from db');
|
|
91
|
+
});
|
|
@@ -29,7 +29,6 @@ test("server.json is configured for npm package deployment", async () => {
|
|
|
29
29
|
"io.github.programinglive/dev-workflow-mcp-server",
|
|
30
30
|
"server.json name should match the MCP server namespace",
|
|
31
31
|
);
|
|
32
|
-
|
|
33
32
|
assert.ok(Array.isArray(server.packages) && server.packages.length > 0,
|
|
34
33
|
"server.json should declare at least one package entry",
|
|
35
34
|
);
|
|
@@ -37,9 +36,15 @@ test("server.json is configured for npm package deployment", async () => {
|
|
|
37
36
|
const npmPkg = server.packages[0];
|
|
38
37
|
|
|
39
38
|
assert.strictEqual(
|
|
40
|
-
npmPkg.
|
|
39
|
+
npmPkg.registryType,
|
|
41
40
|
"npm",
|
|
42
|
-
"First server.json package entry should use npm
|
|
41
|
+
"First server.json package entry should use npm registryType",
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
assert.strictEqual(
|
|
45
|
+
npmPkg.registryBaseUrl,
|
|
46
|
+
"https://registry.npmjs.org",
|
|
47
|
+
"server.json npm registryBaseUrl should point at the public npm registry",
|
|
43
48
|
);
|
|
44
49
|
|
|
45
50
|
assert.strictEqual(
|
|
@@ -52,4 +57,9 @@ test("server.json is configured for npm package deployment", async () => {
|
|
|
52
57
|
typeof npmPkg.version === "string" && npmPkg.version.length > 0,
|
|
53
58
|
"server.json npm package version should be a non-empty string",
|
|
54
59
|
);
|
|
60
|
+
|
|
61
|
+
assert.ok(
|
|
62
|
+
npmPkg.transport && npmPkg.transport.type === "stdio",
|
|
63
|
+
"server.json npm package transport should be stdio",
|
|
64
|
+
);
|
|
55
65
|
});
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getHistoryForUser } from "@/lib/db";
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
3
2
|
|
|
4
|
-
export async function GET(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const history = getHistoryForUser(userId, { page, pageSize, startDate, endDate });
|
|
14
|
-
return NextResponse.json(history);
|
|
15
|
-
} catch (error) {
|
|
16
|
-
console.error("Error fetching history:", error);
|
|
17
|
-
return NextResponse.json({ error: "Failed to fetch history" }, { status: 500 });
|
|
18
|
-
}
|
|
3
|
+
export async function GET() {
|
|
4
|
+
// Return placeholder data - database integration not available in static deployment
|
|
5
|
+
return NextResponse.json({
|
|
6
|
+
data: [],
|
|
7
|
+
total: 0,
|
|
8
|
+
page: 1,
|
|
9
|
+
pageSize: 20,
|
|
10
|
+
totalPages: 1
|
|
11
|
+
});
|
|
19
12
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getSummaryForUser } from "@/lib/db";
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
3
2
|
|
|
4
|
-
export async function GET(
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
3
|
+
export async function GET() {
|
|
4
|
+
// Return placeholder data - database integration not available in static deployment
|
|
5
|
+
const summary = {
|
|
6
|
+
totalTasks: 0,
|
|
7
|
+
taskTypes: {},
|
|
8
|
+
lastActive: null,
|
|
9
|
+
recentTasks: [],
|
|
10
|
+
updatedAt: null,
|
|
11
|
+
};
|
|
12
|
+
return NextResponse.json({ summary });
|
|
15
13
|
}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import { NextResponse } from "next/server";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
// Version is updated during build/release process
|
|
4
|
+
const PACKAGE_VERSION = "1.5.1";
|
|
4
5
|
|
|
5
6
|
export async function GET() {
|
|
6
|
-
|
|
7
|
-
const packageJsonPath = join(process.cwd(), "..", "package.json");
|
|
8
|
-
const packageJson = await readFile(packageJsonPath, "utf-8");
|
|
9
|
-
const { version } = JSON.parse(packageJson);
|
|
10
|
-
return NextResponse.json({ version });
|
|
11
|
-
} catch (error) {
|
|
12
|
-
console.error("Error fetching version:", error);
|
|
13
|
-
return NextResponse.json({ error: "Failed to fetch version" }, { status: 500 });
|
|
14
|
-
}
|
|
7
|
+
return NextResponse.json({ version: PACKAGE_VERSION });
|
|
15
8
|
}
|
package/web/netlify.toml
ADDED
package/web/next.config.ts
CHANGED