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.
- package/.dockerignore +93 -59
- package/.github/ISSUE_TEMPLATE/bug_report.md +20 -1
- package/.github/ISSUE_TEMPLATE/config.yml +1 -1
- package/.github/ISSUE_TEMPLATE/feature_request.md +24 -3
- package/.github/ISSUE_TEMPLATE/question.md +17 -2
- package/.github/dependabot.yml +52 -52
- package/.github/pull_request_template.md +28 -3
- package/.github/workflows/DOCKER_DEPLOYMENT_SETUP.md +43 -2
- package/.github/workflows/codeql.yml +3 -3
- package/.github/workflows/dependabot-auto-merge.yml +1 -1
- package/.github/workflows/docker-publish.yml +233 -226
- package/.github/workflows/lint-and-test.yml +3 -3
- package/.github/workflows/publish-npm.yml +3 -3
- package/.github/workflows/secrets-scanning.yml +2 -2
- package/.github/workflows/security-update.yml +88 -75
- package/.prettierignore +21 -0
- package/.prettierrc +33 -0
- package/.vscode/settings.json +82 -0
- package/CHANGELOG.md +1 -0
- package/CODE_OF_CONDUCT.md +13 -12
- package/CONTRIBUTING.md +14 -6
- package/DOCKER_README.md +171 -121
- package/Dockerfile +38 -6
- package/README.md +174 -211
- package/SECURITY.md +22 -2
- package/VERSION +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +27 -3
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +87 -35
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/constants/icons.d.ts +54 -0
- package/dist/constants/icons.d.ts.map +1 -0
- package/dist/constants/icons.js +150 -0
- package/dist/constants/icons.js.map +1 -0
- package/dist/database/SqliteAdapter.d.ts.map +1 -1
- package/dist/database/SqliteAdapter.js +29 -22
- package/dist/database/SqliteAdapter.js.map +1 -1
- package/dist/filtering/ToolFilter.d.ts +1 -1
- package/dist/filtering/ToolFilter.d.ts.map +1 -1
- package/dist/filtering/ToolFilter.js +17 -32
- package/dist/filtering/ToolFilter.js.map +1 -1
- package/dist/github/GitHubIntegration.d.ts +24 -0
- package/dist/github/GitHubIntegration.d.ts.map +1 -1
- package/dist/github/GitHubIntegration.js +146 -19
- package/dist/github/GitHubIntegration.js.map +1 -1
- package/dist/handlers/prompts/index.d.ts.map +1 -1
- package/dist/handlers/prompts/index.js +177 -64
- package/dist/handlers/prompts/index.js.map +1 -1
- package/dist/handlers/resources/index.d.ts +16 -2
- package/dist/handlers/resources/index.d.ts.map +1 -1
- package/dist/handlers/resources/index.js +525 -57
- package/dist/handlers/resources/index.js.map +1 -1
- package/dist/handlers/tools/index.d.ts +8 -2
- package/dist/handlers/tools/index.d.ts.map +1 -1
- package/dist/handlers/tools/index.js +1032 -83
- package/dist/handlers/tools/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server/McpServer.d.ts +2 -0
- package/dist/server/McpServer.d.ts.map +1 -1
- package/dist/server/McpServer.js +121 -35
- package/dist/server/McpServer.js.map +1 -1
- package/dist/types/index.d.ts +19 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/McpLogger.d.ts.map +1 -1
- package/dist/utils/McpLogger.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.d.ts +38 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/progress-utils.js +63 -0
- package/dist/utils/progress-utils.js.map +1 -0
- package/dist/vector/VectorSearchManager.d.ts +5 -1
- package/dist/vector/VectorSearchManager.d.ts.map +1 -1
- package/dist/vector/VectorSearchManager.js +60 -17
- package/dist/vector/VectorSearchManager.js.map +1 -1
- package/eslint.config.js +62 -38
- package/mcp-config-example.json +20 -19
- package/package.json +5 -5
- package/releases/release-notes-v2.2.0.md +36 -33
- package/releases/release-notes.md +21 -15
- package/releases/v3.0.0.md +22 -21
- package/releases/v3.1.0.md +17 -14
- package/releases/v3.1.1.md +2 -0
- package/releases/v3.1.2.md +2 -0
- package/releases/v3.1.3.md +6 -0
- package/releases/v3.1.4.md +3 -0
- package/releases/v3.1.5.md +5 -1
- package/releases/v4.0.0.md +71 -0
- package/releases/v4.1.0.md +88 -0
- package/server.json +41 -41
- package/src/cli.ts +47 -34
- package/src/constants/ServerInstructions.ts +126 -50
- package/src/constants/icons.ts +175 -0
- package/src/database/SqliteAdapter.ts +339 -319
- package/src/filtering/ToolFilter.ts +65 -85
- package/src/github/GitHubIntegration.ts +381 -208
- package/src/handlers/prompts/index.ts +359 -194
- package/src/handlers/resources/index.ts +806 -205
- package/src/handlers/tools/index.ts +1501 -344
- package/src/index.ts +6 -6
- package/src/server/McpServer.ts +259 -121
- package/src/types/index.ts +183 -160
- package/src/types/sql.js.d.ts +17 -13
- package/src/utils/McpLogger.ts +33 -33
- package/src/utils/logger.ts +32 -32
- package/src/utils/progress-utils.ts +89 -0
- package/src/vector/VectorSearchManager.ts +148 -93
- package/tools.json +298 -298
- 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
|
-
|
|
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: [
|
|
5
|
+
branches: [main]
|
|
6
6
|
pull_request:
|
|
7
|
-
branches: [
|
|
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: [
|
|
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:
|
|
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' }}
|