@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.
Files changed (38) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/docs/NETLIFY_DEPLOYMENT.md +125 -0
  3. package/docs/product/PRD.md +4 -2
  4. package/docs/release-notes/RELEASE_NOTES.md +32 -0
  5. package/docs/web-dashboard.md +12 -0
  6. package/package.json +1 -1
  7. package/server.json +13 -3
  8. package/tests/build.test.js +30 -0
  9. package/tests/mcpRegistry.test.js +13 -3
  10. package/web/app/api/history/route.ts +10 -17
  11. package/web/app/api/summary/route.ts +11 -13
  12. package/web/app/api/version/route.ts +4 -11
  13. package/web/netlify.toml +6 -0
  14. package/web/next.config.ts +1 -2
  15. package/web/package-lock.json +17 -428
  16. package/web/package.json +0 -1
  17. package/web-legacy/public/assets/android-chrome-192x192.png +0 -0
  18. package/web-legacy/public/assets/android-chrome-512x512.png +0 -0
  19. package/web-legacy/public/assets/apple-touch-icon.png +0 -0
  20. package/web-legacy/public/assets/favicon-16x16.png +0 -0
  21. package/web-legacy/public/assets/favicon-32x32.png +0 -0
  22. package/web-legacy/public/assets/favicon.ico +0 -0
  23. package/web-legacy/public/assets/favicon.png +0 -0
  24. package/web-legacy/public/assets/logo.png +0 -0
  25. package/web-legacy/public/assets/og-preview.png +0 -0
  26. package/web-legacy/public/assets/site.webmanifest +0 -1
  27. package/web-legacy/public/docs/EXAMPLES.html +0 -496
  28. package/web-legacy/public/docs/GETTING-STARTED.html +0 -318
  29. package/web-legacy/public/docs/README.html +0 -620
  30. package/web-legacy/public/docs/RELEASE_NOTES.html +0 -275
  31. package/web-legacy/public/docs/TROUBLESHOOTING.html +0 -627
  32. package/web-legacy/public/docs/WORKFLOW-TEMPLATES.html +0 -676
  33. package/web-legacy/public/docs/web-dashboard.html +0 -243
  34. package/web-legacy/public/index.html +0 -223
  35. package/web-legacy/public/input.css +0 -80
  36. package/web-legacy/public/main.js +0 -167
  37. package/web-legacy/public/output.css +0 -1559
  38. 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)
@@ -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 (in progress).
55
- 3. **Future**: Expanded dashboard analytics, customizable workflows, richer integrations.
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
 
@@ -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.4.6",
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-07-09/server.schema.json",
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
- "registry_type": "npm",
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
  }
@@ -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.registry_type,
39
+ npmPkg.registryType,
41
40
  "npm",
42
- "First server.json package entry should use npm registry_type",
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 { NextRequest, NextResponse } from "next/server";
2
- import { getHistoryForUser } from "@/lib/db";
1
+ import { NextResponse } from "next/server";
3
2
 
4
- export async function GET(request: NextRequest) {
5
- const searchParams = request.nextUrl.searchParams;
6
- const userId = searchParams.get("user") || "default";
7
- const page = Number(searchParams.get("page") || "1");
8
- const pageSize = Number(searchParams.get("pageSize") || "20");
9
- const startDate = searchParams.get("startDate") || undefined;
10
- const endDate = searchParams.get("endDate") || undefined;
11
-
12
- try {
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 { NextRequest, NextResponse } from "next/server";
2
- import { getSummaryForUser } from "@/lib/db";
1
+ import { NextResponse } from "next/server";
3
2
 
4
- export async function GET(request: NextRequest) {
5
- const searchParams = request.nextUrl.searchParams;
6
- const userId = searchParams.get("user") || "default";
7
-
8
- try {
9
- const summary = getSummaryForUser(userId);
10
- return NextResponse.json({ summary });
11
- } catch (error) {
12
- console.error("Error fetching summary:", error);
13
- return NextResponse.json({ error: "Failed to fetch summary" }, { status: 500 });
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
- import { readFile } from "fs/promises";
3
- import { join } from "path";
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
- try {
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
  }
@@ -0,0 +1,6 @@
1
+ [build]
2
+ command = "npm run build"
3
+ publish = ".next"
4
+
5
+ [[plugins]]
6
+ package = "@netlify/plugin-nextjs"
@@ -1,8 +1,7 @@
1
1
  import type { NextConfig } from "next";
2
- import path from "path";
3
2
 
4
3
  const nextConfig: NextConfig = {
5
- outputFileTracingRoot: path.resolve(process.cwd(), '..'),
4
+ // Netlify handles the build output automatically
6
5
  };
7
6
 
8
7
  export default nextConfig;