5 Commits
Author SHA1 Message Date
aleleba 8332dc9679 fixing the missing update to version.
Docker Build & Push / build-and-push (push) Successful in 10m55s
2026-06-11 06:05:03 +00:00
aleleba 45958ec063 fix: render markdown checklists as task lists on update_page
Markdown checklist items (`- [ ]` / `- [x]`) were rendered as plain
bullet points instead of checkboxes. The client-side conversion pipeline
(marked -> generateJSON) dropped the checkbox because:

- tiptapExtensions did not register TaskList/TaskItem.
- marked emits `<ul><li><input type="checkbox">`, but TipTap's parseHTML
  rules only match `ul[data-type="taskList"]` / `li[data-type="taskItem"]`
  with the checked state in `data-checked`.

Register TaskList/TaskItem and add normalizeTaskLists() to rewrite marked's
checkbox markup into the format TipTap expects before generateJSON runs.
collaboration.ts now reuses markdownToTiptapJson() so update_page and
comments share the same conversion.
2026-06-11 06:00:02 +00:00
alelebaandClaude Sonnet 4.5 8a533d028d fix: remove worker mutex and increase collab timeout to 120s
- Remove workerBusy promise chain (mutex) in src/index.ts: each
  StreamableHTTPServerTransport is stateless and per-request, so
  concurrent handling within a worker is safe. Eliminates request
  starvation when long page writes are in flight.
- Raise the Hocuspocus safety timeout in collaboration.ts from 25 s
  to 120 s, giving large documents enough time to complete the Yjs
  sync phase before the hard abort fires.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-01 20:24:19 +00:00
alelebaandClaude Sonnet 4.6 007c676ff2 feat: replace StdioTransport with StreamableHTTP + Node.js cluster
Integrates StreamableHTTP natively into the MCP server instead of
using StdioServerTransport. Adds Node.js cluster support so multiple
workers can handle concurrent MCP clients simultaneously.

Changes:
- src/index.ts: replace StdioServerTransport with StreamableHTTPServerTransport
  + Node.js cluster (primary forks N workers, each worker handles HTTP
  requests on :8080/mcp with a serializing mutex)
- Dockerfile: multi-stage build (node:22-slim builder + runtime)
- .gitea/workflows/docker-build.yml: CI/CD pipeline — on push to main,
  builds and pushes Docker image to gitea.p-lao.com registry

Environment variables:
- MCP_WORKERS (default: 4) — number of cluster workers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 03:15:12 +00:00
alelebaandClaude Sonnet 4.6 c520713291 feat: add comment support (list, get, create, update, delete, check_new)
Adds 6 new MCP tools for managing Docmost page comments:
- list_comments: list all comments on a page (content as Markdown)
- get_comment: retrieve a single comment by ID
- create_comment: create page-level or inline comment (Markdown input)
- update_comment: update comment content (creator only)
- delete_comment: delete a comment (creator or space admin)
- check_new_comments: poll for new comments since a timestamp

Implementation details:
- New markdownToTiptapJson() utility in src/lib/markdown-to-json.ts
- New filterComment() in src/lib/filters.ts
- Supports inline comments, threaded replies via parentCommentId
- README updated with comment tools documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 02:45:43 +00:00