Commit graph

1002 commits

Author SHA1 Message Date
Philipinho
1a897faaa2 exclude events 2026-03-01 19:13:56 +00:00
Philipinho
6f1a91cc05 sync 2026-03-01 18:38:43 +00:00
Philip Okugbe
60848ea903
feat(ee): mcp (#1976)
* feat: MCP
* sync
* sync
2026-03-01 18:37:39 +00:00
Philip Okugbe
2309d1434b
feat: support cross-space page mentions (#1979) 2026-03-01 17:14:10 +00:00
Philipinho
dcc2bacb22 sync 2026-03-01 01:31:10 +00:00
Philip Okugbe
69d7532c6c
feat(ee): audit logs (#1977)
feat: clickhouse driver
* sync
* updates
2026-03-01 01:29:03 +00:00
Philip Okugbe
85ce0d32bf
New Crowdin updates (#1960)
* New translations translation.json (Russian)

* New translations translation.json (French)

* New translations translation.json (Spanish)

* New translations translation.json (German)

* New translations translation.json (Italian)

* New translations translation.json (Japanese)

* New translations translation.json (Korean)

* New translations translation.json (Dutch)

* New translations translation.json (Russian)

* New translations translation.json (Ukrainian)

* New translations translation.json (Chinese Simplified)

* New translations translation.json (English)

* New translations translation.json (Portuguese, Brazilian)

* New translations translation.json (French)

* New translations translation.json (Spanish)

* New translations translation.json (German)

* New translations translation.json (Italian)

* New translations translation.json (Japanese)

* New translations translation.json (Korean)

* New translations translation.json (Dutch)

* New translations translation.json (Russian)

* New translations translation.json (Ukrainian)

* New translations translation.json (Chinese Simplified)

* New translations translation.json (Portuguese, Brazilian)

* New translations translation.json (French)

* New translations translation.json (Spanish)

* New translations translation.json (German)

* New translations translation.json (Italian)

* New translations translation.json (Japanese)

* New translations translation.json (Korean)

* New translations translation.json (Dutch)

* New translations translation.json (Russian)

* New translations translation.json (Ukrainian)

* New translations translation.json (Chinese Simplified)

* New translations translation.json (English)

* New translations translation.json (Portuguese, Brazilian)

* New translations translation.json (Dutch)

* New translations translation.json (Dutch)

* New translations translation.json (French)

* New translations translation.json (Spanish)

* New translations translation.json (German)

* New translations translation.json (Italian)

* New translations translation.json (Japanese)

* New translations translation.json (Korean)

* New translations translation.json (Russian)

* New translations translation.json (Ukrainian)

* New translations translation.json (Chinese Simplified)

* New translations translation.json (Portuguese, Brazilian)
2026-02-28 01:24:57 +00:00
Philip Okugbe
fc0997fd90
feat: editor attachment paste handling (#1975)
* reupload attachments if uploaded to a different page
* use image dimensions on paste/DnD

* tooltips withinPortal:false

* isolating attribute
2026-02-28 01:24:19 +00:00
Philipinho
df64de5306 fix focus 2026-02-27 01:38:43 +00:00
Philip Okugbe
ea44468fad
feat: editor inline status node (#1973)
* inline status node

* fix alignment

* fix

* typed storage

* fix math block popup on select all
2026-02-27 01:34:03 +00:00
Philip Okugbe
59e945562d
feat(ee): page-level access/permissions (#1971)
* Add page_hierarchy table

* feat(ee): page-level permissions

* pagination

* rename migration
fixes

* fix

* tabs

* fix theme

* cleanup

* sync

* page permissions notification
* other fixes

* sharing disbled

* fix column nodes

* toggle error handling
2026-02-26 19:49:10 +00:00
Philipinho
22f33bab7c cleanups 2026-02-25 22:41:54 +00:00
Philipinho
e0a8521566 enhance columns 2026-02-25 22:31:01 +00:00
Philip Okugbe
b5803f42da
xwiki html import cleanup (#1969) 2026-02-24 15:53:38 +00:00
Olivier Lambert
5de1c8e3ed
fix: inline code input rule deletes character before opening backtick (#1923)
The upstream TipTap Code extension input rule regex /(^|[^`])`([^`]+)`(?!`)$/
uses a capture group (^|[^`]) that includes the character preceding the
opening backtick in the full match. When markInputRule processes this,
it deletes everything from the match start to the code content, which
removes that preceding character along with the backtick delimiters.

For example, typing foo(`bar` would result in foo`bar` (formatted)
instead of the expected foo(`bar` (formatted) — the ( is lost.

Fix: disable the built-in Code extension from StarterKit and register it
separately with a corrected regex that uses a lookbehind assertion
(?:^|(?<=[^`])) instead of a capture group. The lookbehind asserts the
preceding character without including it in the match, so markInputRule
only deletes the backtick delimiters.

Functionally tested on Firefox and Chrome.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 15:51:24 +00:00
Philip Okugbe
ef87210b3d
feat: editor UI refresh and enhancements (#1968)
* feat: new image menu
* switch to resizable side handles
* use pixels

* refactor excalidraw and drawio menu

* support image resize undo

* video resize

* callout menu refresh

* refresh table menus

* fix color scheme

* fix: patch @tiptap/core ResizableNodeView to prevent resize sticking after mouseup

* feat: columns

* notes callout

* focus on first column

* capture tab key in column

* fix print

* hide columns menu when some nodes are focused

* fix print

* fix columns

* selective placeholder

* fix blockquote

* quote

* fix callout in columns
2026-02-24 15:22:37 +00:00
Philipinho
c172d3bd5e fix 2026-02-21 00:43:49 +00:00
Philip Okugbe
53132acb0a
fix: redirect to original page after re-authentication (#1959)
* fix: redirect to original page after re-authentication

When a session expires, the current URL is now preserved as a query
parameter on the login page. After successful login (including MFA
flows), the user is redirected back to their original page instead of
always landing on /home.

* secure

---------

Co-authored-by: Julien Fontanet <julien.fontanet@isonoe.net>
2026-02-21 00:02:23 +00:00
b4sh2
d6472f0876
Merge commit from fork
Co-authored-by: b4sh2 <b4sh2@users.noreply.github.com>
2026-02-20 16:59:44 +00:00
Philipinho
873c963043 fix db types duplication 2026-02-19 22:34:07 +00:00
Julien Fontanet
03a70d768a
fix: allow deleting last character in headings (#1954)
The copy-link decoration widget (contentEditable="false") injected
inside headings prevented browsers from deleting the last remaining
character via Backspace or Delete keys. Only show the widget when the
heading has more than one character of content.
2026-02-18 13:48:15 +00:00
Philip Okugbe
0aeaa43112
feat: replace sharp with client-side icon resize (#1951) 2026-02-16 19:48:19 +00:00
Philip Okugbe
92d5d0b237
New Crowdin updates (#1950)
* New translations
2026-02-16 04:22:40 +00:00
Philipinho
0ce74d34de env validation 2026-02-16 04:11:19 +00:00
Philipinho
00b5328676 fix page error boundary 2026-02-16 04:06:41 +00:00
Philipinho
2ebdc2baea empty states 2026-02-16 00:33:16 +00:00
Philip Okugbe
621ef4f0cf
New Crowdin updates (#1948)
* New translations
2026-02-15 23:10:32 +00:00
Philipinho
26b9338da5 sync 2026-02-15 23:04:18 +00:00
Philipinho
618f56577d turn into callout option 2026-02-15 22:51:23 +00:00
Philipinho
0a05ce6133 enhance editor bubble menu 2026-02-15 22:39:42 +00:00
Philipinho
cb9d6be3b9 sync 2026-02-15 17:07:27 +00:00
Arek Nawo
b76f5adaad
feat(ee): AI menu (#1912)
* feat(ee): AI menu

* - Add insert below and copy option

* prebuild @editor-ext

* sanitize output

* clear existing output

* switch to menu component

* refactor directory

* separator

* refactor directory

* support more languages

* pass markdown to model

* fix: close AI menu on page change

* enhance text input and preview styling

* fix: Use absolute positioning for the AI menu

* make preview scrollable

* activation controls

* enhance bubble menu

* sync

* set width

* fix line break

* switch terminologies

* cloud

* buffer

---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-02-14 20:58:08 -08:00
Philipinho
41fa77b29d sync 2026-02-14 20:03:35 -08:00
Philip Okugbe
05b3c65b0f
feat: notifications (#1947)
* feat: notifications
* feat: watchers

* improvements

* handle page move for watchers

* make watchers non-blocking

* more
2026-02-14 20:00:38 -08:00
Philipinho
e0ab9d9b5e override package 2026-02-14 10:37:11 -08:00
Philipinho
55280db672 dark color theme tweaks 2026-02-14 10:35:03 -08:00
Philipinho
32bbc6911f override qs 2026-02-12 11:46:28 -08:00
Philipinho
5814542128 update lock file 2026-02-12 11:41:24 -08:00
Philip Okugbe
18b5781522
feat(API): page content update and retrieval (#1937)
* feat: page content update and retrieval output

* import module

* refactor naming
* support prepend

* rename contentOperation -> operation

* dry

* add yjs utils
2026-02-12 11:13:47 -08:00
Philipinho
49ab9875ba fix tiptap version conflicts 2026-02-11 22:47:25 -08:00
Philipinho
25f4b8c2b4 fix 2026-02-11 17:47:30 -08:00
Philipinho
4d43f86c51 update deps 2026-02-11 17:43:13 -08:00
Philip Okugbe
f170ede8da
fix(deps): override packages (#1936)
* override packages
2026-02-11 16:48:26 -08:00
Philipinho
7861b5b186 fix: add RedisModule to CollabAppModule 2026-02-09 18:50:31 -08:00
Philipinho
3a9bdfbb06 fix(deps): update vite and nx 2026-02-09 18:32:09 -08:00
Philipinho
ab7999a946 v0.25.3 2026-02-09 18:27:55 -08:00
Philip Okugbe
0f02261ee6
feat: page version history improvements (#1925)
* Refactor: use queue for page history

* feat: save multiple version contributors

* display contributor avatars in history list

* fix interval
2026-02-09 18:25:35 -08:00
Philip Okugbe
aff8dba2cb
fix: diagrams SVG content length (#1928) 2026-02-09 18:20:09 -08:00
Olivier Lambert
f6a8247c48
fix: cursor jumps to end of text when editing a comment (#1924)
* fix: cursor jumps to end of text when editing a comment

When editing a comment mid-text, the cursor would jump to the end after
every keystroke, making it impossible to insert text at any position
other than the end.

Root cause: on each keystroke, the comment editor's onUpdate callback
updated parent state (setContent), which changed the defaultContent prop
passed back to CommentEditor. A useEffect watching defaultContent then
called commentEditor.commands.setContent(), which reset the entire
editor content and moved the cursor to the end.

Fix:
- Store in-progress edits in a ref instead of state to avoid triggering
  React re-renders and the prop->effect->setContent cascade
- Read from the ref when saving the comment
- Sync the ref back into state after a successful save so the read-only
  view updates immediately
- Guard the setContent useEffect to only run for read-only editors, so
  websocket-driven updates from other browsers still work

Fixes #1791

Functionally tested on Firefox and Chrome: mid-text editing, saving,
cross-browser live updates via websocket.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix stale content on edit cancel

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-02-09 15:16:40 -08:00
Philip Okugbe
7879e1f600
fix: add execCommand fallback for clipboard (#1927)
* fix: add execCommand fallback for clipboard
2026-02-09 14:44:27 -08:00