@programinglive/dev-workflow-mcp-server 1.8.1 → 1.9.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 (106) hide show
  1. package/.env.example +21 -1
  2. package/AGENTS.md +25 -0
  3. package/README.md +257 -672
  4. package/index.js +5 -4
  5. package/package.json +11 -6
  6. package/scripts/bootstrap-unix.sh +55 -0
  7. package/scripts/bootstrap-windows.ps1 +75 -0
  8. package/scripts/install-husky.js +43 -0
  9. package/scripts/setup-stack.js +436 -0
  10. package/tools/definitions.js +19 -0
  11. package/tools/handler-modules/commit-handlers.js +2 -1
  12. package/tools/handler-modules/index.js +13 -7
  13. package/tools/handler-modules/shared.js +7 -41
  14. package/tools/handler-modules/status-handlers.js +3 -1
  15. package/tools/handler-modules/workflow-handlers.js +26 -8
  16. package/workflow-state.js +10 -0
  17. package/.agent/workflows/dev-workflow-bugfix.md +0 -250
  18. package/.agent/workflows/dev-workflow-feature.md +0 -201
  19. package/.agent/workflows/dev-workflow-full-cycle.md +0 -400
  20. package/.agent/workflows/dev-workflow-refactor.md +0 -238
  21. package/.env.production +0 -16
  22. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
  23. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -25
  24. package/.github/pull_request_template.md +0 -22
  25. package/.github/workflows/github-release.yml +0 -131
  26. package/.husky/commit-msg +0 -3
  27. package/.husky/pre-commit +0 -2
  28. package/CHANGELOG.md +0 -1145
  29. package/docs/GCP_DEPLOYMENT.md +0 -298
  30. package/docs/NETLIFY_DEPLOYMENT.md +0 -125
  31. package/docs/PLESK_DEPLOYMENT.md +0 -170
  32. package/docs/PRD.md +0 -86
  33. package/docs/WORKFLOW-BEST-PRACTICES.md +0 -58
  34. package/docs/antigravity/EXAMPLES.md +0 -535
  35. package/docs/antigravity/GETTING-STARTED.md +0 -292
  36. package/docs/antigravity/TROUBLESHOOTING.md +0 -742
  37. package/docs/antigravity/WALKTHROUGH.md +0 -25
  38. package/docs/antigravity/WORKFLOW-TEMPLATES.md +0 -670
  39. package/docs/release-notes/RELEASE_NOTES.md +0 -524
  40. package/docs/web-dashboard.md +0 -175
  41. package/tailwind.config.js +0 -8
  42. package/tests/build.test.js +0 -74
  43. package/tests/db-adapters.test.js +0 -108
  44. package/tests/env-support.test.js +0 -46
  45. package/tests/exec.test.js +0 -35
  46. package/tests/handlers-commit.test.js +0 -174
  47. package/tests/handlers-release.test.js +0 -212
  48. package/tests/handlers-workflow.test.js +0 -68
  49. package/tests/handlers.test.js +0 -1142
  50. package/tests/hello-world.test.js +0 -13
  51. package/tests/mcpRegistry.test.js +0 -65
  52. package/tests/patch-release.test.js +0 -7
  53. package/tests/release-wrapper.test.js +0 -107
  54. package/tests/startup-resilience.test.js +0 -73
  55. package/tests/test-helpers.js +0 -50
  56. package/tests/workflowState.test.js +0 -520
  57. package/web/Dockerfile.api +0 -25
  58. package/web/README.md +0 -133
  59. package/web/__tests__/api/workflow-history.test.js +0 -63
  60. package/web/api-server.js +0 -211
  61. package/web/app/docs/page.tsx +0 -202
  62. package/web/app/favicon.ico +0 -0
  63. package/web/app/globals.css +0 -91
  64. package/web/app/history/page.tsx +0 -220
  65. package/web/app/layout.tsx +0 -39
  66. package/web/app/login/page.tsx +0 -142
  67. package/web/app/page.tsx +0 -13
  68. package/web/components/ApiReference.tsx +0 -20
  69. package/web/components/Features.tsx +0 -61
  70. package/web/components/Footer.tsx +0 -9
  71. package/web/components/Hero.tsx +0 -96
  72. package/web/components/History.tsx +0 -175
  73. package/web/components/Navbar.tsx +0 -208
  74. package/web/components/Terminal.tsx +0 -114
  75. package/web/components/ThemeProvider.tsx +0 -58
  76. package/web/eslint.config.mjs +0 -18
  77. package/web/lib/api-client.ts +0 -123
  78. package/web/lib/auth.js +0 -75
  79. package/web/lib/db.js +0 -131
  80. package/web/lib/docs.js +0 -73
  81. package/web/middleware/auth.js +0 -26
  82. package/web/netlify.toml +0 -8
  83. package/web/next.config.ts +0 -19
  84. package/web/package-lock.json +0 -10911
  85. package/web/package.json +0 -42
  86. package/web/postcss.config.mjs +0 -9
  87. package/web/public/assets/android-chrome-192x192.png +0 -0
  88. package/web/public/assets/android-chrome-512x512.png +0 -0
  89. package/web/public/assets/apple-touch-icon.png +0 -0
  90. package/web/public/assets/favicon-16x16.png +0 -0
  91. package/web/public/assets/favicon-32x32.png +0 -0
  92. package/web/public/assets/favicon.ico +0 -0
  93. package/web/public/assets/favicon.png +0 -0
  94. package/web/public/assets/logo.png +0 -0
  95. package/web/public/assets/og-preview.png +0 -0
  96. package/web/public/assets/site.webmanifest +0 -1
  97. package/web/public/file.svg +0 -1
  98. package/web/public/globe.svg +0 -1
  99. package/web/public/next.svg +0 -1
  100. package/web/public/vercel.svg +0 -1
  101. package/web/public/window.svg +0 -1
  102. package/web/scripts/db-query-history.js +0 -120
  103. package/web/scripts/smoke-test.js +0 -30
  104. package/web/server.js +0 -184
  105. package/web/tailwind.config.ts +0 -20
  106. package/web/tsconfig.json +0 -42
