Replace the composer textarea with a Tiptap markdown editor

The composer now writes markdown with bold, italic, strike, code,
links, quotes and lists, from shortcuts, markdown typing or a bubble
over the selection. @ mentions a bot and # a workspace, shown as chips
and saved as [bot:ID] / [workspace:ID]. Text selected in a message can
be quoted into the composer. User messages render as markdown, and
replies tell the bot who and what the user mentioned.

Adds an ESM stand-in for use-sync-external-store, since bunext keeps
React external in page bundles and the CommonJS original requires it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-20 05:48:23 +01:00
co-authored by Claude Opus 5.5
parent e2093b0df6
commit 1208eac6b7
51 changed files with 1618 additions and 126 deletions
+13
View File
@@ -36,10 +36,18 @@
"typescript": "^7.0.2"
},
"dependencies": {
"@floating-ui/dom": "1.8.0",
"@modelcontextprotocol/sdk": "^1.32.1",
"@moduletrace/bun-sqlite": "^1.3.0",
"@moduletrace/bunext": "^1.3.3",
"@moduletrace/twui": "^0.1.2",
"@tiptap/extension-bubble-menu": "3.32.0",
"@tiptap/extension-mention": "3.32.0",
"@tiptap/extension-placeholder": "3.32.0",
"@tiptap/markdown": "3.32.0",
"@tiptap/pm": "3.32.0",
"@tiptap/react": "3.32.0",
"@tiptap/starter-kit": "3.32.0",
"ace-builds": "^1.44.0",
"dayjs": "^1.11.23",
"gray-matter": "^4.0.3",
@@ -56,14 +64,19 @@
"react-markdown": "^10.1.0",
"react-responsive-modal": "^7.2.0",
"rehype-prism-plus": "^2.0.2",
"remark-breaks": "4.0.0",
"remark-gfm": "^4.0.1",
"sanitize-html": "^2.18.1",
"sharp": "^0.35.3",
"tailwind-merge": "^3.6.0",
"turndown": "^7.2.4",
"unpdf": "^1.8.0",
"use-sync-external-store": "file:./packages/use-sync-external-store-esm",
"web-push": "^3.6.7",
"xlsx": "^0.18.5",
"zod": "4.1.12"
},
"overrides": {
"use-sync-external-store": "file:./packages/use-sync-external-store-esm"
}
}