memory-journal-mcp 3.1.5 → 4.1.0

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 (113) hide show
  1. package/.dockerignore +93 -59
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +20 -1
  3. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +24 -3
  5. package/.github/ISSUE_TEMPLATE/question.md +17 -2
  6. package/.github/dependabot.yml +52 -52
  7. package/.github/pull_request_template.md +28 -3
  8. package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +43 -2
  9. package/.github/workflows/codeql.yml +3 -3
  10. package/.github/workflows/dependabot-auto-merge.yml +1 -1
  11. package/.github/workflows/docker-publish.yml +233 -226
  12. package/.github/workflows/lint-and-test.yml +3 -3
  13. package/.github/workflows/publish-npm.yml +3 -3
  14. package/.github/workflows/secrets-scanning.yml +2 -2
  15. package/.github/workflows/security-update.yml +88 -75
  16. package/.prettierignore +21 -0
  17. package/.prettierrc +33 -0
  18. package/.vscode/settings.json +82 -0
  19. package/CHANGELOG.md +1 -0
  20. package/CODE_OF_CONDUCT.md +13 -12
  21. package/CONTRIBUTING.md +14 -6
  22. package/DOCKER_README.md +171 -121
  23. package/Dockerfile +38 -6
  24. package/README.md +174 -211
  25. package/SECURITY.md +22 -2
  26. package/VERSION +1 -1
  27. package/dist/cli.js +9 -1
  28. package/dist/cli.js.map +1 -1
  29. package/dist/constants/ServerInstructions.d.ts +27 -3
  30. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  31. package/dist/constants/ServerInstructions.js +87 -35
  32. package/dist/constants/ServerInstructions.js.map +1 -1
  33. package/dist/constants/icons.d.ts +54 -0
  34. package/dist/constants/icons.d.ts.map +1 -0
  35. package/dist/constants/icons.js +150 -0
  36. package/dist/constants/icons.js.map +1 -0
  37. package/dist/database/SqliteAdapter.d.ts.map +1 -1
  38. package/dist/database/SqliteAdapter.js +29 -22
  39. package/dist/database/SqliteAdapter.js.map +1 -1
  40. package/dist/filtering/ToolFilter.d.ts +1 -1
  41. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  42. package/dist/filtering/ToolFilter.js +17 -32
  43. package/dist/filtering/ToolFilter.js.map +1 -1
  44. package/dist/github/GitHubIntegration.d.ts +24 -0
  45. package/dist/github/GitHubIntegration.d.ts.map +1 -1
  46. package/dist/github/GitHubIntegration.js +146 -19
  47. package/dist/github/GitHubIntegration.js.map +1 -1
  48. package/dist/handlers/prompts/index.d.ts.map +1 -1
  49. package/dist/handlers/prompts/index.js +177 -64
  50. package/dist/handlers/prompts/index.js.map +1 -1
  51. package/dist/handlers/resources/index.d.ts +16 -2
  52. package/dist/handlers/resources/index.d.ts.map +1 -1
  53. package/dist/handlers/resources/index.js +525 -57
  54. package/dist/handlers/resources/index.js.map +1 -1
  55. package/dist/handlers/tools/index.d.ts +8 -2
  56. package/dist/handlers/tools/index.d.ts.map +1 -1
  57. package/dist/handlers/tools/index.js +1032 -83
  58. package/dist/handlers/tools/index.js.map +1 -1
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/server/McpServer.d.ts +2 -0
  62. package/dist/server/McpServer.d.ts.map +1 -1
  63. package/dist/server/McpServer.js +121 -35
  64. package/dist/server/McpServer.js.map +1 -1
  65. package/dist/types/index.d.ts +19 -1
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/index.js.map +1 -1
  68. package/dist/utils/McpLogger.d.ts.map +1 -1
  69. package/dist/utils/McpLogger.js.map +1 -1
  70. package/dist/utils/logger.d.ts.map +1 -1
  71. package/dist/utils/logger.js.map +1 -1
  72. package/dist/utils/progress-utils.d.ts +38 -0
  73. package/dist/utils/progress-utils.d.ts.map +1 -0
  74. package/dist/utils/progress-utils.js +63 -0
  75. package/dist/utils/progress-utils.js.map +1 -0
  76. package/dist/vector/VectorSearchManager.d.ts +5 -1
  77. package/dist/vector/VectorSearchManager.d.ts.map +1 -1
  78. package/dist/vector/VectorSearchManager.js +60 -17
  79. package/dist/vector/VectorSearchManager.js.map +1 -1
  80. package/eslint.config.js +62 -38
  81. package/mcp-config-example.json +20 -19
  82. package/package.json +5 -5
  83. package/releases/release-notes-v2.2.0.md +36 -33
  84. package/releases/release-notes.md +21 -15
  85. package/releases/v3.0.0.md +22 -21
  86. package/releases/v3.1.0.md +17 -14
  87. package/releases/v3.1.1.md +2 -0
  88. package/releases/v3.1.2.md +2 -0
  89. package/releases/v3.1.3.md +6 -0
  90. package/releases/v3.1.4.md +3 -0
  91. package/releases/v3.1.5.md +5 -1
  92. package/releases/v4.0.0.md +71 -0
  93. package/releases/v4.1.0.md +88 -0
  94. package/server.json +41 -41
  95. package/src/cli.ts +47 -34
  96. package/src/constants/ServerInstructions.ts +126 -50
  97. package/src/constants/icons.ts +175 -0
  98. package/src/database/SqliteAdapter.ts +339 -319
  99. package/src/filtering/ToolFilter.ts +65 -85
  100. package/src/github/GitHubIntegration.ts +381 -208
  101. package/src/handlers/prompts/index.ts +359 -194
  102. package/src/handlers/resources/index.ts +806 -205
  103. package/src/handlers/tools/index.ts +1501 -344
  104. package/src/index.ts +6 -6
  105. package/src/server/McpServer.ts +259 -121
  106. package/src/types/index.ts +183 -160
  107. package/src/types/sql.js.d.ts +17 -13
  108. package/src/utils/McpLogger.ts +33 -33
  109. package/src/utils/logger.ts +32 -32
  110. package/src/utils/progress-utils.ts +89 -0
  111. package/src/vector/VectorSearchManager.ts +148 -93
  112. package/tools.json +298 -298
  113. package/tsconfig.json +4 -13
