diff --git a/CHANGELOG.md b/CHANGELOG.md index 1da1cc8..c874eb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ All notable changes to this project will be documented in this file. +## [1.3.15] - 2026-01-31 + +### Fixed + +- **ProseMirror Mark Types:** Fixed mark type names to match Outline schema + - `bold` → `strong` + - `italic` → `em` + - Error was: "RangeError: There is no mark type bold in this schema" + ## [1.3.14] - 2026-01-31 ### Added diff --git a/CLAUDE.md b/CLAUDE.md index 4b58fba..c2b0e0c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co MCP server for direct PostgreSQL access to Outline Wiki database. Follows patterns established by `mcp-desk-crm-sql-v3`. -**Version:** 1.3.14 +**Version:** 1.3.15 **Total Tools:** 164 tools across 33 modules **Production:** hub.descomplicar.pt (via SSH tunnel) diff --git a/CONTINUE.md b/CONTINUE.md index 3ffe0c8..28b8c5a 100644 --- a/CONTINUE.md +++ b/CONTINUE.md @@ -1,7 +1,7 @@ # MCP Outline PostgreSQL - Continuacao de Testes **Ultima Sessao:** 2026-01-31 (actualizado) -**Versao Actual:** 1.3.14 +**Versao Actual:** 1.3.15 **Progresso:** ~95/164 tools testadas (58%) - **CÓDIGO VALIDADO** --- diff --git a/package-lock.json b/package-lock.json index 017c5e1..1b28168 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mcp-outline-postgresql", - "version": "1.3.14", + "version": "1.3.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mcp-outline-postgresql", - "version": "1.3.14", + "version": "1.3.15", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.0.0", diff --git a/package.json b/package.json index 2fa6ff3..bdd2de7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mcp-outline-postgresql", - "version": "1.3.14", + "version": "1.3.15", "description": "MCP Server for Outline Wiki via PostgreSQL direct access", "main": "dist/index.js", "scripts": { diff --git a/src/index-http.ts b/src/index-http.ts index 93063ba..5eb09fd 100644 --- a/src/index-http.ts +++ b/src/index-http.ts @@ -68,7 +68,7 @@ async function main() { JSON.stringify({ status: 'ok', transport: 'streamable-http', - version: '1.3.14', + version: '1.3.15', sessions: sessions.size, stateful: STATEFUL, tools: allTools.length @@ -101,7 +101,7 @@ async function main() { // Create MCP server const server = createMcpServer(pgClient.getPool(), { name: 'mcp-outline-http', - version: '1.3.14' + version: '1.3.15' }); // Track session if stateful diff --git a/src/index.ts b/src/index.ts index 012f2eb..904003c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -39,7 +39,7 @@ async function main() { // Create MCP server with shared configuration const server = createMcpServer(pgClient.getPool(), { name: 'mcp-outline-postgresql', - version: '1.3.14' + version: '1.3.15' }); // Connect stdio transport diff --git a/src/server/create-server.ts b/src/server/create-server.ts index 75670c1..de71560 100644 --- a/src/server/create-server.ts +++ b/src/server/create-server.ts @@ -122,7 +122,7 @@ export function createMcpServer( ): Server { const server = new Server({ name: config.name || 'mcp-outline-postgresql', - version: config.version || '1.3.14' + version: config.version || '1.3.15' }); // Set capabilities (required for MCP v2.2+) diff --git a/src/utils/markdown-to-prosemirror.ts b/src/utils/markdown-to-prosemirror.ts index 01f5cc4..d5e660a 100644 --- a/src/utils/markdown-to-prosemirror.ts +++ b/src/utils/markdown-to-prosemirror.ts @@ -177,25 +177,25 @@ function parseInlineContent(text: string): ProseMirrorNode[] { continue; } - // Bold + // Bold (Outline uses "strong" not "bold") const boldMatch = remaining.match(/^\*\*([^*]+)\*\*/) || remaining.match(/^__([^_]+)__/); if (boldMatch) { nodes.push({ type: 'text', text: boldMatch[1], - marks: [{ type: 'bold' }] + marks: [{ type: 'strong' }] }); remaining = remaining.slice(boldMatch[0].length); continue; } - // Italic + // Italic (Outline uses "em" not "italic") const italicMatch = remaining.match(/^\*([^*]+)\*/) || remaining.match(/^_([^_]+)_/); if (italicMatch) { nodes.push({ type: 'text', text: italicMatch[1], - marks: [{ type: 'italic' }] + marks: [{ type: 'em' }] }); remaining = remaining.slice(italicMatch[0].length); continue; @@ -289,9 +289,11 @@ function contentToMarkdown(content?: ProseMirrorNode[]): string { for (const mark of node.marks) { switch (mark.type) { case 'bold': + case 'strong': text = `**${text}**`; break; case 'italic': + case 'em': text = `*${text}*`; break; case 'code_inline':