mcp-memory-bucket 0.12.3 → 0.12.4

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.
@@ -629,9 +629,11 @@ export class MemoryRepository {
629
629
  const existing = await this.get(folder, filename);
630
630
  if (!existing)
631
631
  throw new Error(`memory doc "${filename}" not found`);
632
- // `paused` is local-cache-only and must never reach writeMarkdownFile — split it off of
633
- // `existing` before spreading the rest into the frontmatter that gets written to disk.
634
- const { paused: existingPaused, ...existingForFile } = existing;
632
+ // `paused` is local-cache-only and `body` is written separately as the markdown body, not
633
+ // frontmatter — both must be split off of `existing` before spreading the rest into
634
+ // `merged`, or they'd ride along into the MemoryFrontmatter written to disk (duplicating the
635
+ // body inside its own frontmatter as a `body:` key).
636
+ const { paused: existingPaused, body: _existingBody, ...existingForFile } = existing;
635
637
  const merged = {
636
638
  ...existingForFile,
637
639
  ...frontmatter,
@@ -531,9 +531,11 @@ export class SkillRepository {
531
531
  const existing = await this.get(name, folder);
532
532
  if (!existing)
533
533
  throw new Error(`skill with name "${name}" not found`);
534
- // `paused` is local-cache-only and must never reach writeMarkdownFile — split it off of
535
- // `existing` before spreading the rest into the frontmatter that gets written to disk.
536
- const { paused: existingPaused, ...existingForFile } = existing;
534
+ // `paused` is local-cache-only and `body` is written separately as the markdown body, not
535
+ // frontmatter — both must be split off of `existing` before spreading the rest into
536
+ // `merged`, or they'd ride along into the SkillFrontmatter written to disk (duplicating the
537
+ // body inside its own frontmatter as a `body:` key).
538
+ const { paused: existingPaused, body: _existingBody, ...existingForFile } = existing;
537
539
  // Builtin skills (e.g. memory-bucket-authoring) are the server's own always-present
538
540
  // documentation, not user content — deprecating them would hide guidance every session needs.
539
541
  const deprecated = this.isBuiltin(existing) ? existing.deprecated : frontmatter?.deprecated;
@@ -585,7 +587,9 @@ export class SkillRepository {
585
587
  const newFilePath = path.join(newDir, 'SKILL.md');
586
588
  // Rename changes the skill's id, so it becomes a fresh cache row — paused (local-only,
587
589
  // keyed by id) does not carry over, same as it wouldn't survive deleting the cache file.
588
- const { paused: _existingPaused, ...existingForFile } = existing;
590
+ // `body` is split off too, for the same reason as in update() — it must not ride along into
591
+ // the SkillFrontmatter written to disk.
592
+ const { paused: _existingPaused, body: _existingBody, ...existingForFile } = existing;
589
593
  const merged = { ...existingForFile, name: newName };
590
594
  const fileContents = formatMarkdownFile(stripSourcePath(merged), existing.body);
591
595
  const remote = this.remoteFor(existing.folder);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-memory-bucket",
3
- "version": "0.12.3",
3
+ "version": "0.12.4",
4
4
  "type": "module",
5
5
  "description": "MCP server exposing skill_* (reusable coding patterns) and memory_* (point-in-time working context) tools over a markdown+frontmatter source, cached into SQLite at runtime.",
6
6
  "repository": {