@@ -1,7 +1,9 @@
1
1
  ## 📋 Summary
2
+
2
3
  Brief description of the changes in this PR.
3
4
 
4
5
  ## 🎯 Type of Change
6
+
5
7
  - [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
6
8
  - [ ] ✨ New feature (non-breaking change which adds functionality)
7
9
  - [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
@@ -11,58 +13,71 @@ Brief description of the changes in this PR.
11
13
  - [ ] 🧪 Test addition or improvement
12
14
 
13
15
  ## 🔗 Related Issues
16
+
14
17
  - Fixes #(issue number)
15
18
  - Addresses #(issue number)
16
19
  - Related to #(issue number)
17
20
 
18
21
  ## 🔄 Changes Made
22
+
19
23
  **Detailed description of changes:**
24
+
20
25
  - Change 1: Description
21
- - Change 2: Description
26
+ - Change 2: Description
22
27
  - Change 3: Description
23
28
 
24
29
  ## 🧪 Testing Performed
30
+
25
31
  **How did you test these changes?**
32
+
26
33
  - [ ] Manual testing in Cursor
27
34
  - [ ] Docker lite build tested
28
- - [ ] Docker full build tested
35
+ - [ ] Docker full build tested
29
36
  - [ ] Database migration tested
30
37
  - [ ] Existing functionality verified
31
38
  - [ ] New functionality tested
32
39
 
33
40
  **Test scenarios covered:**
41
+
34
42
  1. Scenario 1: Description and result
35
43
  2. Scenario 2: Description and result
36
44
  3. Scenario 3: Description and result
37
45
 
38
46
  ## 📱 Environment Tested
47
+
39
48
  - **OS:** [e.g. Windows 11, macOS 14, Ubuntu 22.04]
40
49
  - **Python:** [e.g. 3.11.5]
41
50
  - **Docker:** [e.g. 24.0.6]
42
51
  - **MCP Client:** [e.g. Cursor 0.42.3]
43
52
 
44
53
  ## 🔄 Breaking Changes
54
+
45
55
  **Are there any breaking changes?**
56
+
46
57
  - [ ] No breaking changes
47
58
  - [ ] Yes, breaking changes (describe below)
48
59
 
49
60
  **If yes, describe the breaking changes:**
61
+
50
62
  - What will break?
51
63
  - How should users migrate?
52
64
  - What's the impact?
53
65
 
54
66
  ## 📊 Database Changes
67
+
55
68
  - [ ] No database schema changes
56
69
  - [ ] Schema changes included (describe below)
57
70
  - [ ] Migration script provided
58
71
  - [ ] Backward compatibility maintained
59
72
 
60
73
  **If schema changes, describe:**
74
+
61
75
  - What tables/columns are affected?
62
76
  - Is there a migration path?
63
77
  - Any data loss potential?
64
78
 
65
79
  ## 🐳 Docker Impact
80
+
66
81
  - [ ] No Docker changes
67
82
  - [ ] Dockerfile.lite updated
68
83
  - [ ] Dockerfile updated
@@ -70,6 +85,7 @@ Brief description of the changes in this PR.
70
85
  - [ ] Image size impact: [increase/decrease by X MB]
71
86
 
72
87
  ## 📚 Documentation
88
+
73
89
  - [ ] No documentation changes needed
74
90
  - [ ] README.md updated
75
91
  - [ ] CONTRIBUTING.md updated
@@ -77,7 +93,9 @@ Brief description of the changes in this PR.
77
93
  - [ ] Examples updated
78
94
 
79
95
  ## ✅ Checklist
96
+
80
97
  **Before submitting this PR:**
98
+
81
99
  - [ ] Code follows the project's coding standards
82
100
  - [ ] Self-review of the code completed
83
101
  - [ ] Comments added to hard-to-understand areas
@@ -87,24 +105,31 @@ Brief description of the changes in this PR.
87
105
  - [ ] Changes work in both lite and full Docker variants
88
106
 
89
107
  ## 🖼️ Screenshots
108
+
90
109
  **If applicable, add screenshots to help explain your changes:**
91
110
  [Add screenshots here]
92
111
 
93
112
  ## 🚀 Deployment Notes
113
+
94
114
  **Anything special needed for deployment?**
115
+
95
116
  - Special configuration required?
96
117
  - Migration steps needed?
97
118
  - Rollback considerations?
98
119
 
99
120
  ## 📝 Additional Notes
121
+
100
122
  **Any other information that reviewers should know:**
123
+
101
124
  - Implementation decisions made
102
125
  - Trade-offs considered
103
126
  - Future improvements planned
104
127
  - Known limitations
105
128
 
106
129
  ## 🙋 Questions for Reviewers
130
+
107
131
  **Specific areas where you'd like feedback:**
132
+
108
133
  1. Question 1?
109
134
  2. Question 2?
110
- 3. Question 3?
135
+ 3. Question 3?
@@ -1,6 +1,6 @@
1
1
  # Docker Deployment Setup Guide
2
2
 
3
- *Last Updated: December 8, 2025 - Production/Stable v2.2.0*
3
+ _Last Updated: December 8, 2025 - Production/Stable v2.2.0_
4
4
 
5
5
  ## 🚀 Automated Docker Deployment
6
6
 
@@ -9,6 +9,7 @@ This repository is configured for **automatic Docker image deployment** to Docke
9
9
  ## 📋 Current Status
10
10
 
11
11
  ### ✅ Production-Ready Deployment
12
+
12
13
  - **Version**: v2.2.0 (Production/Stable)
13
14
  - **Base Image**: `python:3.13-alpine` (Alpine Linux 3.22)
14
15
  - **Docker Hub**: `writenotenow/memory-journal-mcp`
@@ -16,6 +17,7 @@ This repository is configured for **automatic Docker image deployment** to Docke
16
17
  - **Platforms**: `linux/amd64`, `linux/arm64` (Apple Silicon support)
17
18
 
18
19
  ### 🔒 Security Posture
20
+
19
21
  - **OpenSSL**: 3.5.4-r0 (latest)
20
22
  - **curl**: 8.14.1-r2 (latest)
21
23
  - **expat**: 2.7.3-r0 (latest)
@@ -27,6 +29,7 @@ This repository is configured for **automatic Docker image deployment** to Docke
27
29
  Before the Docker deployment workflow can run, you need to add these secrets to your GitHub repository:
28
30
 
29
31
  ### 1. Navigate to Repository Settings
32
+
30
33
  1. Go to your repository on GitHub: https://github.com/neverinfamous/memory-journal-mcp
31
34
  2. Click **Settings** → **Secrets and variables** → **Actions**
32
35
  3. Click **New repository secret**
@@ -34,11 +37,13 @@ Before the Docker deployment workflow can run, you need to add these secrets to
34
37
  ### 2. Required Secrets
35
38
 
36
39
  #### `DOCKER_USERNAME`
40
+
37
41
  - **Value**: `writenotenow` (Docker Hub username)
38
42
  - **Description**: Docker Hub username for authentication
39
43
  - **Status**: ✅ Configured
40
44
 
41
45
  #### `DOCKER_PASSWORD`
46
+
42
47
  - **Value**: Docker Hub access token (NOT your password)
43
48
  - **Description**: Docker Hub access token for secure authentication
44
49
  - **Status**: ✅ Configured
@@ -56,6 +61,7 @@ Before the Docker deployment workflow can run, you need to add these secrets to
56
61
  ## 🏗️ What Gets Built
57
62
 
58
63
  ### Image Configuration
64
+
59
65
  - **Single Variant**: Alpine-based full-featured image (225MB)
60
66
  - **ML Support**: Optional semantic search with graceful degradation
61
67
  - ARM64: ML dependencies fail to install, continues without semantic search ✅
@@ -63,11 +69,14 @@ Before the Docker deployment workflow can run, you need to add these secrets to
63
69
  - **Base**: Python 3.13 on Alpine Linux 3.22
64
70
 
65
71
  ### Supported Platforms
72
+
66
73
  - **linux/amd64** - x86_64 architecture (full features)
67
74
  - **linux/arm64** - Apple Silicon / ARM64 (core features, optional ML)
68
75
 
69
76
  ### Tags Generated on Each Push
77
+
70
78
  When you push to `main` branch, the workflow automatically creates:
79
+
71
80
  - `latest` - Always points to most recent main branch build
72
81
  - `v2.2.0` - Current version from pyproject.toml (automatically extracted)
73
82
  - `sha-XXXXXXX` - Git commit SHA pinned tag (short format)
@@ -75,11 +84,13 @@ When you push to `main` branch, the workflow automatically creates:
75
84
  ## 🔄 Deployment Triggers
76
85
 
77
86
  ### Automatic Deployment
87
+
78
88
  - ✅ **Push to main** → Builds and pushes all tags
79
89
  - ✅ **Create git tag** → Builds and pushes versioned tags (e.g., `v1.1.3`)
80
90
  - ✅ **Pull requests** → Builds images for testing (doesn't push to Docker Hub)
81
91
 
82
92
  ### Manual Deployment
93
+
83
94
  ```bash
84
95
  # Create and push a release tag
85
96
  git tag v2.2.0
@@ -94,6 +105,7 @@ git push origin v2.2.0
94
105
  ## 🛡️ Security Features
95
106
 
96
107
  ### Multi-Layer Security Scanning
108
+
97
109
  1. **Docker Scout CLI** - Runs during build, blocks critical/high vulnerabilities
98
110
  - Scans single-platform (linux/amd64) image locally
99
111
  - 8-minute timeout for efficient CI/CD
@@ -107,6 +119,7 @@ git push origin v2.2.0
107
119
  - Exit code 1 on critical/high/medium issues
108
120
 
109
121
  ### Image Optimization
122
+
110
123
  - **Multi-stage builds** keep images lean (225MB)
111
124
  - **Layer caching** speeds up builds significantly
112
125
  - **GitHub Actions cache** reduces build times by ~60%
@@ -114,6 +127,7 @@ git push origin v2.2.0
114
127
  - **WAL mode** for better concurrency and crash recovery
115
128
 
116
129
  ### Supply Chain Security
130
+
117
131
  - **Attestations**: Enabled for all images
118
132
  - **Provenance**: Full build provenance tracking
119
133
  - **SBOM**: Software Bill of Materials generated
@@ -140,12 +154,14 @@ htmlcov/ # Coverage reports
140
154
  ## 🎯 Docker Hub Integration
141
155
 
142
156
  ### Automatic Updates
157
+
143
158
  - **Tags**: Automatically created and pushed
144
159
  - **Attestations**: Supply chain metadata attached to all tags
145
160
  - **SBOM**: Software Bill of Materials for each build
146
161
  - **Multi-arch manifests**: Single tag works on AMD64 and ARM64
147
162
 
148
163
  ### Repository Information
164
+
149
165
  - **Repository**: `writenotenow/memory-journal-mcp`
150
166
  - **Visibility**: Public
151
167
  - **URL**: https://hub.docker.com/r/writenotenow/memory-journal-mcp
@@ -154,6 +170,7 @@ htmlcov/ # Coverage reports
154
170
  ## ⚡ Build Performance
155
171
 
156
172
  ### Optimizations Implemented
173
+
157
174
  - **Parallel builds** for AMD64 and ARM64
158
175
  - **GitHub Actions cache** for Docker layers
159
176
  - **Multi-platform builds** using QEMU and Buildx
@@ -161,6 +178,7 @@ htmlcov/ # Coverage reports
161
178
  - **Strategic layer ordering** (requirements → dependencies → code)
162
179
 
163
180
  ### Build Times (Actual)
181
+
164
182
  - **AMD64 build**: ~3-4 minutes (with cache)
165
183
  - **ARM64 build**: ~2-3 minutes (without ML dependencies)
166
184
  - **Multi-platform total**: ~5-7 minutes
@@ -168,6 +186,7 @@ htmlcov/ # Coverage reports
168
186
  - **First build (no cache)**: ~10-15 minutes
169
187
 
170
188
  ### Caching Strategy
189
+
171
190
  - **Layer caching**: Maximizes Docker layer reuse
172
191
  - **Package caching**: pip packages cached between builds
173
192
  - **Base image caching**: Python Alpine image cached locally
@@ -177,12 +196,14 @@ htmlcov/ # Coverage reports
177
196
  ### Automated CI/CD Tests
178
197
 
179
198
  #### Test Matrix (Python 3.10, 3.11, 3.12)
199
+
180
200
  - ✅ **Dependency installation** - All required packages
181
201
  - ✅ **Linting** - flake8 code quality checks
182
202
  - ✅ **Server import** - Python module loads correctly
183
203
  - ✅ **Database schema** - SQLite schema validation
184
204
 
185
205
  #### Docker Image Tests
206
+
186
207
  - ✅ **Security scan** - Docker Scout CVE detection
187
208
  - ✅ **Import test** - Server imports successfully in container
188
209
  - ✅ **Multi-platform** - Both AMD64 and ARM64 verified
@@ -191,6 +212,7 @@ htmlcov/ # Coverage reports
191
212
  ### Manual Testing
192
213
 
193
214
  #### Quick Verification
215
+
194
216
  ```bash
195
217
  # Test latest build
196
218
  docker pull writenotenow/memory-journal-mcp:latest
@@ -198,6 +220,7 @@ docker run --rm writenotenow/memory-journal-mcp:latest python -c "import sys; sy
198
220
  ```
199
221
 
200
222
  #### Full Functional Test
223
+
201
224
  ```bash
202
225
  # Create data directory
203
226
  mkdir -p data
@@ -210,6 +233,7 @@ docker run --rm -i \
210
233
  ```
211
234
 
212
235
  #### Test Specific Version
236
+
213
237
  ```bash
214
238
  # Test by version tag
215
239
  docker pull writenotenow/memory-journal-mcp:v2.2.0
@@ -224,28 +248,35 @@ docker pull writenotenow/memory-journal-mcp:sha-XXXXXXX
224
248
  ### Common Issues
225
249
 
226
250
  #### 1. Build fails with authentication error
251
+
227
252
  **Symptoms**: `Error saving credentials: error storing credentials`
228
- **Solution**:
253
+ **Solution**:
254
+
229
255
  - Verify `DOCKER_USERNAME` and `DOCKER_PASSWORD` secrets in GitHub
230
256
  - Check Docker Hub access token hasn't expired
231
257
  - Ensure token has Read, Write, Delete permissions
232
258
 
233
259
  #### 2. ARM64 build warnings about ML dependencies
260
+
234
261
  **Status**: ✅ Expected behavior, not an error
235
262
  **Details**:
263
+
236
264
  - PyTorch CPU builds not available for ARM64 Alpine
237
265
  - Server continues without semantic search features
238
266
  - Core functionality fully operational
239
267
 
240
268
  #### 3. Security scan fails
269
+
241
270
  **Symptoms**: Build blocked with "Critical or high severity vulnerabilities detected"
242
271
  **Solution**:
272
+
243
273
  1. Review Docker Scout output in Actions logs
244
274
  2. Update base image in Dockerfile (`FROM python:3.13-alpine`)
245
275
  3. Update pinned packages (openssl, curl, expat)
246
276
  4. Commit and push changes to trigger new build
247
277
 
248
278
  #### 4. Cache-related build failures
279
+
249
280
  **Symptoms**: "Failed to save: Unable to reserve cache"
250
281
  **Status**: ✅ Informational warning, not an error
251
282
  **Details**: Another concurrent job may be writing to cache, image still builds successfully
@@ -253,17 +284,20 @@ docker pull writenotenow/memory-journal-mcp:sha-XXXXXXX
253
284
  ### Monitoring
254
285
 
255
286
  #### GitHub Actions
287
+
256
288
  - **Build Status**: https://github.com/neverinfamous/memory-journal-mcp/actions
257
289
  - **Workflow File**: `.github/workflows/docker-publish.yml`
258
290
  - **Security Scans**: `.github/workflows/security-update.yml`
259
291
 
260
292
  #### Docker Hub
293
+
261
294
  - **Repository**: https://hub.docker.com/r/writenotenow/memory-journal-mcp
262
295
  - **Tags**: View all available tags
263
296
  - **Image Layers**: Inspect layer sizes and contents
264
297
  - **Security**: Docker Scout recommendations
265
298
 
266
299
  #### GitHub Security Tab
300
+
267
301
  - **SARIF Results**: Trivy scanner uploads
268
302
  - **Dependabot Alerts**: Dependency vulnerabilities
269
303
  - **Code Scanning**: Security analysis results
@@ -273,11 +307,13 @@ docker pull writenotenow/memory-journal-mcp:sha-XXXXXXX
273
307
  ### Metrics to Monitor
274
308
 
275
309
  #### Docker Hub (Public)
310
+
276
311
  - **Pull count** - Total downloads
277
312
  - **Tag popularity** - Most-used versions
278
313
  - **Geographic distribution** - User locations
279
314
 
280
315
  #### GitHub (Private)
316
+
281
317
  - **Build success rate** - CI/CD health
282
318
  - **Build duration trends** - Performance monitoring
283
319
  - **Security scan results** - Vulnerability tracking
@@ -287,23 +323,27 @@ docker pull writenotenow/memory-journal-mcp:sha-XXXXXXX
287
323
  ### Regular Updates (Recommended Monthly)
288
324
 
289
325
  1. **Check for base image updates**
326
+
290
327
  ```bash
291
328
  docker pull python:3.13-alpine
292
329
  docker inspect python:3.13-alpine --format '{{.Created}}'
293
330
  ```
294
331
 
295
332
  2. **Update pinned packages in Dockerfile**
333
+
296
334
  ```bash
297
335
  # Check latest Alpine package versions
298
336
  docker run --rm python:3.13-alpine sh -c "apk update && apk info openssl curl expat"
299
337
  ```
300
338
 
301
339
  3. **Update Dockerfile with new versions**
340
+
302
341
  ```dockerfile
303
342
  RUN apk add --no-cache --upgrade openssl=<version> curl=<version> expat=<version>
304
343
  ```
305
344
 
306
345
  4. **Commit and push to trigger rebuild**
346
+
307
347
  ```bash
308
348
  git add Dockerfile
309
349
  git commit -m "Update Docker base image with security fixes"
@@ -339,6 +379,7 @@ If Docker Scout or Trivy detects critical vulnerabilities:
339
379
  ## 🏆 Current Build Status
340
380
 
341
381
  ✅ **Production/Stable** - All systems operational
382
+
342
383
  - Latest version: v2.2.0
343
384
  - Docker Scout: ✅ No critical/high vulnerabilities
344
385
  - Multi-platform: ✅ AMD64 + ARM64 support
@@ -2,9 +2,9 @@ name: CodeQL
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ main ]
5
+ branches: [main]
6
6
  pull_request:
7
- branches: [ main ]
7
+ branches: [main]
8
8
  schedule:
9
9
  - cron: '23 2 * * 1'
10
10
 
@@ -23,7 +23,7 @@ jobs:
23
23
  strategy:
24
24
  fail-fast: false
25
25
  matrix:
26
- language: [ 'javascript-typescript' ]
26
+ language: ['javascript-typescript']
27
27
 
28
28
  steps:
29
29
  - name: Checkout repository
@@ -19,7 +19,7 @@ jobs:
19
19
  id: metadata
20
20
  uses: dependabot/fetch-metadata@v2
21
21
  with:
22
- github-token: "${{ secrets.GITHUB_TOKEN }}"
22
+ github-token: '${{ secrets.GITHUB_TOKEN }}'
23
23
 
24
24
  - name: Enable auto-merge for Dependabot PRs
25
25
  if: ${{ steps.metadata.outputs.update-type == 'version-update:semver-patch' || steps.metadata.outputs.update-type == 'version-update:semver-minor' }}