@@ -1,298 +0,0 @@
1
- # Deploying to Google Cloud Platform with Docker
2
-
3
- This guide walks you through deploying the dev-workflow MCP server to Google Cloud Compute Engine using Docker and PostgreSQL.
4
-
5
- ## Prerequisites
6
-
7
- - Google Cloud Platform account with a Compute Engine instance running
8
- - SSH access to your GCP instance
9
- - Git installed locally and on GCP instance
10
- - Basic familiarity with Docker and SSH
11
-
12
- ## Architecture Overview
13
-
14
- The deployment consists of two Docker containers:
15
- - **MCP Server**: Node.js application running the dev-workflow MCP server
16
- - **PostgreSQL**: Database for persistent workflow state storage
17
-
18
- Communication between your local MCP client and the cloud server happens via SSH tunneling.
19
-
20
- ## Step 1: Prepare Your GCP Instance
21
-
22
- ### 1.1 SSH into Your Instance
23
-
24
- ```bash
25
- ssh your-username@YOUR_GCP_IP
26
- ```
27
-
28
- ### 1.2 Run the Setup Script
29
-
30
- From your local machine, copy the setup script to your GCP instance:
31
-
32
- ```bash
33
- scp scripts/setup-gcp-instance.sh your-username@YOUR_GCP_IP:~/
34
- ssh your-username@YOUR_GCP_IP 'bash ~/setup-gcp-instance.sh'
35
- ```
36
-
37
- This script will:
38
- - Install Docker and Docker Compose
39
- - Install Git
40
- - Create the application directory
41
-
42
- **Note**: You may need to log out and back in for Docker group permissions to take effect.
43
-
44
- ## Step 2: Deploy the Application
45
-
46
- ### 2.1 Clone the Repository
47
-
48
- On your GCP instance:
49
-
50
- ```bash
51
- cd ~/dev-workflow-mcp-server
52
- git clone https://github.com/programinglive/dev-workflow-mcp-server.git .
53
- ```
54
-
55
- ### 2.2 Configure Environment Variables
56
-
57
- Create a `.env` file from the production template:
58
-
59
- ```bash
60
- cp .env.production .env
61
- nano .env
62
- ```
63
-
64
- Update the following values:
65
- - `POSTGRES_PASSWORD`: Set a strong, unique password
66
- - `DEV_WORKFLOW_DB_URL`: Update with the same password
67
- - `DEV_WORKFLOW_USER_ID`: (Optional) Set your username
68
-
69
- Example `.env`:
70
- ```bash
71
- DEV_WORKFLOW_DB_TYPE=postgres
72
- DEV_WORKFLOW_DB_URL=postgres://devworkflow:MySecureP@ssw0rd@postgres:5432/devworkflow
73
- POSTGRES_PASSWORD=MySecureP@ssw0rd
74
- DEV_WORKFLOW_USER_ID=dhika
75
- NODE_ENV=production
76
- ```
77
-
78
- ### 2.3 Start the Containers
79
-
80
- ```bash
81
- docker-compose up -d
82
- ```
83
-
84
- ### 2.4 Verify Deployment
85
-
86
- Check that both containers are running:
87
-
88
- ```bash
89
- docker-compose ps
90
- ```
91
-
92
- You should see:
93
- ```
94
- NAME STATUS
95
- dev-workflow-mcp Up
96
- dev-workflow-postgres Up (healthy)
97
- ```
98
-
99
- View logs:
100
- ```bash
101
- docker-compose logs -f mcp-server
102
- ```
103
-
104
- ## Step 3: Configure Local MCP Client
105
-
106
- Update your local MCP client configuration to connect via SSH.
107
-
108
- ### Windows (Claude Desktop)
109
-
110
- Edit `C:\Users\DHIKA\.gemini\antigravity\mcp_config.json`:
111
-
112
- ```json
113
- {
114
- "mcpServers": {
115
- "dev-workflow": {
116
- "command": "ssh",
117
- "args": [
118
- "-i", "C:\\Users\\DHIKA\\.ssh\\id_rsa",
119
- "your-username@34.50.121.142",
120
- "docker", "exec", "-i", "dev-workflow-mcp", "node", "/app/index.js"
121
- ]
122
- }
123
- }
124
- }
125
- ```
126
-
127
- ### Linux/Mac
128
-
129
- Edit your MCP config file:
130
-
131
- ```json
132
- {
133
- "mcpServers": {
134
- "dev-workflow": {
135
- "command": "ssh",
136
- "args": [
137
- "-i", "/home/user/.ssh/id_rsa",
138
- "your-username@34.50.121.142",
139
- "docker", "exec", "-i", "dev-workflow-mcp", "node", "/app/index.js"
140
- ]
141
- }
142
- }
143
- }
144
- ```
145
-
146
- **Important**: Replace:
147
- - `your-username` with your actual GCP username
148
- - `34.50.121.142` with your actual GCP external IP
149
- - SSH key path with your actual key location
150
-
151
- ## Step 4: Test the Connection
152
-
153
- ### 4.1 Test SSH Connection
154
-
155
- From your local machine:
156
-
157
- ```bash
158
- ssh your-username@34.50.121.142 'docker exec -i dev-workflow-mcp node /app/index.js call get_workflow_status'
159
- ```
160
-
161
- You should see the workflow status output.
162
-
163
- ### 4.2 Test via MCP Client
164
-
165
- Restart your MCP client (e.g., Claude Desktop) and try using a dev-workflow command like `start_task`.
166
-
167
- ## Updating the Deployment
168
-
169
- ### Automated Deployment
170
-
171
- Use the deployment script from your local machine:
172
-
173
- ```bash
174
- # Set environment variables
175
- export GCP_USER=your-username
176
- export GCP_HOST=34.50.121.142
177
- export GCP_SSH_KEY=~/.ssh/id_rsa
178
-
179
- # Run deployment
180
- bash scripts/deploy-gcp.sh
181
- ```
182
-
183
- ### Manual Update
184
-
185
- On your GCP instance:
186
-
187
- ```bash
188
- cd ~/dev-workflow-mcp-server
189
- git pull origin main
190
- docker-compose down
191
- docker-compose build --no-cache
192
- docker-compose up -d
193
- ```
194
-
195
- ## Database Management
196
-
197
- ### Backup Database
198
-
199
- ```bash
200
- docker exec dev-workflow-postgres pg_dump -U devworkflow devworkflow > backup.sql
201
- ```
202
-
203
- ### Restore Database
204
-
205
- ```bash
206
- cat backup.sql | docker exec -i dev-workflow-postgres psql -U devworkflow devworkflow
207
- ```
208
-
209
- ### Access PostgreSQL Console
210
-
211
- ```bash
212
- docker exec -it dev-workflow-postgres psql -U devworkflow devworkflow
213
- ```
214
-
215
- Common commands:
216
- - `\dt` - List tables
217
- - `\d table_name` - Describe table
218
- - `SELECT * FROM workflow_state;` - View workflow data
219
-
220
- ## Troubleshooting
221
-
222
- ### Container Won't Start
223
-
224
- Check logs:
225
- ```bash
226
- docker-compose logs mcp-server
227
- docker-compose logs postgres
228
- ```
229
-
230
- ### Database Connection Issues
231
-
232
- Verify PostgreSQL is healthy:
233
- ```bash
234
- docker-compose ps
235
- docker exec dev-workflow-postgres pg_isready -U devworkflow
236
- ```
237
-
238
- ### SSH Connection Fails
239
-
240
- Test basic SSH:
241
- ```bash
242
- ssh -v your-username@YOUR_GCP_IP
243
- ```
244
-
245
- Check SSH key permissions:
246
- ```bash
247
- chmod 600 ~/.ssh/id_rsa
248
- ```
249
-
250
- ### MCP Client Can't Connect
251
-
252
- 1. Verify SSH works: `ssh your-username@YOUR_GCP_IP 'echo test'`
253
- 2. Test Docker exec: `ssh your-username@YOUR_GCP_IP 'docker ps'`
254
- 3. Check MCP server: `ssh your-username@YOUR_GCP_IP 'docker logs dev-workflow-mcp'`
255
-
256
- ## Security Best Practices
257
-
258
- 1. **Change Default Passwords**: Always use strong, unique passwords in `.env`
259
- 2. **Firewall Configuration**: Only expose necessary ports (SSH port 22)
260
- 3. **SSH Key Authentication**: Disable password authentication, use SSH keys only
261
- 4. **Regular Updates**: Keep Docker images and system packages updated
262
- 5. **Backup Regularly**: Schedule automated database backups
263
-
264
- ## Performance Optimization
265
-
266
- ### Monitor Resource Usage
267
-
268
- ```bash
269
- docker stats
270
- ```
271
-
272
- ### Increase PostgreSQL Performance
273
-
274
- Edit `docker-compose.yml` to add PostgreSQL tuning:
275
-
276
- ```yaml
277
- postgres:
278
- environment:
279
- POSTGRES_SHARED_BUFFERS: 256MB
280
- POSTGRES_EFFECTIVE_CACHE_SIZE: 1GB
281
- ```
282
-
283
- ## Uninstalling
284
-
285
- To completely remove the deployment:
286
-
287
- ```bash
288
- cd ~/dev-workflow-mcp-server
289
- docker-compose down -v # -v removes volumes (deletes data!)
290
- cd ~
291
- rm -rf dev-workflow-mcp-server
292
- ```
293
-
294
- ## Support
295
-
296
- For issues or questions:
297
- - GitHub Issues: https://github.com/programinglive/dev-workflow-mcp-server/issues
298
- - Documentation: https://devworkflow.programinglive.com/
@@ -1,125 +0,0 @@
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)
@@ -1,170 +0,0 @@
1
- # Deploying dev-workflow-mcp-server to Plesk
2
-
3
- This guide covers deploying the dev-workflow MCP server (Node.js backend + Next.js frontend) to Plesk hosting.
4
-
5
- ## Prerequisites
6
-
7
- - Plesk control panel access
8
- - Node.js 18+ installed on the server
9
- - Git installed on the server
10
- - Domain/subdomain configured in Plesk
11
-
12
- ## Deployment Steps
13
-
14
- ### 1. Set Up Node.js Application in Plesk
15
-
16
- 1. Log in to Plesk control panel
17
- 2. Go to **Domains** → Select your domain
18
- 3. Click **Node.js** (or **Applications** if using newer Plesk)
19
- 4. Click **Add Application**
20
- 5. Configure:
21
- - **Application root**: `/var/www/vhosts/yourdomain.com/dev-workflow-mcp-server` (or your path)
22
- - **Startup file**: `index.js`
23
- - **Node.js version**: 18.x or higher
24
- - **Port**: Leave as auto (Plesk assigns a port)
25
-
26
- ### 2. Clone Repository
27
-
28
- SSH into your Plesk server:
29
-
30
- ```bash
31
- cd /var/www/vhosts/yourdomain.com
32
- git clone https://github.com/programinglive/dev-workflow-mcp-server.git
33
- cd dev-workflow-mcp-server
34
- ```
35
-
36
- ### 3. Install Dependencies
37
-
38
- ```bash
39
- npm install
40
- ```
41
-
42
- ### 4. Build the Application
43
-
44
- ```bash
45
- npm run build
46
- ```
47
-
48
- This builds:
49
- - **Backend**: Vite bundle → `dist/index.mjs`
50
- - **Frontend**: Next.js static + server → `web/.next/`
51
- - **Docs**: HTML files → `dist/docs/`
52
-
53
- ### 5. Configure Environment (if needed)
54
-
55
- Create `.env` file in the project root if you need custom settings:
56
-
57
- ```bash
58
- # Example (adjust as needed)
59
- NODE_ENV=production
60
- PORT=3000
61
- ```
62
-
63
- ### 6. Start the Application
64
-
65
- In Plesk:
66
- 1. Go back to **Node.js Applications**
67
- 2. Find your application
68
- 3. Click **Start** (or it may auto-start)
69
-
70
- Alternatively, via SSH:
71
-
72
- ```bash
73
- npm start
74
- ```
75
-
76
- ### 7. Configure Reverse Proxy (Plesk)
77
-
78
- Plesk automatically sets up a reverse proxy. Verify:
79
- 1. Go to **Domains** → Your domain → **Web Server Settings**
80
- 2. Ensure **Proxy** is enabled
81
- 3. Verify the proxy points to the Node.js app port
82
-
83
- ### 8. Verify Deployment
84
-
85
- - Visit `https://yourdomain.com` → Should see the Next.js frontend
86
- - Visit `https://yourdomain.com/docs` → Should see documentation
87
- - Check browser console for any `_next/static` 500 errors
88
-
89
- If you see 500 errors on `_next/static` requests:
90
- - SSH to server and check logs: `tail -f /var/log/plesk/nodejs/yourdomain.com.log`
91
- - Ensure `.next` directory exists: `ls -la web/.next/`
92
- - Verify Node.js is running: `ps aux | grep node`
93
-
94
- ### 9. Set Up Auto-Restart (Optional)
95
-
96
- In Plesk, the Node.js app should auto-restart on failure. To verify:
97
- 1. Go to **Node.js Applications**
98
- 2. Check **Restart policy** is set to auto-restart
99
-
100
- ### 10. Enable HTTPS (Recommended)
101
-
102
- 1. Go to **Domains** → Your domain → **SSL/TLS Certificates**
103
- 2. Click **Install** (use Let's Encrypt free certificate)
104
- 3. Plesk auto-redirects HTTP → HTTPS
105
-
106
- ## Troubleshooting
107
-
108
- ### `_next/static` returns 500
109
-
110
- **Cause**: Next.js build output not deployed or server crashed.
111
-
112
- **Fix**:
113
- ```bash
114
- # SSH to server
115
- npm run build --prefix web
116
- npm start
117
- # Check logs
118
- tail -f /var/log/plesk/nodejs/yourdomain.com.log
119
- ```
120
-
121
- ### Application won't start
122
-
123
- **Check**:
124
- 1. Node.js version: `node --version` (must be 18+)
125
- 2. Dependencies: `npm install`
126
- 3. Build output: `ls -la dist/` and `ls -la web/.next/`
127
- 4. Logs: Check Plesk control panel logs
128
-
129
- ### Port conflicts
130
-
131
- Plesk assigns ports automatically. If you get a port conflict:
132
- 1. Go to **Node.js Applications** → Edit
133
- 2. Let Plesk auto-assign a new port
134
- 3. Restart the app
135
-
136
- ## Updating the Application
137
-
138
- To deploy a new version:
139
-
140
- ```bash
141
- cd /var/www/vhosts/yourdomain.com/dev-workflow-mcp-server
142
- git pull origin main
143
- npm install
144
- npm run build
145
- # Plesk will auto-restart the app
146
- ```
147
-
148
- Or manually restart in Plesk control panel:
149
- 1. **Node.js Applications** → Select app → **Restart**
150
-
151
- ## Production Checklist
152
-
153
- - [ ] Node.js 18+ installed
154
- - [ ] `npm install` completed
155
- - [ ] `npm run build` succeeded (no errors)
156
- - [ ] `.next` directory exists with static files
157
- - [ ] HTTPS/SSL certificate installed
158
- - [ ] Reverse proxy configured
159
- - [ ] Application started and running
160
- - [ ] `https://yourdomain.com` loads without 500 errors
161
- - [ ] `_next/static` assets load correctly
162
- - [ ] Logs show no errors
163
-
164
- ## Support
165
-
166
- For issues:
167
- 1. Check Plesk logs: `/var/log/plesk/nodejs/`
168
- 2. SSH and run `npm start` manually to see real-time errors
169
- 3. Verify Node.js and npm versions
170
- 4. Ensure all dependencies installed: `npm install`
package/docs/PRD.md DELETED
@@ -1,86 +0,0 @@
1
- # Product Requirements Document (PRD)
2
-
3
- ## 1. Overview
4
- - **Product**: Development Workflow MCP Server
5
- - **Prepared by**: Cascade (AI assistant)
6
- - **Date**: 2025-12-27
7
- - **Status**: Live v1.8.0
8
-
9
- ## 2. Problem Statement
10
- Developers need structured guidance to maintain disciplined workflows across projects. Existing tooling lacks enforcement of sequential best practices (testing, documentation, release hygiene) and offers limited visibility into historical task execution.
11
-
12
- ## 3. Goals & Objectives
13
- 1. Enforce a consistent, auditable development workflow across teams.
14
- 2. Provide actionable guidance for each workflow phase within IDE-integrated environments.
15
- 3. Maintain per-project, per-user workflow state while supporting shared infrastructure (e.g., SQLite summaries, dashboard).
16
- 4. **Support flexible data persistence**: Enable usage of various database backends (MySQL, PostgreSQL, SQLite) to adapt to different hosting and enterprise environments.
17
-
18
- ## 4. Non-Goals
19
- - Replacing full-featured project management tools.
20
- - Implementing source control hosting or CI/CD pipelines.
21
- - Providing opinionated task estimation or prioritization features.
22
-
23
- ## 5. Target Users & Personas
24
- - **Individual developers** seeking workflow discipline.
25
- - **Team leads** requiring enforced process compliance.
26
- - **Tool integrators** embedding MCP capabilities into IDEs or agents.
27
-
28
- ## 6. User Stories
29
- 1. As a developer, I want to be guided through the workflow steps so I can avoid skipping critical tasks.
30
- 2. As a team lead, I want an auditable history of workflow completion so I can ensure compliance.
31
- 3. As an integrator, I want a simple API (tools/prompts) so I can plug the MCP server into existing agent workflows.
32
- 4. As a devops engineer, I want to configure the server to use my existing database infrastructure (MySQL/PostgreSQL) instead of local files.
33
-
34
- ## 7. Functional Requirements
35
- - Provide MCP tools covering the full workflow lifecycle (start task, fix, test, document, commit, release, complete).
36
- - Persist workflow state per project and per user, with compatibility handling for legacy locations.
37
- - Offer aggregated project summaries (JSON artifacts, Database sync, optional web dashboard).
38
- - Guard release commands to ensure prerequisites are satisfied.
39
- - Support `run_full_workflow` for scripted execution of all steps with validation.
40
- - Web dashboard displays version dynamically from `package.json` via `/api/version` endpoint to stay in sync after releases.
41
- - [x] **Consolidated CI/CD**: Unified release and publish workflows.
42
- - [x] **Multi-Database Support**: SQLite, MySQL, and PostgreSQL adapters implemented and verified.
43
- - [x] **Environment Configuration**: `.env` file support added.
44
- - [x] **Comprehensive Testing**: Automated tests for DB adapters and environment loading.
45
- - [x] **Modular Architecture**: Refactored handlers.js into focused handler modules for better maintainability.
46
- - [x] **Test Organization**: Split monolithic test file into focused test modules with shared utilities.
47
- - [x] **PRD Location**: Moved PRD.md to docs/ root for easier access.
48
- - **Multi-Database Support**: Abstract the storage layer to support:
49
- - SQLite (default/local)
50
- - MySQL
51
- - PostgreSQL
52
-
53
- ## 8. Technical Considerations
54
- - Node.js (ESM) codebase leveraging `@modelcontextprotocol/sdk`.
55
- - File-based state stored under `.state/users/<user>/workflow-state.json` with compatibility symlinks.
56
- - **Database Abstraction**: Implement an Adapter/Repository pattern or use an ORM (e.g., Knex, Prisma, Drizzle) to support multiple SQL dialects.
57
- - Vite build pipeline for distribution bundle; source usage recommended for MCP.
58
- - Windows compatibility requirements (Python, Build Tools for native modules).
59
- - **Deployment options**: Local development, Netlify (static), Plesk (full-featured).
60
-
61
- ## 9. Success Metrics
62
- - ≥90% of workflow operations executed via MCP tools (vs. manual overrides).
63
- - Reduction in release guard violations to <5% of attempts.
64
- - Positive qualitative feedback on guidance clarity from pilot teams.
65
- - Seamless switching between SQLite, MySQL, and PostgreSQL via configuration.
66
-
67
- ## 10. Milestones
68
- 1. **MVP**: Core workflow tools, state persistence, basic history (complete).
69
- 2. **Enhancements**: Improved project root detection, compatibility mirrors, `run_full_workflow` automation (complete).
70
- 3. **v1.5.0**: Netlify deployment support for static web dashboard (complete).
71
- 4. **v1.6.0+**: Dark/Light mode, UI Improvements (complete).
72
- 5. **Multi-Database Support**: Refactor storage layer to support MySQL and PostgreSQL (complete v1.7.1).
73
- 7. **v1.7.14 Performance & Resilience**: Implemented connection timeouts and optimized startup sequence for stdio clients (complete).
74
- 8. **v1.7.15 Schema Alignment**: Implemented Postgres/MySQL column normalization and automated integer User ID hashing for cross-dashboard compatibility (complete).
75
- 9. **Future**: Expanded dashboard analytics, customizable workflows, richer integrations.
76
-
77
- ## 11. Risks & Mitigations
78
- - **Risk**: Workflow feels overly prescriptive. **Mitigation**: Provide escape hatches (`force_complete_task`, `drop_task`) with audit trails.
79
- - **Risk**: State corruption due to concurrent access. **Mitigation**: File locking and defensive JSON parsing (existing code handles gracefully, but monitor).
80
- - **Risk**: Integration friction with IDE clients. **Mitigation**: Maintain detailed README instructions and example configurations.
81
- - **Risk**: Complicated setup for users not needing external DBs. **Mitigation**: Keep SQLite/File-system as the default zero-config option.
82
-
83
- ## 12. Open Questions
84
- - Should additional workflow phases (e.g., design review) be supported?
85
- - How should multi-branch workflows be represented in history summaries?
86
- - What telemetry or analytics are acceptable within privacy constraints?