Commit graph

1027 commits

Author SHA1 Message Date
Forgejo Actions
678615d162 chore(sync): sync updates from docmost/docmost 2026-10-25 04:00:30 +00:00
Philip Okugbe
e113d652df
v0.97.0 (#2606) 2026-10-24 01:26:30 +01:00
Philip Okugbe
f34c33f3c3
chore(deps): package updates (#2605)
- undici 7.30.1
- fast-uri 3.1.9
- happy-dom 21.0.4
- remove unused @tiptap/html
2026-10-24 00:51:50 +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
b007d8cb21
chore(deps): package updates (#2601) 2026-10-23 12:53:37 +01:00
Philip Okugbe
1da7529c0c
chore: package updates (#2599) 2026-10-23 01:17:53 +01:00
Philip Okugbe
9250ca8305
fix: default page content format to json (#2596) 2026-10-21 20:48:49 +01:00
Philip Okugbe
611452112d
fix: email throttle (#2595)
* fix: update throttle config
* sync
2026-10-21 20:45:52 +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
Forgejo Actions
58b9418ebd chore(sync): sync updates from docmost/docmost 2026-10-18 04:00:28 +00: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
a306d92213
refactor: resolve client IP through trusted proxies (#2580)
* refactor: resolve client IP through trusted proxies

- replace fastify-ip with an onRequest hook that sets request.ip from trusted proxy hops
- read CF-Connecting-IP only when the hop is a Cloudflare edge
- strip ports and validate the address before it is stored or used for rate limits
- log the resolved IP in request log lines
- add @fastify/proxy-addr as a direct dependency

* refactor(collab): resolve client IP through trusted proxies

- set request.ip with the same onRequest hook as the main server
- carry the resolved client IP on collab WebSocket connections
2026-10-15 17:07:52 +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
c1305f002e
chore(mcp): migrate to @modelcontextprotocol/server v2 (#2568) 2026-10-11 16:42:27 +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
6a06d7fd7d
fix: give docx export tables real column widths and cell padding (#2564)
- Add Word's default 108 twip left and right cell margins
2026-10-11 15:07:26 +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
Forgejo Actions
fec7ca32ac chore(sync): sync updates from docmost/docmost 2026-10-11 04:00:28 +00: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
Forgejo Actions
b48cb476b4 chore(sync): sync updates from docmost/docmost 2026-10-04 04:00:30 +00:00
Philip Okugbe
2e0538c70e
fix: throttle tracking bug (#2537) 2026-10-04 01:14:02 +01:00
Philip Okugbe
b6434371ed
fix: add markdown attribute to details blocks in markdown export (#2533) 2026-09-30 01:36:08 +01:00
Philip Okugbe
f4caf0ba02
fix: preserve table header row in markdown export (#2532) 2026-09-30 01:19:16 +01:00
Philip Okugbe
a78e52b8e6
fix: copy page labels when duplicating pages (#2531) 2026-09-30 01:18:06 +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
870b71d2aa
fix search limit and performance (#2529) 2026-09-29 20:27:25 +01:00
Philip Okugbe
0e839c8cd6
chore(deps): package updates (#2528)
* chore(deps): fix audit advisories in undici, nodemailer, ip-address and smol-toml

* chore: pnpm version update
2026-09-29 19:44:57 +01:00
Forgejo Actions
213dcad090 chore(sync): sync updates from docmost/docmost 2026-09-27 04:00:29 +00:00
Philip Okugbe
7bef7b1a00
chore: package updates (#2499) 2026-09-20 21:30:44 +01:00
ef33e7c37b feat(ee): unlock Enterprise Edition features and entitlements
Some checks failed
Deploy Docmost Wiki / Deploy to cisystem (push) Failing after 12m51s
2026-09-12 21:10:02 +05:30
1f12f0338e feat: configure docmost deployment for cisystem with s3 wikimedia prefix and forgejo workflows
Some checks failed
Deploy Docmost Wiki / Deploy to cisystem (push) Failing after 4s
2026-09-12 11:36:56 +05:30
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