@danielmarbach/mnemonic-mcp 0.20.0 → 0.22.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/CHANGELOG.md +28 -0
- package/README.md +1 -1
- package/build/auto-relate.d.ts +9 -0
- package/build/auto-relate.d.ts.map +1 -0
- package/build/auto-relate.js +73 -0
- package/build/auto-relate.js.map +1 -0
- package/build/cache.d.ts +21 -0
- package/build/cache.d.ts.map +1 -1
- package/build/cache.js +54 -4
- package/build/cache.js.map +1 -1
- package/build/git.d.ts +3 -0
- package/build/git.d.ts.map +1 -1
- package/build/git.js +142 -119
- package/build/git.js.map +1 -1
- package/build/index.js +196 -62
- package/build/index.js.map +1 -1
- package/build/project-introspection.d.ts +2 -0
- package/build/project-introspection.d.ts.map +1 -1
- package/build/project-introspection.js +58 -0
- package/build/project-introspection.js.map +1 -1
- package/build/recall.d.ts +4 -0
- package/build/recall.d.ts.map +1 -1
- package/build/recall.js +38 -2
- package/build/recall.js.map +1 -1
- package/build/structured-content.d.ts +104 -48
- package/build/structured-content.d.ts.map +1 -1
- package/build/structured-content.js +29 -26
- package/build/structured-content.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ All notable changes to `mnemonic` will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is loosely based on Keep a Changelog and uses semver-style version headings.
|
|
6
6
|
|
|
7
|
+
## [0.22.0] - 2026-04-13
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Session-aware relationship carry-forward: when a new memory clearly continues durable context inspected earlier in the same MCP session, `remember` and `update` can now attach bounded `related-to` links automatically without relying on repo-specific rules or English-only cues.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Active session cache now preserves recently inspected note context across unrelated mutations, so follow-up writes can still reuse durable session context after intermediate note changes.
|
|
16
|
+
- Hybrid recall reranking now adds rare-token coverage and contiguous significant-token phrase signals on top of the existing semantic-plus-lexical scoring, improving generic rationale-style query handling without changing storage or requiring project-specific heuristics.
|
|
17
|
+
|
|
18
|
+
## [0.21.0] - 2026-04-05
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- `recall` and `recent_memories` now accept an optional `lifecycle` filter, making it easier to resume active work from temporary notes after project orientation.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- `mnemonic-workflow-hint`, `AGENT.md`, `README.md`, and the mirrored website guidance now describe working-state continuity as a summary-first workflow: start with `project_memory_summary`, then recover temporary notes if needed.
|
|
27
|
+
- Structured MCP results now use a consistent `project: { id, name }` shape across the affected tool responses instead of mixing object and `project`/`projectName` string pairs.
|
|
28
|
+
- `get` structured output now includes persisted `alwaysLoad` metadata, making the typed note view a more complete representation of stored note state.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Working-state continuity guidance no longer tells agents to preserve temporary checkpoints by default when consolidating completed work.
|
|
33
|
+
- Same-repo git mutations inside mnemonic are now serialized, reducing transient `.git/index.lock` failures during concurrent mutating operations while keeping bounded retry fallback for external contention.
|
|
34
|
+
|
|
7
35
|
## [0.20.0] - 2026-04-04
|
|
8
36
|
|
|
9
37
|
### Added
|
package/README.md
CHANGED
|
@@ -442,7 +442,7 @@ Imported notes are written to the main vault with `lifecycle: permanent` and `sc
|
|
|
442
442
|
|
|
443
443
|
| Prompt | Description |
|
|
444
444
|
|--------|-------------|
|
|
445
|
-
| `mnemonic-workflow-hint` | Optional. Returns a compact decision protocol: use `recall` or `list` first, inspect with `get`, update existing memories, remember only when nothing matches, then organize with `relate`, `consolidate`, or `move_memory`.
|
|
445
|
+
| `mnemonic-workflow-hint` | Optional. Returns a compact decision protocol: use `recall` or `list` first, inspect with `get`, update existing memories, remember only when nothing matches, then organize with `relate`, `consolidate`, or `move_memory`. It also reinforces summary-first orientation via `project_memory_summary`, temporary-note recovery only after orientation, and that roles are optional prioritization hints while lifecycle stays separate. |
|
|
446
446
|
|
|
447
447
|
## Tools
|
|
448
448
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Note, Relationship } from "./storage.js";
|
|
2
|
+
export interface SessionAccessCandidate {
|
|
3
|
+
note: Note;
|
|
4
|
+
accessedAt: string;
|
|
5
|
+
accessKind: "get" | "recall" | "summary";
|
|
6
|
+
score?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function suggestAutoRelationships(source: Note, candidates: SessionAccessCandidate[]): Relationship[];
|
|
9
|
+
//# sourceMappingURL=auto-relate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-relate.d.ts","sourceRoot":"","sources":["../src/auto-relate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkDD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,sBAAsB,EAAE,GACnC,YAAY,EAAE,CAgChB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { buildProjection, extractProjectionSummary } from "./projections.js";
|
|
2
|
+
import { computeLexicalScore, normalizeText, tokenize } from "./lexical.js";
|
|
3
|
+
const MIN_TITLE_MENTION_LENGTH = 12;
|
|
4
|
+
const MAX_AUTO_RELATIONSHIPS = 2;
|
|
5
|
+
const STRONG_OVERLAP_THRESHOLD = 0.42;
|
|
6
|
+
function hasExplicitTitleMention(source, candidate) {
|
|
7
|
+
const normalizedTitle = normalizeText(candidate.title);
|
|
8
|
+
if (normalizedTitle.length < MIN_TITLE_MENTION_LENGTH) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const haystack = normalizeText(`${source.title}\n${source.content}`);
|
|
12
|
+
return haystack.includes(normalizedTitle);
|
|
13
|
+
}
|
|
14
|
+
function computeSharedTagScore(source, candidate) {
|
|
15
|
+
if (source.tags.length === 0 || candidate.tags.length === 0) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
const sourceTags = new Set(source.tags.map((tag) => normalizeText(tag)));
|
|
19
|
+
const candidateTags = new Set(candidate.tags.map((tag) => normalizeText(tag)));
|
|
20
|
+
let shared = 0;
|
|
21
|
+
for (const tag of sourceTags) {
|
|
22
|
+
if (candidateTags.has(tag)) {
|
|
23
|
+
shared++;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return Math.min(shared, 3) * 0.08;
|
|
27
|
+
}
|
|
28
|
+
function computeTitleTokenOverlap(source, candidate) {
|
|
29
|
+
const sourceTokens = new Set(tokenize(source.title));
|
|
30
|
+
const candidateTokens = new Set(tokenize(candidate.title));
|
|
31
|
+
if (sourceTokens.size === 0 || candidateTokens.size === 0) {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
let shared = 0;
|
|
35
|
+
for (const token of sourceTokens) {
|
|
36
|
+
if (candidateTokens.has(token)) {
|
|
37
|
+
shared++;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return shared / Math.max(sourceTokens.size, candidateTokens.size);
|
|
41
|
+
}
|
|
42
|
+
export function suggestAutoRelationships(source, candidates) {
|
|
43
|
+
const existingIds = new Set((source.relatedTo ?? []).map((rel) => rel.id));
|
|
44
|
+
const ranked = candidates
|
|
45
|
+
.filter((candidate) => candidate.note.id !== source.id)
|
|
46
|
+
.filter((candidate) => candidate.note.lifecycle === "permanent")
|
|
47
|
+
.filter((candidate) => candidate.note.project === source.project)
|
|
48
|
+
.filter((candidate) => !existingIds.has(candidate.note.id))
|
|
49
|
+
.map((candidate) => {
|
|
50
|
+
const explicitMention = hasExplicitTitleMention(source, candidate.note);
|
|
51
|
+
const sourceSummary = extractProjectionSummary(source);
|
|
52
|
+
const candidateProjection = buildProjection(candidate.note).projectionText;
|
|
53
|
+
const lexical = computeLexicalScore(sourceSummary || source.title, candidateProjection);
|
|
54
|
+
const titleOverlap = computeTitleTokenOverlap(source, candidate.note);
|
|
55
|
+
const sharedTags = computeSharedTagScore(source, candidate.note);
|
|
56
|
+
const recencyBoost = candidate.score ? Math.min(candidate.score, 1) * 0.05 : 0;
|
|
57
|
+
const score = (explicitMention ? 1 : 0) +
|
|
58
|
+
lexical * 0.45 +
|
|
59
|
+
titleOverlap * 0.2 +
|
|
60
|
+
sharedTags +
|
|
61
|
+
recencyBoost;
|
|
62
|
+
return { candidate, explicitMention, lexical, score };
|
|
63
|
+
})
|
|
64
|
+
.filter(({ explicitMention, lexical, score }) => explicitMention || (lexical >= STRONG_OVERLAP_THRESHOLD && score >= 0.32))
|
|
65
|
+
.sort((left, right) => {
|
|
66
|
+
if (right.score !== left.score)
|
|
67
|
+
return right.score - left.score;
|
|
68
|
+
return right.candidate.accessedAt.localeCompare(left.candidate.accessedAt);
|
|
69
|
+
})
|
|
70
|
+
.slice(0, MAX_AUTO_RELATIONSHIPS);
|
|
71
|
+
return ranked.map(({ candidate }) => ({ id: candidate.note.id, type: "related-to" }));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=auto-relate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-relate.js","sourceRoot":"","sources":["../src/auto-relate.ts"],"names":[],"mappings":"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"}
|
package/build/cache.d.ts
CHANGED
|
@@ -6,12 +6,23 @@ interface VaultCache {
|
|
|
6
6
|
noteList: Note[];
|
|
7
7
|
embeddings: EmbeddingRecord[];
|
|
8
8
|
}
|
|
9
|
+
interface SessionAccessRecord {
|
|
10
|
+
noteId: string;
|
|
11
|
+
vaultPath: string;
|
|
12
|
+
accessedAt: string;
|
|
13
|
+
accessKind: "get" | "recall" | "summary";
|
|
14
|
+
score?: number;
|
|
15
|
+
}
|
|
9
16
|
export interface SessionProjectCache {
|
|
10
17
|
projectId: string;
|
|
11
18
|
/** Per-vault caches keyed by vaultPath. Built lazily per vault on first access. */
|
|
12
19
|
vaultCaches: Map<string, VaultCache>;
|
|
13
20
|
/** Projection cache shared across all cached vaults for this project. */
|
|
14
21
|
projectionsById: Map<string, NoteProjection>;
|
|
22
|
+
/** Recently inspected notes in the current MCP session. */
|
|
23
|
+
recentAccesses: SessionAccessRecord[];
|
|
24
|
+
/** Snapshots of recently inspected notes that survive cache invalidation. */
|
|
25
|
+
recentNotesByKey: Map<string, Note>;
|
|
15
26
|
/** ISO timestamp of when this cache entry was first created. */
|
|
16
27
|
lastBuiltAt: string;
|
|
17
28
|
}
|
|
@@ -57,10 +68,20 @@ export declare function getSessionCachedNote(projectId: string, vaultPath: strin
|
|
|
57
68
|
* Returns `undefined` when no cache or projection exists.
|
|
58
69
|
*/
|
|
59
70
|
export declare function getSessionCachedProjection(projectId: string, noteId: string): NoteProjection | undefined;
|
|
71
|
+
export declare function setSessionCachedNote(projectId: string, vaultPath: string, note: Note): void;
|
|
72
|
+
export declare function getRecentSessionAccessNote(projectId: string, vaultPath: string, noteId: string): Note | undefined;
|
|
60
73
|
/**
|
|
61
74
|
* Store a projection in the session cache.
|
|
62
75
|
* No-op when no active cache exists for this project.
|
|
63
76
|
*/
|
|
64
77
|
export declare function setSessionCachedProjection(projectId: string, noteId: string, projection: NoteProjection): void;
|
|
78
|
+
export declare function recordSessionNoteAccess(projectId: string, vaultPath: string, noteId: string, accessKind: "get" | "recall" | "summary", score?: number): void;
|
|
79
|
+
export declare function getRecentSessionNoteAccesses(projectId: string): Array<{
|
|
80
|
+
noteId: string;
|
|
81
|
+
vaultPath: string;
|
|
82
|
+
accessedAt: string;
|
|
83
|
+
accessKind: "get" | "recall" | "summary";
|
|
84
|
+
score?: number;
|
|
85
|
+
}>;
|
|
65
86
|
export {};
|
|
66
87
|
//# sourceMappingURL=cache.d.ts.map
|
package/build/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIxC,UAAU,UAAU;IAClB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,yEAAyE;IACzE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/build/cache.js
CHANGED
|
@@ -18,6 +18,8 @@ function ensureActiveProjectCache(projectId) {
|
|
|
18
18
|
projectId,
|
|
19
19
|
vaultCaches: new Map(),
|
|
20
20
|
projectionsById: new Map(),
|
|
21
|
+
recentAccesses: [],
|
|
22
|
+
recentNotesByKey: new Map(),
|
|
21
23
|
lastBuiltAt: new Date().toISOString(),
|
|
22
24
|
};
|
|
23
25
|
sessionCaches.activeProject = fresh;
|
|
@@ -33,7 +35,14 @@ function ensureActiveProjectCache(projectId) {
|
|
|
33
35
|
export function invalidateActiveProjectCache() {
|
|
34
36
|
if (sessionCaches.activeProject) {
|
|
35
37
|
debugLog("cache:invalidate", `project=${sessionCaches.activeProject.projectId}`);
|
|
36
|
-
sessionCaches.activeProject =
|
|
38
|
+
sessionCaches.activeProject = {
|
|
39
|
+
projectId: sessionCaches.activeProject.projectId,
|
|
40
|
+
vaultCaches: new Map(),
|
|
41
|
+
projectionsById: new Map(),
|
|
42
|
+
recentAccesses: sessionCaches.activeProject.recentAccesses,
|
|
43
|
+
recentNotesByKey: sessionCaches.activeProject.recentNotesByKey,
|
|
44
|
+
lastBuiltAt: new Date().toISOString(),
|
|
45
|
+
};
|
|
37
46
|
}
|
|
38
47
|
}
|
|
39
48
|
/**
|
|
@@ -42,9 +51,12 @@ export function invalidateActiveProjectCache() {
|
|
|
42
51
|
*/
|
|
43
52
|
export function getActiveProjectCache(projectId) {
|
|
44
53
|
const cache = sessionCaches.activeProject;
|
|
45
|
-
if (cache
|
|
46
|
-
return
|
|
47
|
-
|
|
54
|
+
if (!cache || cache.projectId !== projectId)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (cache.vaultCaches.size === 0 && cache.projectionsById.size === 0) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return cache;
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
62
|
* Get the full note list for a vault from the session cache, building it lazily if needed.
|
|
@@ -136,6 +148,30 @@ export function getSessionCachedProjection(projectId, noteId) {
|
|
|
136
148
|
return undefined;
|
|
137
149
|
return cache.projectionsById.get(noteId);
|
|
138
150
|
}
|
|
151
|
+
export function setSessionCachedNote(projectId, vaultPath, note) {
|
|
152
|
+
const cache = ensureActiveProjectCache(projectId);
|
|
153
|
+
cache.recentNotesByKey.set(`${vaultPath}::${note.id}`, note);
|
|
154
|
+
const existing = cache.vaultCaches.get(vaultPath);
|
|
155
|
+
if (existing) {
|
|
156
|
+
existing.notesById.set(note.id, note);
|
|
157
|
+
if (!existing.noteList.some((entry) => entry.id === note.id)) {
|
|
158
|
+
existing.noteList.push(note);
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
cache.vaultCaches.set(vaultPath, {
|
|
163
|
+
notesById: new Map([[note.id, note]]),
|
|
164
|
+
noteList: [note],
|
|
165
|
+
embeddings: [],
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
export function getRecentSessionAccessNote(projectId, vaultPath, noteId) {
|
|
169
|
+
const cache = sessionCaches.activeProject;
|
|
170
|
+
if (!cache || cache.projectId !== projectId) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
return cache.recentNotesByKey.get(`${vaultPath}::${noteId}`);
|
|
174
|
+
}
|
|
139
175
|
/**
|
|
140
176
|
* Store a projection in the session cache.
|
|
141
177
|
* No-op when no active cache exists for this project.
|
|
@@ -146,4 +182,18 @@ export function setSessionCachedProjection(projectId, noteId, projection) {
|
|
|
146
182
|
return;
|
|
147
183
|
cache.projectionsById.set(noteId, projection);
|
|
148
184
|
}
|
|
185
|
+
export function recordSessionNoteAccess(projectId, vaultPath, noteId, accessKind, score) {
|
|
186
|
+
const cache = ensureActiveProjectCache(projectId);
|
|
187
|
+
cache.recentAccesses = cache.recentAccesses
|
|
188
|
+
.filter((entry) => !(entry.noteId === noteId && entry.vaultPath === vaultPath))
|
|
189
|
+
.concat({ noteId, vaultPath, accessedAt: new Date().toISOString(), accessKind, score })
|
|
190
|
+
.slice(-25);
|
|
191
|
+
}
|
|
192
|
+
export function getRecentSessionNoteAccesses(projectId) {
|
|
193
|
+
const cache = sessionCaches.activeProject;
|
|
194
|
+
if (!cache || cache.projectId !== projectId) {
|
|
195
|
+
return [];
|
|
196
|
+
}
|
|
197
|
+
return [...cache.recentAccesses].reverse();
|
|
198
|
+
}
|
|
149
199
|
//# sourceMappingURL=cache.js.map
|
package/build/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
package/build/git.d.ts
CHANGED
|
@@ -103,6 +103,9 @@ export declare class GitOps {
|
|
|
103
103
|
/** Push only — used after individual remember/update/forget commits */
|
|
104
104
|
push(): Promise<void>;
|
|
105
105
|
pushWithStatus(): Promise<PushResult>;
|
|
106
|
+
private withMutationLock;
|
|
107
|
+
private retryLockErrors;
|
|
108
|
+
private isLockError;
|
|
106
109
|
/**
|
|
107
110
|
* Get the last commit that touched a specific file.
|
|
108
111
|
* Returns null when the file has no git history or the repo is unavailable.
|
package/build/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|