memory-journal-mcp 6.1.2 → 6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -28
- package/dist/{chunk-X4SWFATC.js → chunk-BI4ZNSKA.js} +38 -24
- package/dist/{chunk-HCEWINSB.js → chunk-N6EBIDN7.js} +99 -102
- package/dist/cli.js +2 -2
- package/dist/index.js +2 -2
- package/dist/tools-WPRY5MJ6.js +2 -0
- package/package.json +10 -1
- package/skills/github-commander/SKILL.md +151 -0
- package/skills/github-commander/config/project-config.example.md +125 -0
- package/skills/github-commander/workflows/code-quality-audit.md +80 -0
- package/skills/github-commander/workflows/full-audit.md +134 -0
- package/skills/github-commander/workflows/issue-triage.md +239 -0
- package/skills/github-commander/workflows/milestone-sprint.md +81 -0
- package/skills/github-commander/workflows/perf-audit.md +142 -0
- package/skills/github-commander/workflows/pr-review.md +123 -0
- package/skills/github-commander/workflows/security-audit.md +170 -0
- package/skills/github-commander/workflows/update-deps.md +109 -0
- package/.dockerignore +0 -139
- package/.gitattributes +0 -20
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -95
- package/.github/ISSUE_TEMPLATE/config.yml +0 -11
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -110
- package/.github/ISSUE_TEMPLATE/question.md +0 -78
- package/.github/aw/actions-lock.json +0 -14
- package/.github/copilot-instructions.md +0 -122
- package/.github/dependabot.yml +0 -93
- package/.github/pull_request_template.md +0 -135
- package/.github/workflows/README.md +0 -133
- package/.github/workflows/agentics-maintenance.yml +0 -141
- package/.github/workflows/auto-release.yml +0 -68
- package/.github/workflows/ci-health-monitor.lock.yml +0 -1121
- package/.github/workflows/ci-health-monitor.md +0 -87
- package/.github/workflows/codeql.yml +0 -41
- package/.github/workflows/dependabot-auto-merge.yml +0 -42
- package/.github/workflows/dependency-maintenance.lock.yml +0 -1182
- package/.github/workflows/dependency-maintenance.md +0 -147
- package/.github/workflows/docker-publish.yml +0 -254
- package/.github/workflows/docs-drift-detector.lock.yml +0 -1142
- package/.github/workflows/docs-drift-detector.md +0 -115
- package/.github/workflows/lint-and-test.yml +0 -60
- package/.github/workflows/publish-npm.yml +0 -85
- package/.github/workflows/secrets-scanning.yml +0 -32
- package/.github/workflows/security-update.yml +0 -127
- package/.gitleaks.toml +0 -9
- package/.prettierignore +0 -21
- package/.prettierrc +0 -33
- package/.scout-ignore +0 -12
- package/.trivyignore +0 -21
- package/CHANGELOG.md +0 -1814
- package/CODE_OF_CONDUCT.md +0 -133
- package/CONTRIBUTING.md +0 -263
- package/DOCKER_README.md +0 -331
- package/Dockerfile +0 -128
- package/SECURITY.md +0 -227
- package/UNRELEASED.md +0 -1
- package/dist/tools-T4U5A3X4.js +0 -2
- package/docker-compose.yml +0 -71
- package/docs/README.md +0 -18
- package/docs/agentic-journal-synergy.md +0 -175
- package/docs/copilot-setup.md +0 -72
- package/eslint.config.js +0 -110
- package/mcp-config-example.json +0 -21
- package/playwright.config.ts +0 -35
- package/releases/v2.1.0.md +0 -220
- package/releases/v2.2.0.md +0 -168
- package/releases/v3.0.0.md +0 -237
- package/releases/v3.1.0.md +0 -104
- package/releases/v3.1.1.md +0 -42
- package/releases/v3.1.2.md +0 -40
- package/releases/v3.1.3.md +0 -64
- package/releases/v3.1.4.md +0 -32
- package/releases/v3.1.5.md +0 -44
- package/releases/v4.0.0.md +0 -71
- package/releases/v4.1.0.md +0 -88
- package/releases/v4.2.0.md +0 -90
- package/releases/v4.3.0.md +0 -92
- package/releases/v4.3.1.md +0 -69
- package/releases/v4.4.0.md +0 -120
- package/releases/v4.4.1.md +0 -33
- package/releases/v4.4.2.md +0 -31
- package/releases/v4.5.0.md +0 -116
- package/releases/v5.0.0.md +0 -105
- package/releases/v5.0.1.md +0 -25
- package/releases/v5.1.0.md +0 -83
- package/releases/v5.1.1.md +0 -10
- package/releases/v6.0.0.md +0 -48
- package/releases/v6.0.1.md +0 -36
- package/releases/v6.1.0.md +0 -68
- package/releases/v6.1.1.md +0 -30
- package/releases/v6.1.2.md +0 -23
- package/scripts/generate-server-instructions.ts +0 -306
- package/scripts/server-instructions-function-body.ts +0 -107
- package/scripts/server-instructions-gotchas.ts +0 -45
- package/server.json +0 -42
- package/social-preview.png +0 -0
- package/src/auth/auth-context.ts +0 -78
- package/src/auth/authorization-server-discovery.ts +0 -263
- package/src/auth/errors.ts +0 -215
- package/src/auth/index.ts +0 -58
- package/src/auth/middleware.ts +0 -392
- package/src/auth/oauth-resource-server.ts +0 -170
- package/src/auth/scope-map.ts +0 -46
- package/src/auth/scopes.ts +0 -256
- package/src/auth/token-validator.ts +0 -293
- package/src/auth/transport-agnostic.ts +0 -164
- package/src/auth/types.ts +0 -372
- package/src/cli.ts +0 -279
- package/src/codemode/api-constants.ts +0 -263
- package/src/codemode/api.ts +0 -302
- package/src/codemode/auto-return.ts +0 -65
- package/src/codemode/index.ts +0 -47
- package/src/codemode/sandbox-factory.ts +0 -144
- package/src/codemode/sandbox.ts +0 -220
- package/src/codemode/security.ts +0 -155
- package/src/codemode/types.ts +0 -228
- package/src/codemode/worker-sandbox.ts +0 -277
- package/src/codemode/worker-script.ts +0 -239
- package/src/constants/icons.ts +0 -183
- package/src/constants/server-instructions.md +0 -166
- package/src/constants/server-instructions.ts +0 -514
- package/src/database/adapter-factory.ts +0 -16
- package/src/database/core/entry-columns.ts +0 -10
- package/src/database/core/interfaces.ts +0 -188
- package/src/database/core/schema.ts +0 -152
- package/src/database/sqlite-adapter/backup.ts +0 -167
- package/src/database/sqlite-adapter/entries/crud.ts +0 -233
- package/src/database/sqlite-adapter/entries/importance.ts +0 -76
- package/src/database/sqlite-adapter/entries/index.ts +0 -142
- package/src/database/sqlite-adapter/entries/search.ts +0 -294
- package/src/database/sqlite-adapter/entries/shared.ts +0 -102
- package/src/database/sqlite-adapter/entries/statistics.ts +0 -162
- package/src/database/sqlite-adapter/index.ts +0 -265
- package/src/database/sqlite-adapter/native-connection.ts +0 -301
- package/src/database/sqlite-adapter/relationships.ts +0 -70
- package/src/database/sqlite-adapter/tags.ts +0 -182
- package/src/filtering/tool-filter.ts +0 -312
- package/src/github/github-integration/client.ts +0 -114
- package/src/github/github-integration/index.ts +0 -297
- package/src/github/github-integration/insights.ts +0 -155
- package/src/github/github-integration/issues.ts +0 -213
- package/src/github/github-integration/milestones.ts +0 -262
- package/src/github/github-integration/projects.ts +0 -414
- package/src/github/github-integration/pull-requests.ts +0 -235
- package/src/github/github-integration/repository.ts +0 -110
- package/src/github/github-integration/types.ts +0 -43
- package/src/handlers/prompts/github.ts +0 -210
- package/src/handlers/prompts/index.ts +0 -97
- package/src/handlers/prompts/workflow.ts +0 -361
- package/src/handlers/resources/core/briefing/context-section.ts +0 -182
- package/src/handlers/resources/core/briefing/github-section.ts +0 -354
- package/src/handlers/resources/core/briefing/index.ts +0 -106
- package/src/handlers/resources/core/briefing/user-message.ts +0 -114
- package/src/handlers/resources/core/health.ts +0 -75
- package/src/handlers/resources/core/index.ts +0 -31
- package/src/handlers/resources/core/instructions.ts +0 -45
- package/src/handlers/resources/core/utilities.ts +0 -310
- package/src/handlers/resources/github.ts +0 -340
- package/src/handlers/resources/graph.ts +0 -218
- package/src/handlers/resources/help.ts +0 -410
- package/src/handlers/resources/index.ts +0 -143
- package/src/handlers/resources/shared.ts +0 -219
- package/src/handlers/resources/team.ts +0 -134
- package/src/handlers/resources/templates.ts +0 -334
- package/src/handlers/tools/admin.ts +0 -351
- package/src/handlers/tools/analytics.ts +0 -346
- package/src/handlers/tools/backup.ts +0 -272
- package/src/handlers/tools/codemode.ts +0 -188
- package/src/handlers/tools/core.ts +0 -359
- package/src/handlers/tools/error-fields-mixin.ts +0 -10
- package/src/handlers/tools/export.ts +0 -150
- package/src/handlers/tools/github/copilot-tools.ts +0 -72
- package/src/handlers/tools/github/helpers.ts +0 -125
- package/src/handlers/tools/github/insights-tools.ts +0 -112
- package/src/handlers/tools/github/issue-tools.ts +0 -442
- package/src/handlers/tools/github/kanban-tools.ts +0 -153
- package/src/handlers/tools/github/milestone-tools.ts +0 -371
- package/src/handlers/tools/github/mutation-tools.ts +0 -17
- package/src/handlers/tools/github/read-tools.ts +0 -302
- package/src/handlers/tools/github/schemas.ts +0 -435
- package/src/handlers/tools/github.ts +0 -39
- package/src/handlers/tools/index.ts +0 -255
- package/src/handlers/tools/relationships.ts +0 -390
- package/src/handlers/tools/schemas.ts +0 -165
- package/src/handlers/tools/search.ts +0 -448
- package/src/handlers/tools/team/admin-tools.ts +0 -164
- package/src/handlers/tools/team/analytics-tools.ts +0 -233
- package/src/handlers/tools/team/backup-tools.ts +0 -83
- package/src/handlers/tools/team/core-tools.ts +0 -197
- package/src/handlers/tools/team/export-tools.ts +0 -130
- package/src/handlers/tools/team/helpers.ts +0 -66
- package/src/handlers/tools/team/index.ts +0 -45
- package/src/handlers/tools/team/relationship-tools.ts +0 -219
- package/src/handlers/tools/team/schemas.ts +0 -558
- package/src/handlers/tools/team/search-tools.ts +0 -145
- package/src/handlers/tools/team/vector-tools.ts +0 -261
- package/src/index.ts +0 -57
- package/src/server/mcp-server.ts +0 -446
- package/src/server/registration.ts +0 -141
- package/src/server/scheduler.ts +0 -283
- package/src/transports/http/handlers.ts +0 -78
- package/src/transports/http/index.ts +0 -8
- package/src/transports/http/security.ts +0 -147
- package/src/transports/http/server/index.ts +0 -397
- package/src/transports/http/server/legacy-sse.ts +0 -87
- package/src/transports/http/server/stateful.ts +0 -222
- package/src/transports/http/server/stateless.ts +0 -42
- package/src/transports/http/types.ts +0 -132
- package/src/types/entities.ts +0 -145
- package/src/types/error-types.ts +0 -92
- package/src/types/errors.ts +0 -200
- package/src/types/filtering.ts +0 -55
- package/src/types/github.ts +0 -216
- package/src/types/index.ts +0 -348
- package/src/utils/error-helpers.ts +0 -78
- package/src/utils/errors/error-response-fields.ts +0 -29
- package/src/utils/errors/suggestions.ts +0 -94
- package/src/utils/github-helpers.ts +0 -33
- package/src/utils/logger.ts +0 -107
- package/src/utils/mcp-logger.ts +0 -155
- package/src/utils/progress-utils.ts +0 -100
- package/src/utils/query-helpers.ts +0 -78
- package/src/utils/resource-annotations.ts +0 -75
- package/src/utils/security-utils.ts +0 -198
- package/src/utils/vector-index-helpers.ts +0 -24
- package/src/vector/vector-search-manager.ts +0 -409
- package/src/version.ts +0 -15
- package/test-server/README.md +0 -193
- package/test-server/code-map.md +0 -399
- package/test-server/test-agent-experience.md +0 -213
- package/test-server/test-filter-instructions.mjs +0 -295
- package/test-server/test-instruction-levels.mjs +0 -102
- package/test-server/test-preflight.md +0 -55
- package/test-server/test-prompts.mjs +0 -185
- package/test-server/test-scheduler.mjs +0 -174
- package/test-server/test-tool-annotations.mjs +0 -115
- package/test-server/test-tools-codemode.md +0 -632
- package/test-server/test-tools-codemode2.md +0 -1218
- package/test-server/test-tools-team.md +0 -215
- package/test-server/test-tools.md +0 -429
- package/test-server/test-tools2.md +0 -361
- package/test-server/test-tools3.md +0 -396
- package/test-server/tool-reference.md +0 -231
- package/tests/README.md +0 -54
- package/tests/auth/auth-context.test.ts +0 -162
- package/tests/auth/authorization-server-discovery.test.ts +0 -265
- package/tests/auth/errors.test.ts +0 -170
- package/tests/auth/middleware.test.ts +0 -585
- package/tests/auth/oauth-resource-server.test.ts +0 -173
- package/tests/auth/scope-map.test.ts +0 -66
- package/tests/auth/scopes.test.ts +0 -347
- package/tests/auth/token-validator.test.ts +0 -271
- package/tests/codemode/api.test.ts +0 -396
- package/tests/codemode/auto-return.test.ts +0 -167
- package/tests/codemode/codemode-tool-handlers.test.ts +0 -197
- package/tests/codemode/sandbox-factory.test.ts +0 -152
- package/tests/codemode/sandbox.test.ts +0 -190
- package/tests/codemode/security.test.ts +0 -242
- package/tests/codemode/worker-sandbox.test.ts +0 -106
- package/tests/constants/icons.test.ts +0 -101
- package/tests/constants/server-instructions.test.ts +0 -514
- package/tests/database/crud-workflow-branches.test.ts +0 -418
- package/tests/database/database-branches.test.ts +0 -132
- package/tests/database/entries-auth-branches.test.ts +0 -390
- package/tests/database/native-connection.test.ts +0 -249
- package/tests/database/shared-helpers.test.ts +0 -103
- package/tests/database/sqlite-adapter.bench.ts +0 -63
- package/tests/database/sqlite-adapter.test.ts +0 -690
- package/tests/database/tags.test.ts +0 -134
- package/tests/e2e/README.md +0 -39
- package/tests/e2e/auth.spec.ts +0 -106
- package/tests/e2e/codemode-abuse.spec.ts +0 -75
- package/tests/e2e/health.spec.ts +0 -63
- package/tests/e2e/helpers.ts +0 -139
- package/tests/e2e/oauth-discovery.spec.ts +0 -102
- package/tests/e2e/oauth-scopes.spec.ts +0 -222
- package/tests/e2e/payloads-admin.spec.ts +0 -76
- package/tests/e2e/payloads-analytics.spec.ts +0 -37
- package/tests/e2e/payloads-backup-restore.spec.ts +0 -102
- package/tests/e2e/payloads-backup.spec.ts +0 -44
- package/tests/e2e/payloads-codemode-api.spec.ts +0 -131
- package/tests/e2e/payloads-codemode-readonly.spec.ts +0 -116
- package/tests/e2e/payloads-codemode.spec.ts +0 -116
- package/tests/e2e/payloads-core.spec.ts +0 -82
- package/tests/e2e/payloads-error-contracts.spec.ts +0 -159
- package/tests/e2e/payloads-export.spec.ts +0 -46
- package/tests/e2e/payloads-github-degradation.spec.ts +0 -73
- package/tests/e2e/payloads-github.spec.ts +0 -176
- package/tests/e2e/payloads-relationships.spec.ts +0 -56
- package/tests/e2e/payloads-search.spec.ts +0 -64
- package/tests/e2e/payloads-team-happy.spec.ts +0 -231
- package/tests/e2e/payloads-team.spec.ts +0 -174
- package/tests/e2e/prompts-expanded.spec.ts +0 -137
- package/tests/e2e/prompts.spec.ts +0 -62
- package/tests/e2e/protocols.spec.ts +0 -134
- package/tests/e2e/rate-limiting.spec.ts +0 -291
- package/tests/e2e/resources-briefing-env.spec.ts +0 -106
- package/tests/e2e/resources-complete.spec.ts +0 -180
- package/tests/e2e/resources-expanded.spec.ts +0 -83
- package/tests/e2e/resources-instructions-levels.spec.ts +0 -145
- package/tests/e2e/resources-templates.spec.ts +0 -123
- package/tests/e2e/resources.spec.ts +0 -103
- package/tests/e2e/scheduler.spec.ts +0 -79
- package/tests/e2e/security.spec.ts +0 -112
- package/tests/e2e/session-advanced.spec.ts +0 -152
- package/tests/e2e/sessions.spec.ts +0 -95
- package/tests/e2e/stateless.spec.ts +0 -79
- package/tests/e2e/streaming.spec.ts +0 -176
- package/tests/e2e/tool-filtering-presets.spec.ts +0 -192
- package/tests/e2e/tool-filtering.spec.ts +0 -77
- package/tests/e2e/tools.spec.ts +0 -111
- package/tests/filtering/tool-filter.test.ts +0 -314
- package/tests/github/client-issues-errors.test.ts +0 -433
- package/tests/github/github-integration-branches.test.ts +0 -490
- package/tests/github/github-integration.test.ts +0 -1015
- package/tests/github/github-managers-branches.test.ts +0 -907
- package/tests/github/pull-requests.test.ts +0 -334
- package/tests/handlers/analytics-branches.test.ts +0 -222
- package/tests/handlers/backup-branches.test.ts +0 -270
- package/tests/handlers/briefing-context-section.test.ts +0 -388
- package/tests/handlers/briefing-github-section.test.ts +0 -392
- package/tests/handlers/briefing-user-message.test.ts +0 -405
- package/tests/handlers/codemode-tools.test.ts +0 -85
- package/tests/handlers/copilot-tools.test.ts +0 -126
- package/tests/handlers/error-path-coverage.test.ts +0 -324
- package/tests/handlers/export-tools.test.ts +0 -203
- package/tests/handlers/github-resource-handlers.test.ts +0 -929
- package/tests/handlers/github-tool-handlers.test.ts +0 -1452
- package/tests/handlers/handler-error-branches.test.ts +0 -346
- package/tests/handlers/help-resource.test.ts +0 -92
- package/tests/handlers/prompt-handler-coverage.test.ts +0 -108
- package/tests/handlers/prompt-handlers.test.ts +0 -131
- package/tests/handlers/resource-handler-coverage.test.ts +0 -281
- package/tests/handlers/resource-handlers.test.ts +0 -357
- package/tests/handlers/resource-prompt-branches.test.ts +0 -495
- package/tests/handlers/search-tool-handlers.test.ts +0 -379
- package/tests/handlers/targeted-gap-closure.test.ts +0 -387
- package/tests/handlers/team-admin.test.ts +0 -291
- package/tests/handlers/team-analytics.test.ts +0 -220
- package/tests/handlers/team-core.test.ts +0 -148
- package/tests/handlers/team-data.test.ts +0 -198
- package/tests/handlers/team-relationships.test.ts +0 -271
- package/tests/handlers/team-resource-handlers.test.ts +0 -161
- package/tests/handlers/team-search.test.ts +0 -134
- package/tests/handlers/team-tool-handlers.test.ts +0 -301
- package/tests/handlers/team-vector.test.ts +0 -213
- package/tests/handlers/template-github-branches.test.ts +0 -676
- package/tests/handlers/tool-annotations.test.ts +0 -90
- package/tests/handlers/tool-handler-coverage.test.ts +0 -514
- package/tests/handlers/tool-handlers.test.ts +0 -510
- package/tests/handlers/tool-output-schemas.test.ts +0 -116
- package/tests/handlers/vector-tool-handlers.test.ts +0 -238
- package/tests/security/sql-injection.test.ts +0 -284
- package/tests/server/mcp-server.bench.ts +0 -55
- package/tests/server/mcp-server.test.ts +0 -1326
- package/tests/server/scheduler.test.ts +0 -400
- package/tests/transports/http-legacy-sse.test.ts +0 -275
- package/tests/transports/http-security.test.ts +0 -322
- package/tests/transports/http-stateful.test.ts +0 -487
- package/tests/transports/http-transport-server.test.ts +0 -301
- package/tests/transports/http-transport.test.ts +0 -771
- package/tests/utils/github-helpers.test.ts +0 -58
- package/tests/utils/logger.test.ts +0 -180
- package/tests/utils/mcp-logger.test.ts +0 -211
- package/tests/utils/progress-utils.test.ts +0 -156
- package/tests/utils/query-helpers.test.ts +0 -80
- package/tests/utils/security-utils.test.ts +0 -82
- package/tests/vector/vector-search-branches.test.ts +0 -111
- package/tests/vector/vector-search-manager.test.ts +0 -375
- package/tests/vector/vector-search.bench.ts +0 -48
- package/tsconfig.json +0 -42
- package/tsup.config.ts +0 -19
- package/vitest.config.ts +0 -25
package/releases/v4.3.1.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# v4.3.1 - OutputSchema Fix & CVE Remediations
|
|
2
|
-
|
|
3
|
-
Released: February 5, 2026
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
- **OutputSchema Fix** — Fixed `get_cross_project_insights` validation error on empty results
|
|
8
|
-
- **Security Patches** — Remediated 3 CVEs in Docker image (libexpat CRITICAL, tar HIGH)
|
|
9
|
-
- **Dependency Updates** — MCP SDK 1.26.0 and other updates
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Fixed
|
|
14
|
-
|
|
15
|
-
### `get_cross_project_insights` OutputSchema Validation
|
|
16
|
-
|
|
17
|
-
When no projects met the minimum entry threshold, the tool returned only `message` and `projects` fields, failing outputSchema validation.
|
|
18
|
-
|
|
19
|
-
**Now returns all required fields:**
|
|
20
|
-
|
|
21
|
-
- `project_count: 0`
|
|
22
|
-
- `total_entries: 0`
|
|
23
|
-
- `inactive_projects: []`
|
|
24
|
-
- `time_distribution: []`
|
|
25
|
-
- `message` (with explanation)
|
|
26
|
-
- `projects: []`
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Security
|
|
31
|
-
|
|
32
|
-
### CVE-2026-24515 (libexpat) — CRITICAL
|
|
33
|
-
|
|
34
|
-
Null pointer dereference vulnerability. Fixed by explicitly installing libexpat from Alpine edge repositories in Dockerfile.
|
|
35
|
-
|
|
36
|
-
### CVE-2026-25210 (libexpat) — MEDIUM
|
|
37
|
-
|
|
38
|
-
Integer overflow leading to information disclosure. Same fix as CVE-2026-24515.
|
|
39
|
-
|
|
40
|
-
### CVE-2026-24842 (tar) — HIGH
|
|
41
|
-
|
|
42
|
-
Path traversal vulnerability in npm's bundled tar package. Updated from 7.5.4 → 7.5.7 in Dockerfile.
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Changed
|
|
47
|
-
|
|
48
|
-
### Dependency Updates
|
|
49
|
-
|
|
50
|
-
| Package | From | To |
|
|
51
|
-
| --------------------------- | ------- | ------ |
|
|
52
|
-
| `@modelcontextprotocol/sdk` | 1.25.3 | 1.26.0 |
|
|
53
|
-
| `@types/node` | 25.0.10 | 25.2.0 |
|
|
54
|
-
| `commander` | 14.0.2 | 14.0.3 |
|
|
55
|
-
| `globals` | 17.1.0 | 17.3.0 |
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Upgrade
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# npm
|
|
63
|
-
npm update -g memory-journal-mcp
|
|
64
|
-
|
|
65
|
-
# Docker
|
|
66
|
-
docker pull writenotenow/memory-journal-mcp:v4.3.1
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**Full Changelog**: https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG
|
package/releases/v4.4.0.md
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
# v4.4.0 - Milestones, Insights, Security Hardening & Performance
|
|
2
|
-
|
|
3
|
-
Released: February 27, 2026
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
- **GitHub Milestones Integration** — Full CRUD support with 5 new tools, 2 new resources, and briefing/status integration
|
|
8
|
-
- **Repository Insights/Traffic Tool** — New `get_repo_insights` tool and `memory://github/insights` resource for monitoring stars, forks, clones, views, referrers, and popular paths (14-day rolling data)
|
|
9
|
-
- **HTTP Transport Security Hardening** — Configurable CORS, request body size limits, security headers, session timeout, and error log token scrubbing
|
|
10
|
-
- **Performance Improvements** — Debounced database save, paginated vector rebuild, parallel batch embedding, GitHub API TTL cache, and startup deduplication
|
|
11
|
-
- **15+ Bug Fixes** — Including `memory://significant` sort correctness, `delete_entry` permanent delete, JournalEntry GitHub metadata exposure, and `list_tags` zero-count filtering
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Added
|
|
16
|
-
|
|
17
|
-
### GitHub Milestones Integration
|
|
18
|
-
|
|
19
|
-
Full lifecycle management for GitHub Milestones:
|
|
20
|
-
|
|
21
|
-
- **5 new tools**: `get_github_milestones`, `get_github_milestone`, `create_github_milestone`, `update_github_milestone`, `delete_github_milestone`
|
|
22
|
-
- **2 new resources**: `memory://github/milestones` (list) and `memory://milestones/{number}` (detail)
|
|
23
|
-
- Briefing and status resources now include milestone progress data
|
|
24
|
-
- `create_github_issue_with_entry` accepts optional `milestone_number` parameter
|
|
25
|
-
|
|
26
|
-
### Repository Insights/Traffic
|
|
27
|
-
|
|
28
|
-
- **New tool**: `get_repo_insights` with token-efficient `sections` parameter
|
|
29
|
-
- **New resource**: `memory://github/insights` — compact summary (~150 tokens)
|
|
30
|
-
- Surfaces stars, forks, watchers, clones, views, top referrers, and popular pages
|
|
31
|
-
- Extended 10-minute cache TTL for slowly-changing traffic data
|
|
32
|
-
|
|
33
|
-
### Server Host Bind Parameter
|
|
34
|
-
|
|
35
|
-
- New `--server-host` CLI option and `MCP_HOST` / `HOST` environment variables
|
|
36
|
-
- Defaults to `localhost`; set to `0.0.0.0` for container deployments
|
|
37
|
-
|
|
38
|
-
### Performance Benchmarking Suite
|
|
39
|
-
|
|
40
|
-
- New `npm run bench` script using `vitest bench` for baseline performance measurement
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Improved
|
|
45
|
-
|
|
46
|
-
- **`get_entry_by_id` Importance Scoring Breakdown** — Returns weighted component contributions
|
|
47
|
-
- **`get_cross_project_insights` Inactive Threshold Visibility** — Self-documenting `inactiveThresholdDays` field
|
|
48
|
-
- **Database I/O — Debounced Save** — 500ms debounce batches rapid writes into single disk flush
|
|
49
|
-
- **Vector Index Rebuild** — Paginated fetching (200 per page) + parallel batch embedding (5 at a time) + sequential insertion
|
|
50
|
-
- **Server Startup — `getTools()` Deduplication** — Eliminated duplicate call during startup
|
|
51
|
-
- **GitHub API — TTL Response Cache** — 5-minute cache for read methods with automatic invalidation on mutations
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Fixed
|
|
56
|
-
|
|
57
|
-
- **`memory://significant` Importance Sort** — Fixed resource returning timestamp-sorted instead of importance-sorted entries when >20 entries exist
|
|
58
|
-
- **`memory://instructions` Active Tool Count** — Fixed hardcoded 3-tool fallback; now uses `getAllToolNames()`
|
|
59
|
-
- **`memory://health` Tool Count** — Dynamic computation from `TOOL_GROUPS` instead of hardcoded value
|
|
60
|
-
- **`delete_entry` Permanent Delete** — Now works on previously soft-deleted entries via `getEntryByIdIncludeDeleted()`
|
|
61
|
-
- **`delete_entry` Existence Check (P154)** — Pre-checks entry existence before mutation
|
|
62
|
-
- **`link_entries` Existence Check (P154)** — Pre-checks both source and target entry existence
|
|
63
|
-
- **`visualize_relationships` Disambiguation (P154)** — Clear "Entry not found" message for nonexistent entries
|
|
64
|
-
- **`list_tags` Zero-Count Filtering** — No longer returns orphan tags with zero usage
|
|
65
|
-
- **`get_github_issue` Missing Milestone Field** — Now maps `issue.milestone` from API response
|
|
66
|
-
- **`JournalEntry` GitHub Metadata** — 10 GitHub fields now included in all tool responses
|
|
67
|
-
- **`delete_github_milestone` Structured Error** — Returns proper `DeleteMilestoneOutputSchema` on failure
|
|
68
|
-
- **`ServerInstructions.ts` Entry Types** — Updated from 7 stale types to full 13-type union
|
|
69
|
-
- **Docker Hub Short Description** — Corrected "HTTPS" → "HTTP/SSE"
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Security
|
|
74
|
-
|
|
75
|
-
- **HTTP Transport Hardening** — Configurable CORS (`--cors-origin`), 1MB request body limit, `X-Content-Type-Options: nosniff` + `X-Frame-Options: DENY`, 30-min session timeout
|
|
76
|
-
- **Error Log Token Scrubbing** — Automatic sanitization of GitHub tokens and Authorization headers
|
|
77
|
-
- **CVE-2026-26960 (tar)** — Updated npm's bundled tar → 7.5.8 (HIGH, path traversal CVSS 7.1)
|
|
78
|
-
- **GHSA-w7fw-mjwx-w883 (qs)** — Updated qs 6.14.1 → 6.14.2 (low, arrayLimit bypass DoS)
|
|
79
|
-
- **GHSA-43fc-jf86-j433 (axios)** — Override to 1.13.5 (DoS via `__proto__` key)
|
|
80
|
-
- **SECURITY.md Rewrite** — Complete rewrite for TypeScript era
|
|
81
|
-
- **docker-compose.yml Rewrite** — Removed Python-era configuration, added secure mounts
|
|
82
|
-
- **Dockerfile Healthcheck** — Replaced no-op healthcheck with `process.exit(0)` validation
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## CI/CD
|
|
87
|
-
|
|
88
|
-
- Removed Dependabot auto-merge workflow — manual review required
|
|
89
|
-
- Trivy Action updated to 0.34.0
|
|
90
|
-
- CI test matrix aligned to `[24.x, 25.x]` matching `engines.node: >=24.0.0`
|
|
91
|
-
- Blocking `npm audit` — known vulnerabilities now fail the pipeline
|
|
92
|
-
- Blocking secret scanning — verified leaks now fail the pipeline
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Dependencies
|
|
97
|
-
|
|
98
|
-
| Package | From | To |
|
|
99
|
-
| --------------------------- | ------ | -------------- |
|
|
100
|
-
| `@eslint/js` | 9.39.2 | 10.0.1 (major) |
|
|
101
|
-
| `@modelcontextprotocol/sdk` | 1.26.0 | 1.27.1 (minor) |
|
|
102
|
-
| `@types/node` | 25.2.0 | 25.3.2 (minor) |
|
|
103
|
-
| `eslint` | 9.39.2 | 10.0.2 (major) |
|
|
104
|
-
| `simple-git` | 3.28.0 | 3.32.3 (minor) |
|
|
105
|
-
| `sql.js` | 1.12.0 | 1.14.0 (minor) |
|
|
106
|
-
| `typescript-eslint` | 8.54.0 | 8.56.1 (minor) |
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Upgrade
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
# npm
|
|
114
|
-
npm update -g memory-journal-mcp
|
|
115
|
-
|
|
116
|
-
# Docker
|
|
117
|
-
docker pull writenotenow/memory-journal-mcp:v4.4.0
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Full Changelog**: https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG
|
package/releases/v4.4.1.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# v4.4.1 - CVE Remediation (minimatch)
|
|
2
|
-
|
|
3
|
-
Released: February 27, 2026
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
- **Security Patch** — Fixed 2 HIGH severity CVEs in minimatch that blocked Docker deployment
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Security
|
|
12
|
-
|
|
13
|
-
### CVE-2026-27903 (minimatch) — HIGH
|
|
14
|
-
|
|
15
|
-
Inefficient algorithmic complexity vulnerability in minimatch >=10.0.0, <10.2.3 (CVSS 7.5). Added npm override `minimatch@^10.2.3`.
|
|
16
|
-
|
|
17
|
-
### CVE-2026-27904 (minimatch) — HIGH
|
|
18
|
-
|
|
19
|
-
Inefficient regular expression complexity (ReDoS) in minimatch >=10.0.0, <10.2.3 (CVSS 7.5). Same fix as CVE-2026-27903.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Upgrade
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
# npm
|
|
27
|
-
npm update -g memory-journal-mcp
|
|
28
|
-
|
|
29
|
-
# Docker
|
|
30
|
-
docker pull writenotenow/memory-journal-mcp:v4.4.1
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**Full Changelog**: https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG
|
package/releases/v4.4.2.md
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# v4.4.2 - CVE Remediation (minimatch Dockerfile Patch)
|
|
2
|
-
|
|
3
|
-
Released: February 27, 2026
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
- **Docker CVE Fix** — Manually patched npm's bundled minimatch in Dockerfile to resolve Docker deploy block
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Security
|
|
12
|
-
|
|
13
|
-
### CVE-2026-27903 + CVE-2026-27904 (minimatch) — HIGH
|
|
14
|
-
|
|
15
|
-
Manually patched npm's bundled `minimatch@10.2.2` → `10.2.3` in Dockerfile to fix HIGH severity ReDoS and algorithmic complexity vulnerabilities (CVSS 7.5).
|
|
16
|
-
|
|
17
|
-
The v4.4.1 npm override only affected project dependencies. Docker Scout detected the vulnerable copy inside npm's own bundled packages at `/usr/local/lib/node_modules/npm/node_modules/minimatch`. This follows the same manual patch pattern used for tar and diff CVEs.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Upgrade
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
# npm
|
|
25
|
-
npm update -g memory-journal-mcp
|
|
26
|
-
|
|
27
|
-
# Docker
|
|
28
|
-
docker pull writenotenow/memory-journal-mcp:v4.4.2
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Full Changelog**: https://github.com/neverinfamous/memory-journal-mcp/wiki/CHANGELOG
|
package/releases/v4.5.0.md
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# v4.5.0 - Automated Scheduling, Security Hardening & Quality Improvements
|
|
2
|
-
|
|
3
|
-
**Released: March 2, 2026**
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
### ⏰ Automated Scheduler (HTTP/SSE Only)
|
|
8
|
-
|
|
9
|
-
New in-process scheduler runs periodic maintenance jobs for long-running HTTP/SSE server processes:
|
|
10
|
-
|
|
11
|
-
- `--backup-interval <minutes>` — Automated database backups with cleanup
|
|
12
|
-
- `--keep-backups <count>` — Max backups to retain (default: 5)
|
|
13
|
-
- `--vacuum-interval <minutes>` — Database optimization (`PRAGMA optimize`)
|
|
14
|
-
- `--rebuild-index-interval <minutes>` — Full vector index rebuild
|
|
15
|
-
|
|
16
|
-
Each job is error-isolated. Status visible via `memory://health`.
|
|
17
|
-
|
|
18
|
-
### 🔒 Security Hardening
|
|
19
|
-
|
|
20
|
-
Comprehensive security improvements across the entire stack:
|
|
21
|
-
|
|
22
|
-
- **HTTP Transport** — Rate limiting (100 req/min), CSP headers, Cache-Control, Referrer-Policy, CORS wildcard warning
|
|
23
|
-
- **Input Validation** — `entry_type` and `significance_type` now constrained to Zod enums; date format validation via regex
|
|
24
|
-
- **Dead Code Wiring** — `sanitizeSearchQuery()` and `assertNoPathTraversal()` now active in code paths
|
|
25
|
-
- **Foreign Keys** — `PRAGMA foreign_keys = ON` enforced at database initialization
|
|
26
|
-
- **Path Traversal** — `exportToFile()` now protected with `assertNoPathTraversal()`
|
|
27
|
-
- **Logger Hardening** — `LOG_LEVEL` validated; `setLevel()` guarded against invalid values
|
|
28
|
-
- **Removed dead code** — SQL injection detection functions that provided false sense of security
|
|
29
|
-
- **CI** — Blocking `npm audit` and TruffleHog steps; Node.js test matrix aligned to `>=24.0.0`
|
|
30
|
-
|
|
31
|
-
### ✅ Test Coverage → 92%
|
|
32
|
-
|
|
33
|
-
Expanded test suite from 549 → 590 tests, raising line coverage from 88.59% → 92.06%:
|
|
34
|
-
|
|
35
|
-
- SIGINT shutdown handlers for all three transport modes
|
|
36
|
-
- Prompt handlers with proper arguments
|
|
37
|
-
- `SqliteAdapter` backup edge cases
|
|
38
|
-
- GitHub integration error paths
|
|
39
|
-
|
|
40
|
-
### 📝 Cursor Rule for Session Management
|
|
41
|
-
|
|
42
|
-
Added `hooks/cursor/memory-journal.mdc` — an `alwaysApply` Cursor rule that instructs agents to read `memory://briefing` at session start and create a retrospective at session end. This is the most reliable mechanism for session behavior in Cursor.
|
|
43
|
-
|
|
44
|
-
## Added
|
|
45
|
-
|
|
46
|
-
- **Automated Scheduler** — `Scheduler.ts` module with CLI flags for backup, vacuum, and index rebuild intervals
|
|
47
|
-
- **Cursor Rule** — `hooks/cursor/memory-journal.mdc` for reliable session management
|
|
48
|
-
- **Cursor `sessionEnd` Hook** — `hooks/cursor/hooks.json` + `session-end.sh` audit script
|
|
49
|
-
|
|
50
|
-
## Improved
|
|
51
|
-
|
|
52
|
-
- **Test Coverage** — 88.59% → 92.06% line coverage (549 → 590 tests)
|
|
53
|
-
- **Database I/O** — Debounced `scheduleSave()` reduces disk writes on rapid mutations
|
|
54
|
-
- **Vector Index Rebuild** — Paginated fetching (200/page) + parallel batch embedding (5 at a time)
|
|
55
|
-
- **Server Startup** — Eliminated duplicate `getTools()` call
|
|
56
|
-
- **GitHub API** — TTL response cache (5 min) with automatic invalidation on mutations
|
|
57
|
-
|
|
58
|
-
## Fixed
|
|
59
|
-
|
|
60
|
-
- **Session Start briefing in Cursor** — Added `user-memory-journal-mcp` server name for Cursor compatibility
|
|
61
|
-
- **`deleteOldBackups` Test Isolation** — Fixed flaky test by cleaning up pre-existing backups
|
|
62
|
-
- **`share_with_team` Not Setting `isPersonal`** — `create_entry` with `share_with_team: true` now correctly sets `isPersonal: false`
|
|
63
|
-
- **Path Traversal Test Assertion** — Updated to assert `PathTraversalError` type
|
|
64
|
-
- **Tool Handler Test Fix** — Updated to use valid `entry_type` enum value
|
|
65
|
-
|
|
66
|
-
## Security
|
|
67
|
-
|
|
68
|
-
- Wire dead-code security utilities (F-001, F-002)
|
|
69
|
-
- HTTP security headers: CSP, Cache-Control, Referrer-Policy (F-003)
|
|
70
|
-
- `PRAGMA foreign_keys = ON` (F-005)
|
|
71
|
-
- CORS wildcard warning (F-006)
|
|
72
|
-
- `entry_type` / `significance_type` enum constraints
|
|
73
|
-
- Date format validation on all date string fields
|
|
74
|
-
- HTTP rate limiting (100 req/min per IP)
|
|
75
|
-
- Remove dead SQL injection detection code
|
|
76
|
-
- `exportToFile()` path traversal protection
|
|
77
|
-
- `getRawDb()` safety documentation
|
|
78
|
-
- Logger `LOG_LEVEL` validation (L1) and `setLevel()` guard (L2)
|
|
79
|
-
- CI `security-scan` Node version alignment (L3)
|
|
80
|
-
|
|
81
|
-
## Changed
|
|
82
|
-
|
|
83
|
-
- `@types/node`: 25.3.2 → 25.3.3 (patch)
|
|
84
|
-
- `globals`: 17.3.0 → 17.4.0 (minor)
|
|
85
|
-
- `minimatch` override: 10.2.3 → 10.2.4 (patch)
|
|
86
|
-
- `tar` override: 7.5.8 → 7.5.9 (patch)
|
|
87
|
-
|
|
88
|
-
## Removed
|
|
89
|
-
|
|
90
|
-
- **Unused `cors` dependency** — CORS handled by custom middleware
|
|
91
|
-
|
|
92
|
-
## CI/CD
|
|
93
|
-
|
|
94
|
-
- Removed Dependabot auto-merge workflow
|
|
95
|
-
- Trivy Action updated to 0.34.0
|
|
96
|
-
- Node.js test matrix aligned: `[24.x, 25.x]`
|
|
97
|
-
- Blocking `npm audit` in CI pipeline
|
|
98
|
-
- Blocking TruffleHog secret scanning
|
|
99
|
-
|
|
100
|
-
## Documentation
|
|
101
|
-
|
|
102
|
-
- Revised `hooks/README.md` with progressive enhancement model
|
|
103
|
-
- Updated Session Management in README.md and DOCKER_README.md
|
|
104
|
-
- SECURITY.md rewrite for TypeScript era
|
|
105
|
-
- Team collaboration in READMEs with wiki links
|
|
106
|
-
- Rate limiting documentation
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
# npm
|
|
112
|
-
npm install -g memory-journal-mcp@4.5.0
|
|
113
|
-
|
|
114
|
-
# Docker
|
|
115
|
-
docker pull writenotenow/memory-journal-mcp:v4.5.0
|
|
116
|
-
```
|
package/releases/v5.0.0.md
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# v5.0.0 — Major Architecture & Security Release
|
|
2
|
-
|
|
3
|
-
**Release Date:** March 6, 2026
|
|
4
|
-
|
|
5
|
-
This is a major release featuring a complete architectural overhaul, comprehensive security hardening, a new E2E test suite, redesigned team collaboration, and deterministic error handling across all 42 tools.
|
|
6
|
-
|
|
7
|
-
## ✨ Highlights
|
|
8
|
-
|
|
9
|
-
- **Architecture Overhaul** — Tool handler monolith (3,428 lines) split into 12 focused modules. Resource handlers, prompt handlers, types, mutation tools, and HTTP transport all modularized similarly.
|
|
10
|
-
- **Team Collaboration Redesign** — Rebuilt from scratch with separate team database (`TEAM_DB_PATH`), author attribution, cross-DB search, and 3 dedicated tools (`team_create_entry`, `team_get_recent`, `team_search`).
|
|
11
|
-
- **Deterministic Error Handling** — All 42 tool handlers wrapped with `formatHandlerError()` returning structured `{ success: false, error }` responses. Dual-schema validation pattern ensures Zod errors also produce structured responses.
|
|
12
|
-
- **20+ Security Improvements** — Bearer token authentication, HSTS, timing-safe token comparison, shell-free git detection, Docker hardening, CI pipeline action pinning, and more.
|
|
13
|
-
- **Playwright E2E Test Suite** — 8 spec files (47 tests) testing HTTP/SSE transport end-to-end: health, protocols, security headers, auth, sessions, tools, resources, stateless mode, and scheduler.
|
|
14
|
-
- **Dual HTTP Transport** — Streamable HTTP (`/mcp`) + Legacy SSE (`/sse`) running simultaneously in stateful mode.
|
|
15
|
-
|
|
16
|
-
## 🆕 Added
|
|
17
|
-
|
|
18
|
-
- **Playwright E2E Test Suite** — `health.spec.ts`, `protocols.spec.ts`, `security.spec.ts`, `auth.spec.ts`, `sessions.spec.ts`, `tools.spec.ts`, `resources.spec.ts`, `stateless.spec.ts`, `scheduler.spec.ts`
|
|
19
|
-
- **Legacy SSE Transport** — `GET /sse` + `POST /messages?sessionId=<id>` for backward-compatible MCP 2024-11-05 clients (stateful mode only)
|
|
20
|
-
- **Health Endpoint** — `GET /health` returns `{ status: "healthy", timestamp }`
|
|
21
|
-
- **Root Info Endpoint** — `GET /` returns server name, version, endpoints, docs link
|
|
22
|
-
- **404 Handler** — Unknown paths return `{ error: "Not found" }`
|
|
23
|
-
- **`DB_PATH` Environment Variable** — Database path via env block (precedence: CLI `--db` > `DB_PATH` > `./memory_journal.db`)
|
|
24
|
-
- **`--auth-token` CLI Option** — Bearer token authentication for HTTP transport (`MCP_AUTH_TOKEN` env)
|
|
25
|
-
- **`Permissions-Policy` Header** — 6th security header: `camera=(), microphone=(), geolocation=()`
|
|
26
|
-
- **Team Collaboration** — `TEAM_DB_PATH`, `TEAM_AUTHOR`, `share_with_team`, `memory://team/recent`, `memory://team/statistics`
|
|
27
|
-
- Tool count: 39 → 42 · Tool groups: 8 → 9 · Resources: 20 → 22
|
|
28
|
-
|
|
29
|
-
## 🔒 Security
|
|
30
|
-
|
|
31
|
-
- **Trigger Name Validation** — `SAFE_IDENTIFIER_RE` regex in `migrateSchema()` prevents SQL injection via crafted trigger names
|
|
32
|
-
- **Query Limit Caps** — `.max(500)` on all `limit` parameters (10 schemas)
|
|
33
|
-
- **TruffleHog Pinned** — `@main` → `@v3.93.7`
|
|
34
|
-
- **Docker Scout Official Action** — Replaces `curl | sh` installer with `docker/scout-action@v1.18.2`
|
|
35
|
-
- **Gitleaks Blocking** — Removed `continue-on-error: true`; leaks now fail the workflow
|
|
36
|
-
- **Gitleaks Pinned** — `@v2` → `@v2.3.9`
|
|
37
|
-
- **Bearer Token Auth** — Optional `--auth-token` with `MCP_AUTH_TOKEN` env support
|
|
38
|
-
- **SSE Session Timeout** — Legacy SSE sessions expire after 30 min idle
|
|
39
|
-
- **`searchByDateRange` Limit** — `LIMIT 500` prevents unbounded result sets
|
|
40
|
-
- **Docker Production-Only Dependencies** — `npm ci --omit=dev` in production image
|
|
41
|
-
- **CORS `Authorization` Header** — Added for bearer token support
|
|
42
|
-
- **Timing-Safe Auth** — `crypto.timingSafeEqual()` for token comparison
|
|
43
|
-
- **HSTS Header** — Conditional `Strict-Transport-Security` behind reverse proxy
|
|
44
|
-
- **Docker Compose Hardening** — `read_only: true`, `tmpfs`, generic token placeholder, explicit `NODE_ENV`
|
|
45
|
-
- **Shell-Free Git** — `execFileSync('git', [...])` replaces `execSync('git config ...')`
|
|
46
|
-
|
|
47
|
-
## ⚡ Improved
|
|
48
|
-
|
|
49
|
-
- **Batch Tag Fetching** — N+1 elimination: `getRecentEntries(50)` reduced from 51 queries to 2
|
|
50
|
-
- **Batch Tag Linking** — Single `INSERT OR IGNORE` + `SELECT ... WHERE name IN (...)`
|
|
51
|
-
- **Tool Dispatch Cache** — O(1) `Map` lookup instead of rebuilding 42 definitions per call
|
|
52
|
-
- **Conditional JOIN in `searchByDateRange`** — Tag tables only JOINed when tag filter provided
|
|
53
|
-
- **Consolidated `getStatistics` Queries** — 5 sequential `db.exec()` → 3 with `SUM(CASE ...)`
|
|
54
|
-
- **Dual-Schema Validation** — Relaxed schemas for SDK, strict schemas in handlers
|
|
55
|
-
|
|
56
|
-
## 🐛 Fixed
|
|
57
|
-
|
|
58
|
-
- **Entry Type Enum** — Added 6 missing types (`technical_note`, `development_note`, `enhancement`, `milestone`, `system_integration_test`, `test_entry`)
|
|
59
|
-
- **`get_github_milestones` State Filter** — `state: "all"` no longer silently defaults to `"open"`
|
|
60
|
-
- **Legacy Database Migration** — `migrateSchema()` adds missing columns + drops FTS5 triggers
|
|
61
|
-
- **`list_tags` Null Count** — `COALESCE(usage_count, 0)` prevents null validation failures
|
|
62
|
-
- **Output Schema Error Responses** — All schemas now accept `{ success: false, error }` responses
|
|
63
|
-
- **Multi-Session Connect Crash** — Close-before-reconnect pattern for concurrent HTTP sessions
|
|
64
|
-
- **Backup Error Path** — Error responses now pass Zod output validation
|
|
65
|
-
- **`share_with_team` Not Setting `isPersonal`** — Fixed `create_entry` with `share_with_team: true`
|
|
66
|
-
- **Legacy SSE `start()` Redundancy** — Eliminated duplicate `sseTransport.start()` call
|
|
67
|
-
|
|
68
|
-
## 🔄 Changed
|
|
69
|
-
|
|
70
|
-
- **HTTP Transport Modularized** — `McpServer.ts` (813 → ~450 lines) → `src/transports/http.ts`
|
|
71
|
-
- **`ToolDefinition.handler` Return Type** — `Promise<unknown>` → `unknown` (supports sync+async)
|
|
72
|
-
- **Dependency Updates** — `@types/node` 25.3.3→25.3.5, `express-rate-limit` 8.2.1→8.3.0, `sql.js` 1.14.0→1.14.1
|
|
73
|
-
|
|
74
|
-
## 🗑️ Removed
|
|
75
|
-
|
|
76
|
-
- Legacy team collaboration system (rebuilt from scratch)
|
|
77
|
-
- Tool handler monolith `src/handlers/tools/index.ts` (replaced by 12 modules)
|
|
78
|
-
- Unused `cors` and `@types/cors` packages
|
|
79
|
-
- Database files reorganized into `data/` directory
|
|
80
|
-
|
|
81
|
-
## 🔄 CI/CD
|
|
82
|
-
|
|
83
|
-
- **CodeQL Default Setup Disabled** — Custom workflow is now sole scanner
|
|
84
|
-
- **CodeQL `actions` Language** — Added to replace Default Setup coverage
|
|
85
|
-
- **Trivy Action** — 0.34.0 → 0.34.1
|
|
86
|
-
|
|
87
|
-
## 📖 Documentation
|
|
88
|
-
|
|
89
|
-
- Cursor Rule for session management (`hooks/cursor/memory-journal.mdc`)
|
|
90
|
-
- Revised hooks/README.md with progressive enhancement model
|
|
91
|
-
- SECURITY.md rewritten for current architecture
|
|
92
|
-
- Team collaboration documented in READMEs
|
|
93
|
-
- Wiki security page expanded (16-item checklist)
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
**Full Changelog:** [v4.5.0...v5.0.0](https://github.com/neverinfamous/memory-journal-mcp/compare/v4.5.0...v5.0.0)
|
|
98
|
-
|
|
99
|
-
**Install/Update:**
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npm install -g memory-journal-mcp@5.0.0
|
|
103
|
-
# or
|
|
104
|
-
docker pull writenotenow/memory-journal-mcp:v5.0.0
|
|
105
|
-
```
|
package/releases/v5.0.1.md
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# v5.0.1 — Security Patch
|
|
2
|
-
|
|
3
|
-
**Release Date:** March 6, 2026
|
|
4
|
-
|
|
5
|
-
Patches a HIGH severity path traversal vulnerability in npm's bundled `tar` package discovered by Docker Scout during the v5.0.0 deployment pipeline.
|
|
6
|
-
|
|
7
|
-
## 🔒 Security
|
|
8
|
-
|
|
9
|
-
- **GHSA-qffp-2rhf-9h96 (tar)** — Manually patched npm's bundled `tar` → `7.5.10` in Dockerfile (builder + production stages) to fix HIGH severity path traversal vulnerability (CVSS 8.2). Also updated npm override in `package.json`.
|
|
10
|
-
|
|
11
|
-
## 🔄 Changed
|
|
12
|
-
|
|
13
|
-
- `tar` override: 7.5.9 → 7.5.10 (patch) — npm + Docker layers
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
**Full Changelog:** [v5.0.0...v5.0.1](https://github.com/neverinfamous/memory-journal-mcp/compare/v5.0.0...v5.0.1)
|
|
18
|
-
|
|
19
|
-
**Install/Update:**
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install -g memory-journal-mcp@5.0.1
|
|
23
|
-
# or
|
|
24
|
-
docker pull writenotenow/memory-journal-mcp:v5.0.1
|
|
25
|
-
```
|
package/releases/v5.1.0.md
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# v5.1.0 - 2026-03-07
|
|
2
|
-
|
|
3
|
-
## Highlights
|
|
4
|
-
|
|
5
|
-
- **`session-summary` Prompt** — New workflow prompt replaces unreliable session-end behaviors with robust, user-initiated context capture.
|
|
6
|
-
- **Extreme Performance Gains** — Drastically reduced SQLite roundtrips 3→1 for importance calculation, introduced a composite covering index for `getRecentEntries` (4x faster), and cached tool array structures (~4800x faster).
|
|
7
|
-
- **Cold Start Reduction** — Refactored to lazily load `@xenova/transformers` and `vectra`, shaving ~1.8s off server initialization.
|
|
8
|
-
- **Zod Exception Security** — Closed boundary violation leak edge cases by injecting strict vs relaxed dual-schema parsing, ensuring all inputs result in defined structured error objects.
|
|
9
|
-
- **Docker Compose Hardening** — Full network isolation (`mcp-net`), `no-new-privileges`, and `cap_drop: ALL` drastically drop container privileges and sandbox isolation boundaries.
|
|
10
|
-
|
|
11
|
-
## Added
|
|
12
|
-
|
|
13
|
-
- **`session-summary` Prompt** — New workflow prompt that creates a session summary journal entry. Fetches recent entries for context and guides the agent to create a `retrospective` entry tagged `session-summary` capturing accomplishments, pending items, and next-session context. Invoked by the user when ready (e.g., `/session-summary`). Replaces the unreliable automatic session-end behavior. Prompt count: 15 → 16.
|
|
14
|
-
|
|
15
|
-
## Performance
|
|
16
|
-
|
|
17
|
-
- **`calculateImportance` Query Consolidation** — Merged 3 separate SQL queries (entry data, relationship count, causal count) into a single query with subqueries, reducing SQLite roundtrips 3→1.
|
|
18
|
-
- **`linkTagsToEntry` Batch Operations** — Replaced per-tag `INSERT OR IGNORE` + `UPDATE` loop (2N SQL calls) with batched multi-row `INSERT`, `SELECT ... IN (...)`, and `UPDATE ... IN (...)` (4 SQL calls total for any N tags).
|
|
19
|
-
- **`createEntry` Redundant Fetch Elimination** — Removed post-INSERT `getEntryById()` re-fetch (full SELECT + tag query). Entry is now constructed directly from input values + `last_insert_rowid()` + `datetime(CURRENT_TIMESTAMP)`.
|
|
20
|
-
- **`updateEntry` Pre-check Elimination** — Removed pre-UPDATE `getEntryById()` existence check. Uses `UPDATE ... WHERE deleted_at IS NULL` + `SELECT changes()` to detect missing entries in one SQL call instead of a full SELECT + tag query.
|
|
21
|
-
- **SQLite Performance PRAGMAs** — Added `PRAGMA journal_mode = MEMORY`, `synchronous = OFF`, and `temp_store = MEMORY` at initialization. sql.js operates in-memory with manual disk serialization; these eliminate unnecessary internal journal overhead.
|
|
22
|
-
- **Composite Covering Index for `getRecentEntries`** — Added `idx_memory_journal_recent` on `(deleted_at, timestamp DESC, id DESC)` to enable index-only scan for the `WHERE deleted_at IS NULL ORDER BY timestamp DESC, id DESC` query pattern.
|
|
23
|
-
- **`addEntry` Native Upsert** — Replaced `deleteItem()` + `insertItem()` pattern with vectra's native `upsertItem()`, eliminating a full exception path on every new entry insertion.
|
|
24
|
-
- **`getTools` Cached Output** — Extracted shared `ensureToolCache()` for both `getTools` and `callTool`. Unfiltered `getTools` calls now return a cached mapped array instead of rebuilding 42 tool objects and mapping them on every invocation (~4800x faster than tool execution).
|
|
25
|
-
- **Lazy Module Loading for Startup** — Deferred `@xenova/transformers` (1.5s) and `vectra` (0.9s) from top-level imports in `VectorSearchManager.ts` to dynamic `import()` inside `initialize()`. These heavyweight modules are now loaded only when vector search is first used, reducing server cold-start by ~1.8s (VectorSearchManager import: 1515ms → 12ms).
|
|
26
|
-
|
|
27
|
-
## Security
|
|
28
|
-
|
|
29
|
-
- **Docker Compose Network Isolation (L-1)** — Added custom `mcp-net` bridge network to both services. Prevents MCP containers from accessing or being accessed by unrelated containers on the default Docker bridge.
|
|
30
|
-
- **Docker Compose `no-new-privileges` (L-2)** — Added `security_opt: ["no-new-privileges:true"]` to both services. Prevents privilege escalation via `setuid`/`setgid` binaries inside containers.
|
|
31
|
-
- **Author Input Sanitization (L-5)** — `resolveAuthor()` and `resolveTeamAuthor()` in `team.ts` and `core.ts` now strip ASCII control characters (`0x00`–`0x1F`, `0x7F`) and cap author strings at 100 characters. Prevents crafted `TEAM_AUTHOR` env or git config values from injecting control characters into the database `author` column or `autoContext` JSON payloads.
|
|
32
|
-
- **Consolidated `sanitizeAuthor` (Audit)** — Moved duplicated `sanitizeAuthor()` from `core.ts` and `team.ts` into `security-utils.ts` as a single-source-of-truth export. Eliminates risk of divergent sanitization logic.
|
|
33
|
-
- **Docker Compose `cap_drop: ALL` (Audit)** — Added `cap_drop: ALL` to both Docker Compose services, dropping all Linux capabilities (NET_RAW, SYS_CHROOT, etc.) that are unnecessary for a Node.js MCP server.
|
|
34
|
-
- **CI Unit Test Gate (Audit)** — Added `npm run test` step to `lint-and-test.yml` workflow so unit tests run on every push/PR, not just lint/typecheck/build.
|
|
35
|
-
|
|
36
|
-
## Improved
|
|
37
|
-
|
|
38
|
-
- **Zod Boundary Leak Prevention** — Created separate relaxed MCP schemas (without `min`/`max` constraints) for 7 tools so boundary violations reach the handler for structured `{success: false, error}` responses instead of leaking as raw MCP `-32602` error frames. Affected tools: `get_recent_entries`, `create_entry`, `create_entry_minimal`, `search_entries`, `search_by_date_range`, `semantic_search`, `export_entries`, `cleanup_backups`, `visualize_relationships`.
|
|
39
|
-
|
|
40
|
-
## Fixed
|
|
41
|
-
|
|
42
|
-
- **Output schema mismatches causing MCP -32602 errors** — Three `outputSchema` definitions didn't match actual handler output, causing `structuredContent does not match the tool's output schema` errors.
|
|
43
|
-
- **`get_statistics` Date Filtering** — `start_date` and `end_date` parameters now filter all statistics queries (total count, type breakdown, period breakdown, decision density).
|
|
44
|
-
- **`get_statistics` Project Breakdown** — `project_breakdown: true` now returns a `projectBreakdown` array with per-project entry counts.
|
|
45
|
-
- **`export_entries` Filter Bypass** — Handler was calling `db.getRecentEntries(limit)` and ignoring all parsed filter parameters. Now correctly uses `db.searchByDateRange()`.
|
|
46
|
-
- **GitHub Error Consistency** — All GitHub tool error responses now include `success: false` field, matching the `{success: false, error}` pattern.
|
|
47
|
-
- **`get_vector_index_stats` Missing `success` Field** — Handler now returns `success: true/false`.
|
|
48
|
-
- **No-Argument Prompts Failing with MCP `-32602`** — Prompts with no arguments failed due to `argsSchema: {}` instead of omitting `argsSchema`.
|
|
49
|
-
- **`get_github_milestone` Error Missing `success: false`** — Error response for non-existent milestones now returns proper structured form.
|
|
50
|
-
- **`get_kanban_board` Error Missing `success: false`** — Error response for non-existent projects matching consistent shape.
|
|
51
|
-
- **`search_by_date_range` Silent Filter Bug** — `issue_number`, `pr_number`, and `workflow_run_id` properly mapped natively into queries.
|
|
52
|
-
|
|
53
|
-
## Documentation
|
|
54
|
-
|
|
55
|
-
- **Test Counts Updated** — Updated the `README.md` and `DOCKER_README.md` test count badges and the testing breakdown table to reflect the combined total of Vitest unit/integration tests and Playwright E2E tests (785 total tests).
|
|
56
|
-
- **Performance Benchmark Claims Updated** — Updated benchmark numbers in `README.md` and `DOCKER_README.md` to reflect post-optimization measurements: vector ops >640 ops/sec, `getTools` ~4800x faster than tool execution, `getRecentEntries` ~4x faster via composite index.
|
|
57
|
-
|
|
58
|
-
## Removed
|
|
59
|
-
|
|
60
|
-
- **Automatic Session End Behavior** — Removed `## Session End` section from server instructions (`ServerInstructions.ts`, `server-instructions.md`).
|
|
61
|
-
- **`hooks/` Directory** — Deleted the entire hooks directory (`hooks/cursor/`, `hooks/kiro/`, `hooks/kilo-code/`, `hooks/README.md`).
|
|
62
|
-
|
|
63
|
-
## Changed
|
|
64
|
-
|
|
65
|
-
- **CI `publish-npm.yml` Node Version Alignment (L-4)** — Updated Node.js version from 22.x to 24.x to match `engines.node: >=24.0.0` in `package.json` and the Dockerfile base image (`node:24-alpine`).
|
|
66
|
-
- **Dependency Updates**
|
|
67
|
-
- `eslint`: 10.0.2 → 10.0.3 (patch)
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
**Full Changelog:** [v5.0.1...v5.1.0](https://github.com/neverinfamous/memory-journal-mcp/compare/v5.0.1...v5.1.0)
|
|
72
|
-
|
|
73
|
-
**To update via npm:**
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
npm install -g memory-journal-mcp@5.1.0
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**To update via Docker:**
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
docker pull writenotenow/memory-journal-mcp:v5.1.0
|
|
83
|
-
```
|
package/releases/v5.1.1.md
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
### Changed
|
|
2
|
-
|
|
3
|
-
- **Dependency Updates**
|
|
4
|
-
- Various minor and patch dependency updates including `@types/node`, `express-rate-limit`, `simple-git`, `typescript-eslint`, and overrides for `tar`, `axios`, and `tmp` inside npm and Docker layers, as well as GitHub Actions.
|
|
5
|
-
|
|
6
|
-
[Compare v5.1.0...v5.1.1](https://github.com/neverinfamous/memory-journal-mcp/compare/v5.1.0...v5.1.1)
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
npm install -g memory-journal-mcp
|
|
10
|
-
```
|
package/releases/v6.0.0.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# v6.0.0 — Code Mode, OAuth 2.1, FTS5, and Architecture Overhaul
|
|
2
|
-
|
|
3
|
-
> **Breaking Changes**: WASM SQLite fallback removed (`--sqlite-wasm`/`--sqlite-native` flags gone). CORS config changed from `corsOrigin: string` to `corsOrigins: string[]`.
|
|
4
|
-
|
|
5
|
-
## Highlights
|
|
6
|
-
|
|
7
|
-
### 🧠 Code Mode (`mj_execute_code`)
|
|
8
|
-
|
|
9
|
-
Sandboxed JavaScript execution for multi-step workflows with 70-90% token reduction. Worker-thread isolation with V8 boundary, `mj.*` namespaced API across all 44 tools (10 groups), positional args, method aliases, and per-group `help()`. Resource limits: 50KB code, 30s timeout, 128MB memory, 60 exec/min.
|
|
10
|
-
|
|
11
|
-
### 🔐 OAuth 2.1 Authentication
|
|
12
|
-
|
|
13
|
-
Full RFC-compliant OAuth 2.0 auth for HTTP transport. JWT validation via `jose`, JWKS caching, 3 scopes (`read`/`write`/`admin`) mapped to 10 tool groups. RFC 9728 Protected Resource Metadata endpoint.
|
|
14
|
-
|
|
15
|
-
### 🔍 FTS5 Full-Text Search
|
|
16
|
-
|
|
17
|
-
Replaced `LIKE '%query%'` with SQLite FTS5. BM25 ranking, phrase queries, prefix matching, boolean operators. Content-sync mode (no duplicate storage), Porter stemmer, auto-populated on migration.
|
|
18
|
-
|
|
19
|
-
### 📊 Configurable Briefing
|
|
20
|
-
|
|
21
|
-
15 new env vars / CLI flags to customize `memory://briefing`: entry counts, team inclusion, issue/PR listing depth, workflow runs, Copilot review aggregation, rules file, skills dir.
|
|
22
|
-
|
|
23
|
-
### 🏗️ Architecture
|
|
24
|
-
|
|
25
|
-
- **sqlite-vec** replaces vectra for vector search (86 fewer dependencies)
|
|
26
|
-
- **tsup** replaces tsc (875 KB → 455 KB dist, ~48% reduction)
|
|
27
|
-
- **Modularized** SQLite adapter, GitHub integration, HTTP transport, briefing resources
|
|
28
|
-
- **Harmonized error types** with `MemoryJournalMcpError` base class (9 categories, 6 subclasses)
|
|
29
|
-
- **Built-in rate limiting** replaces `express-rate-limit`
|
|
30
|
-
|
|
31
|
-
### 🧪 Testing
|
|
32
|
-
|
|
33
|
-
- Unit coverage: 73% → 87% (320+ new tests across 10 files)
|
|
34
|
-
- E2E: 71 → 105 tests (8 new Playwright specs)
|
|
35
|
-
- 10 rounds of code quality audit fixes
|
|
36
|
-
- 4 rounds of performance audit fixes
|
|
37
|
-
|
|
38
|
-
### 🔒 Security
|
|
39
|
-
|
|
40
|
-
- 6 CVEs patched via `undici` 7.24.1
|
|
41
|
-
- DNS rebinding protection, server timeouts, HSTS config
|
|
42
|
-
- SHA-pinned all GitHub Actions across 6 workflows
|
|
43
|
-
|
|
44
|
-
[Full Changelog](https://github.com/neverinfamous/memory-journal-mcp/blob/main/CHANGELOG.md#600---2026-03-14)
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npm install -g memory-journal-mcp
|
|
48
|
-
```
|