Commit Graph
100 Commits
Author SHA1 Message Date
Philipinho 2829491b2d fix(integration): refresh connections list after disconnect 2026-08-09 15:50:03 +01:00
Philipinho 6eb0cf2b31 fix(integration): drop cached unfurls when disconnecting an integration 2026-08-09 15:35:37 +01:00
Philipinho a351ecd77a fix(editor-ext): stop persisting unfurl data on integration link nodes 2026-08-09 15:35:05 +01:00
Philipinho 99bcf3da9d fix(integration): resolve unfurls per viewer at render time 2026-08-09 15:18:43 +01:00
Philipinho 16f7139e6f wip 2026-08-09 15:01:52 +01:00
Philipinho 21665fc0e7 fix(integration): thread requester identity through unfurl for per-user authorization 2026-08-08 23:19:23 +01:00
Philipinho c29249fe13 fix(slack): enforce space create permission for page creation handlers 2026-08-08 23:14:03 +01:00
Philipinho f471335549 feat(page): add validateCanCreate space permission check 2026-08-08 23:13:58 +01:00
Philipinho fed7d78495 wip 2026-08-08 22:25:33 +01:00
Philipinho 92b6513f39 feat(slack): audit comment replies posted from notification DMs 2026-08-08 20:50:24 +01:00
Philipinho 903151877a feat(audit): stop excluding comment creation from audit logs 2026-08-08 20:50:24 +01:00
Philipinho a740fb03f8 feat(slack): quote comment bodies and reply from notification DMs 2026-08-08 20:23:08 +01:00
Philipinho 59ec9ed1e6 fix(slack): use workspace-canonical urls for cloud multi-tenancy 2026-08-08 19:38:52 +01:00
Philipinho c37e428808 feat(slack): unfurl links based on the posting user's page access 2026-08-08 18:44:21 +01:00
Philipinho 618e1ecfc3 feat(slack): trim link unfurls to title and metadata only 2026-08-08 18:10:42 +01:00
Philipinho fe61b2e854 feat(slack): DM verification and approval notifications 2026-08-08 11:56:40 +01:00
Philipinho edf4c52b81 feat(slack): docmost notify DM notifications 2026-08-08 03:40:44 +01:00
Philipinho 6d17224cae feat(integration): add kind-filtered user link lookup by user id 2026-08-08 02:22:05 +01:00
Philipinho 9555537f27 feat(notification): emit notification.created event and add slack notify queue constants 2026-08-08 01:50:10 +01:00
Philipinho 139cc82326 Merge branch 'main' into feat/integrations
# Conflicts:
#	apps/client/src/App.tsx
#	apps/server/src/ee
#	apps/server/src/integrations/queue/constants/queue.constants.ts
#	apps/server/src/integrations/queue/queue.module.ts
#	packages/editor-ext/src/index.ts
2026-08-07 01:13:39 +01:00
Philip Okugbe 89378ee766 chore: package updates (#2378)
* chore: package updates

* remove stale overrides
2026-08-06 23:41:36 +01:00
Philip Okugbe 56ac42767a fix: stale placeholder decorations on empty paragraphs (#2374) 2026-08-02 21:07:50 +01:00
Philipinho 38380211a5 fix: dedupe duplicate packages 2026-08-01 11:57:05 +01:00
Philip Okugbe cd34594b5d fix: placeholder bug (#2373)
* fix placeholder check

* tiptap v3.29.2

* add s3 max socket env
2026-08-01 11:45:25 +01:00
Philip Okugbe 70d2ff8685 fix: increase s3 client max socket limit (#2355) 2026-07-21 22:59:25 +01:00
Philipinho 0ba2d78660 chore: update pnpm and axios 2026-07-20 20:46:02 +01:00
Philip Okugbe 3ed505d2be fix: toolbar flicker on navigation (#2352) 2026-07-20 20:36:03 +01:00
Philip Okugbe a55057db37 feat: collab hocuspocus v4 upgrade (#2351)
* WIP 1

* complete v4 migration

* add flushDelay

* feat: multiplexing

* fix: survive hocuspocus v4 message timeout

* fix: searchTerm type error
2026-07-20 20:34:09 +01:00
Philip Okugbe ce8fbb86ff chore: upgrade to node 26 and pnpm 11 (#2342)
* chore: pnpm 11

* chore: set minimum age and allowedBuilds

* Node 26; pnpm 11

* prod package overrides

* dev package overides

* cleanup
2026-07-20 19:44:51 +01:00
Philipinho e28df6ad88 fix 2026-07-04 14:11:44 +01:00
Philip Okugbe 4132dd597c New Crowdin updates (#2323) 2026-07-03 11:57:07 +01:00
Philip Okugbe 8a2c457ab9 feat: kanban group editing (#2322)
* feat: support opening property menu directly on options panel

* refactor: expose group-by property from useKanbanColumns

* feat: rename kanban group by clicking column name

* feat: edit group-by property from kanban column menu

* fix: license-gate base and kanban inserts

* fix: add missing bases strings to en-US translation file
2026-07-03 11:35:26 +01:00
Philipinho 6ff7f69137 fix: file import page title 2026-06-30 02:45:07 +01:00
Philipinho 481aae5507 sync 2026-06-30 02:36:52 +01:00
Philipinho 12d68765d9 v0.95.0 2026-06-30 01:33:34 +01:00
Philipinho 27a80b57f8 sync 2026-06-30 01:32:19 +01:00
Philip Okugbe 15bdf680d9 feat: workspace default edit preference (#2319) 2026-06-30 01:10:51 +01:00
Philipinho 96faff7175 fix: reactive subpage list 2026-06-29 19:58:22 +01:00
Philipinho 2959504470 fix tree merge 2026-06-29 19:02:21 +01:00
Philip Okugbe 37a88d171a New Crowdin updates (#2318) 2026-06-29 19:01:02 +01:00
Philip Okugbe c86d556888 fix: templates ui fixes (#2316)
* fix: editor menus
* fix: templates creation UI gating
2026-06-29 12:32:09 +01:00
Philipinho e8efef235c fix: tooltip on focus 2026-06-29 00:22:59 +01:00
Philipinho 04110884b4 better zip handling 2026-06-28 23:45:38 +01:00
Philipinho b88833277d fix: default radius 2026-06-27 21:25:45 +01:00
Philipinho 186a0bf71b sync 2026-06-27 00:49:39 +01:00
Philipinho 303b6a048f fix: cleanup title 2026-06-27 00:40:19 +01:00
Philipinho 4aa4feb41f fix: validate dto object 2026-06-27 00:15:35 +01:00
Philip Okugbe 4cf47f4538 New Crowdin updates (#2309) 2026-06-26 12:00:29 +01:00
Philipinho ccf61f3f84 fix multi-select 2026-06-26 11:54:21 +01:00
Philipinho d469558c1e sync 2026-06-25 01:39:31 +01:00
Philipinho fca5619eb7 fix: adjust spacing 2026-06-22 00:50:38 +01:00
Philipinho b7f1dd3a6b fix: spacing 2026-06-22 00:50:09 +01:00
Philipinho 5658d30484 sync 2026-06-21 03:09:40 +01:00
Philip Okugbe 89f13c3fbc feat(ee): bases (#2295)
* feat(ee): bases
Table and kanban UI, formula engine package, and the base-embed editor extension.

* - default status
- type fix
- error helper

* fix: base trash list handling

* feat: base nodeview menu

* feat: translation

* fix number precision

* feat(base): add focused-cell atom and cell coordinate types

* feat(base): add cell focus-ring style

* feat(base): add pure next-cell navigation helper

* feat(base): keyboard navigation controller and grid wiring

* update offerings

* feat(base): cell focus ring, click-to-focus, and gridcell ARIA

* feat(base): row ARIA index and selected state

* feat(base): seed editor value on type-to-edit for free-text cells

* feat(base): make column headers keyboard-focusable as tab stops

* fix(base): remove focus outline on grid container

* fix(base): show cell focus ring only while the grid is focused

* feat(base): keyboard-navigate the row-number column for selection

* fix(base): sync header/body horizontal scroll on header focus; expand row via Space, drop expander from tab order

* fix(base): tab from long-text editor moves to next cell instead of leaving the table

* fix(base): close view popovers on Escape regardless of focus; drop redundant property switch tab stop

* fix(base): show cell focus ring only while the grid body itself is focused

* fix(base): render view-tab rename as an inline pill so the tab band height stays put

* fix(base): refer to the feature as 'base' rather than 'database'

* fix: change permissions object shape

* license file

* fix tsconfig

* fix base cache

* fix: preserve sidebar title/icon on partial page updates

* fix: skip duplicate row fetch when opening new kanban card

* fix refetch

* fix focus

* fix spacing

* fix(base): select grid cell on mousedown to avoid stale focus ring flash

The focus ring is gated on the grid having DOM focus (.bodyGrid:focus .cellFocused), but the focusedCell atom is never cleared when the grid blurs. Clicking outside hides the ring via the :focus gate while the atom still points at the old cell.

Selection was committed on click (mouseup), while the grid receives focus on mousedown. Clicking a new cell re-focused the grid before the atom updated, briefly painting the ring on the previously selected cell. Commit selection on mousedown so the atom updates in the same event that grants focus, before the browser paints.

* fix: activate New row button via keyboard (Enter/Space)

The New row control is a role=button div with no keydown handler, so Enter/Space never triggered it. It also lives inside the grid element, whose native keydown listener caught the Enter and ran cell navigation against the previously focused cell.

Add Enter/Space activation to the button, and make the grid keyboard handler ignore keydowns that originate from a focusable child rather than the grid element itself, so in-grid controls handle their own keys.

* fix(base): keep add-property popover within viewport on mobile

Opened from the row detail modal, the create-property popover anchors to the bottom Add property button and flips upward on small screens, clipping its top (name field, formula editor) off-screen with no way to scroll to it.

Bound the dropdown to the available height with the floating-ui size middleware and give it an internal scroll container. Disable react-remove-scroll isolation on the modal so the body-portaled popover can scroll on touch while the modal scroll lock stays active.

* fix(base): enable grid cell editing on touch devices

Cells could only enter edit mode via double-click or a physical keyboard,
so touch devices had no way to edit a cell. Treat a touch/pen tap as the
edit gesture, distinguishing a tap from a scroll by movement and branching
per pointer type so mouse double-click stays unchanged. Also reveal the
row expand button on hover-less devices so the row detail view stays
reachable.

* feat(editor): add base and kanban inserts to the toolbar

* feat(base): insert row below via Shift+Enter on the primary cell

* fix(base): place caret at end instead of selecting all when editing cells

* fix(base): prevent popover inputs from losing focus on mobile in row detail modal

* fix grid cells on mobile

* sync

* fix: read-only export

* feat(base): add prefixed nanoid id schemas and generators

* feat(base): enforce strict property/choice id validation

* feat(base): make property id varchar with per-base composite pk

* feat(base): pass property id as text to cell extractors

* feat(base): scope property lookups per base and generate property ids in repo

* feat(base): generate status template choice ids as nanoid

* feat(base): generate choice ids as nanoid on the client

* chore(base): seed choice ids with nanoid

* fix(base): mint kanban choice ids as nanoid

* sync

* sync

* sync
2026-06-21 03:07:14 +01:00
Philipinho e0fdc0c178 chore: update dot ignore files 2026-06-21 02:06:39 +01:00
Philipinho e44ce2714f fix: safe editor 2026-06-20 23:12:32 +01:00
Philipinho d99d321e4a update dependencies 2026-06-20 18:24:19 +01:00
Philip Okugbe 4f202e4ab5 feat: package updates (#2300)
* package updates
* update tiptap
* fix editor crash
* fix
* update list
* fix(theme): size badges to their content
* fix mantine avatar color regression
2026-06-20 18:11:14 +01:00
Philipinho d7fdcdec80 sync 2026-06-20 14:34:12 +01:00
Philip Okugbe 4f2fbf22d4 chore: migrate to Mantine 9 and React 19 (#2293) 2026-06-20 14:28:31 +01:00
Philip Okugbe d68e241f45 feat(ee): personal spaces (#2298)
* feat(ee): personal spaces

* pref

* feat: on-demand only

* error notification
2026-06-20 14:27:41 +01:00
Philip Okugbe 510199cf04 feat(ee): docx word export (#2294)
* vendorize  prosemirror-docx - wip
* feat(ee): docx word export
* sync
2026-06-20 14:23:56 +01:00
Philip Okugbe aa5d52ad3e feat(editor): add /time slash command to insert current time (#2290) 2026-06-20 14:22:54 +01:00
Philip Okugbe 6191acfa14 fix: a11y (#2275) 2026-06-09 22:51:55 +01:00
Philipinho ef04c22aea sync 2026-05-28 16:57:59 +01:00
Philipinho b6760c63c4 fix: package updates 2026-05-28 16:39:47 +01:00
Philipinho 2b68879e72 0.90.1 2026-05-28 16:36:18 +01:00
Philipinho db32910634 fix; change inline code text color 2026-05-28 16:35:37 +01:00
Philip Okugbe 33895b0607 bug fixes (#2250)
* util

* fix page position collation

* support fixed toolbar in templates editor

* date localization

* fix clipped emoji in templates editor

* fix page updated time object

* fix flickers

* fix: remove redundant breadcrumb from destination modal
2026-05-28 16:20:37 +01:00
Philipinho 830b5b4d45 fix synced block 2026-05-25 19:17:14 +01:00
Philipinho 3e3e09133b chore(ee): bump submodule for home view re-publish on link 2026-05-23 19:03:41 +01:00
Philipinho 4c266f832a chore(ee): bump submodule for home-search submit handler 2026-05-23 19:00:55 +01:00
Philipinho f4bae91dd0 chore(ee): bump submodule for home-search handler 2026-05-23 18:58:22 +01:00
Philipinho aee6781a5a chore(ee): bump submodule for home-search modal builder 2026-05-23 18:55:56 +01:00
Philipinho eaac79f25d chore(ee): bump submodule for create-document submit handler 2026-05-23 18:53:44 +01:00
Philipinho 49f5aaa880 chore(ee): bump submodule for home-create-doc handler 2026-05-23 18:46:30 +01:00
Philipinho 4e5d82c847 chore(ee): bump submodule for create-document modal builder 2026-05-23 18:44:27 +01:00
Philipinho 407d86c65c chore(ee): bump submodule for app_home_opened handler 2026-05-23 18:42:48 +01:00
Philipinho 1690691de0 chore(ee): bump submodule for slack home view block builder 2026-05-23 18:38:47 +01:00
Philipinho 4db5281c11 feat(slack): wire /docmost ask queue and bump submodule
- Add SLACK_ASK queue name and job constant for AI search backgrounding.
- Bump ee submodule to pick up new Slack handlers and converters.
2026-05-23 18:35:13 +01:00
Philipinho 2d74455c2b refactor(integrations): consolidate integrations schema into baseline migration 2026-05-23 13:11:28 +01:00
Philipinho 6a870adec9 fix(integrations): partial unique index so user-link doesn't clobber workspace row 2026-05-23 13:06:47 +01:00
Philipinho b4c917ac07 feat(integrations): defer workspace-scoped install until OAuth succeeds 2026-05-23 12:38:43 +01:00
Philipinho 91a2abd8d3 feat(integrations): route OAuth callbacks back to originating workspace host 2026-05-23 12:32:18 +01:00
Philipinho 2f313187ab feat(integrations): one-step install for workspace-scoped providers 2026-05-23 12:22:26 +01:00
Philipinho 2c80459674 chore(ee): bump submodule for completeLink workspace check 2026-05-23 12:08:51 +01:00
Philipinho a3897e1485 fix(integrations): don't wipe workspace bot row on per-user disconnect 2026-05-23 12:08:49 +01:00
Philipinho 305f2be527 chore(ee): bump submodule for Disconnect fix 2026-05-23 12:01:38 +01:00
Philipinho 3e86bef2b4 chore(ee): bump submodule for Slack disconnect button handler 2026-05-23 11:55:13 +01:00
Philipinho 9603ff4287 chore(ee): bump submodule for new-page modal and app_uninstalled handler 2026-05-23 05:17:20 +01:00
Philipinho 9696e06635 chore(ee): bump submodule for /docmost save and add-to-page shortcut 2026-05-23 05:10:03 +01:00
Philipinho 4c7c3ac44d chore(ee): bump submodule for page-picker review fixes 2026-05-23 05:06:44 +01:00
Philipinho 02d20c1ab6 chore(ee): bump submodule for page-picker submit and options handlers 2026-05-23 04:57:46 +01:00
Philipinho 013fa923e0 chore(ee): bump submodule for mrkdwn converter, page writer, picker blocks 2026-05-23 04:53:14 +01:00
Philipinho 872321c58c chore(ee): bump submodule for Slack workspace connectionScope 2026-05-23 04:35:59 +01:00
Philipinho 0ab6ae86e3 feat(integrations): add connectionScope (workspace|user) to OAuth flow 2026-05-23 04:35:59 +01:00
Philipinho 31043a9d98 chore(ee): bump submodule for SlackProvider.onConnected and SkipTransform 2026-05-23 04:17:21 +01:00
Philipinho 05bd04d87b feat(integrations): pass integrationId and workspaceId to provider.onConnected 2026-05-23 04:17:19 +01:00
Philipinho 677b5f95e0 chore(ee): bump submodule for recents, favs, search commands 2026-05-23 03:23:22 +01:00
Philipinho e44a0cd0e0 feat(search): add titlesOnly option to searchPage for efficient title-only searches 2026-05-23 03:22:29 +01:00