Commit graph

685 commits

Author SHA1 Message Date
Philip Okugbe
e113d652df
v0.97.0 (#2606) 2026-10-24 01:26:30 +01:00
Philip Okugbe
9bf523dbd9
chore(deps): package updates (#2604) 2026-10-24 00:37:56 +01:00
Philip Okugbe
330fed2577
fix(template): stop nesting buttons in the template picker rows (#2603) 2026-10-24 00:21:50 +01:00
Philip Okugbe
90f263849a
fix: editor get started design and cache fix (#2602) 2026-10-23 23:59:47 +01:00
Philip Okugbe
1da7529c0c
chore: package updates (#2599) 2026-10-23 01:17:53 +01:00
Philip Okugbe
2d24a12867
fix(base): show embed controls on the pending skeleton (#2594) 2026-10-21 20:06:49 +01:00
Philip Okugbe
ded9b7ca9f
New Crowdin updates (#2590) 2026-10-19 19:54:26 +01:00
Philip Okugbe
c4bf378eae
feat: public GitHub unfurls and base embed paste (#2589) 2026-10-19 15:45:33 +01:00
Philip Okugbe
744c82bdf8
New Crowdin updates (#2584) 2026-10-16 12:53:55 +01:00
Philip Okugbe
6852e0427e
feat: add GitHub, GitLab, Jira, Linear, Figma, Azure Devops integrations (#2547) 2026-10-16 01:26:42 +01:00
Philip Okugbe
7300ab4d1d
feat(attachments): let space admins delete page attachments (#2583) 2026-10-15 17:22:07 +01:00
Philip Okugbe
00226f6b93
fix: client asset chunk prefetch (#2582)
* fix(client): reload once when a lazy chunk fails to load

* fix(client): show a fallback instead of a blank page when a route crashes

* fix(server): return 404 for missing client assets instead of the app shell

* fix(server): mark the missing-asset 404 as no-store

* fix(client): skip chunk reloads while offline and widen the cooldown

* perf(client): add lazyRoute and a background route prefetch

* perf(client): prefetch every route in the background after startup

- replaces the 3 s editor warm-up
- skipped on share, public docs and PDF render pages, and with Data Saver on

* fix(client): only auto-reload when a chunk fails to download

- an error thrown while a route module runs no longer reloads the tab, so a broken route can't reload every new tab once routes are prefetched

* fix(client): don't reload the tab when a background route prefetch fails

- the route recovers when it is actually opened, so a prefetch failure no longer reloads mid-edit or replaces a navigation in progress

* perf(client): skip route prefetch on OAuth consent and in dev

* perf(client): prefetch non-route lazy components in the background

* fix(client): stop the prefetch on failure and retry the stylesheets it failed to load

* perf(client): prefetch the page editor before other lazy components
2026-10-15 17:10:13 +01:00
Philip Okugbe
db104b79eb
fix(editor): apply title save response after the title editor is destroyed (#2576) 2026-10-15 13:31:11 +01:00
Philip Okugbe
6950a126bd
New Crowdin updates (#2546) 2026-10-14 01:41:38 +01:00
Philip Okugbe
3934cb911f
fix: WebSocket improvements (#2573) 2026-10-13 23:25:07 +01:00
Philip Okugbe
2dafbf0ea7
fix(deps): update packages with security advisories (#2567)
- server: @nestjs/* 11.2.7, @modelcontextprotocol/sdk 1.32.1,
  @fastify/multipart 10.1.2, pino-pretty 13.2.0, socket.io 4.8.4
- client: axios 1.20.0, katex 0.19.0, i18next-http-backend 4.0.2
- root: nx 23.3.0, concurrently 10.0.6, dompurify 3.4.16
- overrides: fastify 5.12.5, fast-uri 3.1.8, ip-address 10.7.3,
  brace-expansion@^5 5.0.12, smol-toml 1.9.0, katex 0.19.0
- re-resolve handlebars, proxy-addr, engine.io, @fastify/busboy,
  source-map-js, fast-copy, brace-expansion@1 to patched versions
2026-10-11 16:08:50 +01:00
Philip Okugbe
211d557a2e
fix(ai-chat): bind chat input submit to the current editor instance (#2566) 2026-10-11 16:05:47 +01:00
Philip Okugbe
297cc29bba
feat: add Template option to empty page get-started row (#2565) 2026-10-11 16:02:33 +01:00
Philip Okugbe
59b6142ecd
fix: hide comment marks on presentation slides (#2562) 2026-10-11 15:04:19 +01:00
Philip Okugbe
d35e8f0cf9
feat(presentation): laser pointer and max width (#2561)
* feat: add laser pointer

* feat: increase slide max width to 1440px

* fix: show presentation errors inside the modal
2026-10-11 14:47:18 +01:00
Salihu
88e9255e8b
feat: Page presentation mode (#2484)
* page presentation init

* fix minor issues

* minor fixes

* improve slides display

* fix: presentation min width

* fixes:fullscreen support,  Only change slides with controls and keyboard
- Refresh controls ui
- Interactive slide content (tabs, toggles, links, code copy, checkboxes,
  media, text selection) works without side effects
- Scrolling no longer stalls at fractional zoom or display scaling
- Keys pressed inside pop-ups opened from slide content no longer change slides
- Subpages blocks list their children and heading links copy the real anchor
- Renaming the page no longer closes the presentation
- Whitespace, non-breaking space, hard break and page break blocks no longer
  produce blank slides
- Title slide wraps long words and keeps the direction of RTL titles
- The dialog has an accessible name, slide changes are announced and slide
  content is labelled
- Other fixes

* fix(subpages): show a sidebar-style dot for subpages without children

* fix(base): share one realtime subscription per base across mounted views

- Embedded bases keep receiving realtime updates after a second view of the
  same base (presentation, history) unmounts
- Row and schema events are no longer applied twice while two views of a
  base are mounted

---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-10-11 13:52:47 +01:00
Philip Okugbe
83c70e4d00
fix: crash when previewing pages in trash (#2559) 2026-10-11 00:10:29 +01:00
Salihu
c08d1d3539
feat: multi tab node (#2381)
* init multi-tab-node

* dragging logic

* tabs menu

* tabs menu

* markdown import

* markdown export

* improve markdown import and export

* fix exponential backtracking in regex

* fix exponential backtracking in regex

* WIP

* fix: add docx schema

* feat(editor): rework tabs block state, controls and editing

- Keep the active tab in per-viewer plugin state, not in the document
- Update hidden-tab decorations incrementally; diff whole-doc remote updates
- Replace the tabs bubble menu with an in-block toolbar and per-tab actions menu
- Add rename, duplicate, move left/right and delete tab actions
- Rename a tab by double-clicking it; add tabs from a strip button
- Hide inactive tabs with hidden="until-found" and open them on beforematch
- Open the containing tab for search, TOCs, comment links and hash scrolls
- Disallow tabs inside tabs: hide slash item, flatten pastes, refuse drops
- Stop content copied or dragged out of a tab from creating a new tabs block
- Keep the selection anchor and land at the panel end when arrowing into tabs
- Let Enter add a line at the end of a tab instead of leaving the block
- Fix drag handle moves of custom nodes inside tab panels
- Keep editor focus on toolbar clicks so copy and delete work
- Export tabs to Markdown as level 4 headings; drop the tabs Markdown syntax
- Share node copy-to-clipboard between the columns and tabs toolbars
- Raise inactive tab label contrast

* fix(editor): show a compact drag preview for the tabs block

- Add a hidden data-drag-preview chip with the tab labels to the tabs view
- The global drag handle uses it instead of snapshotting the block and its neighbours
- Style the chip outside the editor scope since the handle clones it into the body

* fix(editor): hide the drop cursor while reordering tabs in the tab strip

* fix: better tabs selection, rendering and ids
- Keep selections out of hidden tabs and map chained tab updates
- Drive the tab strip from decorations instead of per-keystroke lookups
- Repair empty and repeated tab ids

---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-10-10 23:50:44 +01:00
Salihu
2e3fdbbff4
feat: subpages component improvements (#2488)
* expand subpages node functionality
* minor fixes
* minor fix
* refactor: redesign subpages view
* fix link color
---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-10-09 14:49:47 +01:00
Philip Okugbe
42e07d8019
feat: comments deep link (#2550)
* feat: comments deeplinks
* cleanup
* feat: add support to in-app notification
2026-10-09 01:07:01 +01:00
Philip Okugbe
d3a0c9bfdf
fix(base): export CSV with the active view's filter (#2541)
The export button only sent the page id, so filtered views still
downloaded every row. Send the view's current (including unsaved draft)
filter, and bump the ee submodule for server-side support.
2026-10-05 02:18:58 +01:00
Philip Okugbe
01a139c3d1
fix: skip page update notifications for users viewing the page (#2530)
* fix: drop malformed awareness before broadcast

* clear interval

* pass userId and avatar to awareness

* fix: skip page update notifications for editors and users viewing the page
2026-09-30 01:10:16 +01:00
Philip Okugbe
7bef7b1a00
chore: package updates (#2499) 2026-09-20 21:30:44 +01:00
Philipinho
6205bbeb90 fix: page tree reordering 2026-09-08 16:46:38 +01:00
Philipinho
9b3e5dd3dc v0.96.0 2026-09-08 14:58:41 +01:00
Philip Okugbe
7c368c86c6
fix: h1 heading weight in editor (#2481)
* fix: h1 heading weight in editor
* cleanup
2026-09-08 13:24:57 +01:00
Philip Okugbe
1397e109ed
New Crowdin updates (#2472) 2026-09-08 13:19:09 +01:00
Salihu
949072744d
fix: align input shortcuts (#2467)
* align input shortcuts

* minor fix

* minor fix
2026-09-08 01:54:41 +01:00
Philip Okugbe
89e27a1a07
fix(editor): allow gap cursors between top-level blocks (#2477) 2026-09-06 19:22:28 +01:00
Philip Okugbe
27fa9af959
fix: public page print (#2476)
* fix pdf-print for public pages

* fix print in dark mode
2026-09-05 17:28:45 +01:00
Salihu
84e1e56cf6
feat: jump to search (#2453)
* jump to search init

* support multiple text matching

* search navigation dialog

* remove search text

* typesense support

* typesense support

* add search guard

* use search key check

* minor fix

* minor fix

* fix: clean up jump search state on close

---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-09-05 16:06:52 +01:00
Philip Okugbe
876f3da1b2
feat(beta): public spaces (#2473) 2026-09-05 11:52:10 +01:00
Philip Okugbe
0d69d48c52
feat(ee): SIEM (#2471) 2026-09-04 14:53:14 +01:00
Philip Okugbe
622d085530
New Crowdin updates (#2435) 2026-08-27 12:43:19 +01:00
Philip Okugbe
d92716d82f
feat: search group members (#2445) 2026-08-27 12:43:08 +01:00
Philip Okugbe
c3d9a19545
New Crowdin updates (#2332) 2026-08-26 14:08:10 +01:00
Philipinho
214a73b6a0 refactor: rename MCP oauth-only setting to enforceMcpOauth 2026-08-26 13:45:28 +01:00
Philip Okugbe
e56de8eb6c
feat(ee): MCP OAuth (#2432)
* feat: mcp oauth

* fix: small refactor

* fix: cleanup consent
2026-08-26 12:55:30 +01:00
Philip Okugbe
b29e130f26
fix: enhance lightbox (#2429)
* fix: close on click outside; smaller icon size

* fix: make ALT more visible
2026-08-26 02:24:02 +01:00
Philip Okugbe
56474e5b70
fix: remove client compression script (#2428) 2026-08-25 17:31:49 +01:00
Philip Okugbe
a0ec93506c
chore: compress and lazy load client code (#2425) 2026-08-25 03:29:56 +01:00
Philipinho
702f8b7a41 fix: local editor cache 2026-08-25 02:54:38 +01:00
Salihu
95cef61927
fix: rework filtering behaviour (#2413)
* rework filtering behaviour

* fix classification bug
2026-08-25 02:52:24 +01:00
Salihu
7bd73f77a4
feat: lightbox media display (#2420)
* lightbox media display init

* revert uninteded changes

* load page media more accurately

* restrict lock file changes to installed packages

* revert changes in lock file

* update lockfile

* - support diagrams
- support readonly mode
- use softer backdrop
- other enhancments

---------

Co-authored-by: Philipinho <16838612+Philipinho@users.noreply.github.com>
2026-08-25 02:43:19 +01:00
Salihu
3a25336d3d
fix: display subpages correctly on first load (#2423) 2026-08-25 01:39:55 +01:00