claude_code
4df79aafd3
test(server): batch 5 authorization, transclusion, search & comment coverage
...
Test-only. Fills the authorization / data-integrity gaps from the strategy
report. Full server suite: 100 suites / 1031 passed + 1 todo, green.
Authorization (privilege-escalation catches):
- workspace/space ability factories: exact can/cannot per (action,subject) —
admin cannot Manage Audit, writer/reader cannot Manage Settings/Member, etc.
- findHighestUserSpaceRole, isAdminActingOnOwner.
- WorkspaceService role guards: last-owner lockout, admin-over-owner, self-target.
- SpaceMemberService.validateLastAdmin: never orphan a space without an admin.
- GroupService: default-group immutability, name uniqueness.
Access / data integrity:
- PageAccessService: restriction-vs-space-ability branches for view/edit/comment.
- TransclusionService.unsyncReference: cross-workspace/NotFound boundary asserts
NO attachment write or ref-row delete on rejection; lookupWithAccessSet
positional status mapping; listReferences drops private/cross-ws/deleted refs;
syncPageTransclusions/References diff (no-op on unchanged content).
- SearchService.searchPage: query-mode scoping; leakage modes return empty
before executing the query.
- CommentService: reply-to-reply guard, agent provenance, self-mention filter,
no double-notify.
Pure helpers:
- prosemirror extractors (mention dedup-key id-vs-entityId, attachment UUID
validation, removeMarkTypeFromDoc), collaboration.util (getPageId,
isEmptyParagraphDoc, stripUnknownNodes unwrap, prosemirrorNodeToYElement).
Reviewed (APPROVE WITH SUGGESTIONS): mutation-resistant, not vacuous.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-21 18:40:07 +03:00
Philip Okugbe
f758091b2a
perf(permissions): cache space role and page edit lookups ( #2208 )
2026-05-14 13:11:28 +01:00
Philip Okugbe
d42091ccb1
feat: favorites ( #2103 )
...
* feat: favorites and templates(ee)
* rename migrations
* fix sidebar
* cleanup tabs
* fix
* turn off templates
* cleanup
* uuid validation
2026-04-12 22:06:25 +01:00
Philip Okugbe
3829b6cbef
feat(ee): viewer comments ( #2060 )
2026-03-28 19:32:52 +00:00
Philipinho
90c190df78
fix: space members view enhancement
2026-03-02 21:33:15 +00:00
Philipinho
17ec2f4ac5
lists sorting
2026-03-02 21:07:47 +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
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
Philip Okugbe
1ad53c2581
feat(ee): public sharing controls ( #1910 )
...
* feat(ee): public sharing controls
* lint
2026-02-06 10:35:36 -08:00
Philip Okugbe
78b1c1a453
feat: switch to cursor pagination ( #1884 )
...
* add cursor pagination function
* support custom order modifier
* refactor returned object
* feat(db): migrate paginated endpoints to cursor-based pagination
* sync
* support hasPrevPage boolean
* feat(client): migrate pagination from offset to cursor-based
* support beforeCursor/prevCursor
* wrap search results in items array for API consistency
2026-01-30 19:28:54 +00:00
Philip Okugbe
47097969a0
fix: use subquery ( #1833 )
...
- enhance file tasks list endpoint
2026-01-13 15:58:26 +00:00
Philip Okugbe
9fb16bc842
feat(EE): AI vector search ( #1691 )
...
* WIP
* AI module - init
* WIP
* sync
* WIP
* refactor naming
* new columns
* sync
* sync
* fix search bug
* stream response
* WIP
* feat embeddings sync
* refine
* Add workspaceId to page events
* refine
* WIP
* add translation string
* sync
* reset ai answer on query change
* hide AI search in cloud
* capture streaming error
* sync
2025-12-01 11:50:25 +00:00
Philip Okugbe
5da92a538a
feat: add unaccent support for accent-insensitive search ( #1402 )
...
- Add PostgreSQL unaccent and pg_trgm extensions
- Create immutable f_unaccent wrapper function for performance
- Update all search queries to use f_unaccent for accent-insensitive matching
- Add 1MB limit to tsvector content to prevent errors on large documents
- Update full-text search trigger to use f_unaccent
- Fix MultiSelect client-side filtering to show server results properly
2025-07-29 22:47:13 +01:00
Philip Okugbe
882f3093bd
search space members by email ( #1049 )
2025-04-22 19:37:06 +01:00
Philip Okugbe
1eaba6e77f
fix: bug fixes ( #1000 )
...
* sort by groups first
* add scroll area
* fix group members pagination
* move pagination to the right
2025-04-08 13:34:00 +01:00
Philipinho
3559358d14
fix pagination issue where user is not part of any space
2025-04-07 19:09:02 +01:00
Philip Okugbe
f92d63261d
Implement space member search ( #731 )
...
* Hide pagination buttons if there is nothing to paginate
* Create reusable hook for search and pagination
2025-02-15 14:14:30 +00:00
Philip Okugbe
fb27282886
feat: delete space and edit space slug ( #307 )
...
* feat: make space slug editable
* feat: delete space
* client
2024-09-16 17:43:40 +01:00
Philipinho
f2a193ac8d
Allow creation of space
...
* other fixes and cleanups
2024-06-24 20:06:57 +01:00
Philipinho
d4eefa48a8
restructure directories
...
* set log level based on env
2024-06-09 15:57:52 +01:00
Philipinho
38ef610e5e
fixes
...
* integrate websocket redis adapter
* use APP_SECRET for jwt signing
* auto migrate database on startup in production
* add updatedAt to update db operations
* create enterprise ee package directory
* fix comment editor focus
* other fixes
2024-06-07 17:29:34 +01:00
Philipinho
06d854a7d2
refactor layout
...
* ui polishing
* frontend and backend fixes
2024-05-31 21:51:44 +01:00
Philipinho
046dd6d150
fix space member count
...
* fix space added_by_id
* rename user role change endpoints
2024-05-24 15:59:20 +01:00
Philipinho
ccf9d5d99f
more work on attachments
...
* fix frontend env usage
2024-05-22 23:24:57 +01:00
Philipinho
9c7c2f1163
updates and fixes
...
* seo friendly urls
* custom client serve-static module
* database fixes
* fix recent pages
* other fixes
2024-05-18 03:19:42 +01:00