Tom Moor
0ba310e027
Remove unused files and dependencies ( #11850 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 18:44:51 -04:00
Tom Moor
5693618de4
Add translation hooks to transactional emails ( #11785 )
...
* First pass
* fix: Missing translations
* fix: Missing translations
* welcome
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
* translations
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-20 23:28:51 -04:00
Copilot
500c3f91b0
Support GitLab work_items URL structure in unfurl integration ( #11795 )
...
* Initial plan
* Support GitLab work_items URL structure in parseUrl
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-03-17 22:40:47 -04:00
Tom Moor
1a893b0e45
Group sync framework ( #11684 )
...
Adds group sync from external authentication providers, allowing team group memberships to be automatically managed based on provider data on sign-in in the future.
2026-03-14 23:02:20 -04:00
Liam Stanley
b1a192c078
fix: don't force prompt for Discord OAuth2 ( #11757 )
...
Signed-off-by: Liam Stanley <liam@liam.sh >
2026-03-14 19:20:13 -04:00
Copilot
22138957ab
Add Project unfurl support to GitLab plugin ( #11752 )
...
* Initial plan
* Add GitLab Project unfurl support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix TypeScript errors: add explicit return type to parseUrl
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* tweaks
* progress
* Remove log noise
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
2026-03-14 19:14:35 -04:00
Copilot
d1203408b5
Add GitHub Project V2 unfurl support ( #11753 )
...
* Initial plan
* Add GitHub Project V2 unfurl support to the GitHub plugin
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Various fixes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
2026-03-14 17:13:35 -04:00
Copilot
36d555f3fb
Add Linear project unfurling support ( #11525 )
...
* Initial plan
* Add Project type and unfurl implementation for Linear projects
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix linter issues - remove unused import and rename unused parameter
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Make actor parameter optional in unfurl helper methods
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix: Resolve type errors in Linear project unfurl
Use project.status (ProjectStatus object) instead of the deprecated
project.state (string) field, add satisfies constraint, and fix
exhaustive return in unfurl switch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* Determine mention type
* styling
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 11:03:04 -04:00
Copilot
83977f85bd
Use filtered fetch in Figma and Linear plugins ( #11701 )
...
* Initial plan
* chore: use filtered fetch in Figma and Linear plugins
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-03-09 23:04:18 -04:00
Tom Moor
257d01af89
fix: Missing check for enabled passkeys in verification endpoint ( #11689 )
2026-03-08 18:46:13 -04:00
Tom Moor
c875930430
fix: Improved resiliency to invalid GitLab data ( #11669 )
2026-03-05 19:48:17 -05:00
Tom Moor
0565616b02
fix: Add skip error for multi-source Notion databases
2026-03-03 19:32:33 -05:00
Copilot
b298456126
Increase request timeout for files.create to support large file uploads ( #11570 )
...
* Initial plan
* Add 30-minute timeout for files.create endpoint to handle large file uploads
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-02-28 09:02:28 -05:00
Tom Moor
0dfab5b245
perf: Raise Notion pageSize 25 -> 100
2026-02-28 08:52:23 -05:00
Tom Moor
9288ac87e0
fix: Webhook held in memory after timeout ( #11580 )
2026-02-26 08:52:40 -05:00
Tom Moor
3c3d18637e
fix: Ignored child page mentions in Notion importer ( #11567 )
2026-02-25 16:28:48 -05:00
Tom Moor
496b89c7f8
chore: Remove gitbeaker dep on client ( #11517 )
...
Add dupe detection to gitlab install
2026-02-22 00:38:10 -05:00
Tom Moor
46dd13fc7f
Update integrations directory to color icons ( #11516 )
2026-02-22 02:37:04 +00:00
Salihu
cad670f19c
feat: GitLab integration ( #10861 )
...
Co-authored-by: Tom Moor <tom@getoutline.com >
closes #6795
2026-02-21 17:52:27 -05:00
Tom Moor
7be893f9a3
Refactor templates ( #11027 )
...
closes #8674
2026-02-20 18:53:00 -05:00
Tom Moor
7ff6f1defb
feat: Add webhooks for file attachments ( #11494 )
2026-02-19 17:28:50 -05:00
Copilot
2e0bc66ad1
Fix React Doctor error-level issues ( #11483 )
...
* Initial plan
* Fix React Doctor errors: aria-selected, key props, alt attributes, layout animation, nested component, reduced motion
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix remaining React Doctor errors: refactor useTrackLastVisitedPath to avoid useEffect
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Revert useMeasure change
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
2026-02-18 19:47:56 -05:00
Tom Moor
c758f0d93a
chore: Upgrade Zod to version 4 ( #11465 )
2026-02-15 22:54:50 -05:00
Tom Moor
0722b42613
fix: Potential task queue saturation in Notion importer ( #11428 )
...
* fix: Potential task queue saturation in Notion import
* Reduces concurrent Notion API pressure from 3× the recursive call depth down to 1
2026-02-12 21:56:00 -05:00
Copilot
c8fbdc35fb
Ignore table_of_contents blocks in Notion import ( #11424 )
...
* Initial plan
* feat: Add handler to ignore table_of_contents Notion block
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-02-12 18:51:43 -05:00
Tom Moor
dc9aad99e9
fix: Test snapshot ( #11395 )
2026-02-08 18:28:35 -05:00
Tom Moor
eb59aed5b7
test: Fix snap ( #11391 )
2026-02-07 22:07:41 +00:00
Copilot
a097676e9c
Map Notion toggle blocks to container_toggle nodes ( #11371 )
...
* Initial plan
* Add toggle block support to Notion importer
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Support toggle headings
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
2026-02-07 16:40:06 -05:00
Copilot
d9e15d2441
Fix passkey registration with non-standard HTTPS ports ( #11329 )
...
* Initial plan
* Add getExpectedOrigin helper to handle non-standard ports in passkeys
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix linting error in passkeys test
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix trailing whitespace in passkeys.ts
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Export getExpectedOrigin and test it directly
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-02-04 18:43:34 -05:00
Tom Moor
03493ea3dc
fix: Non-members cannot see public ACL attachments ( #11326 )
...
closes #11324
2026-01-31 15:53:03 -05:00
Copilot
9858d160d5
Separate user input errors from internal errors for Sentry reporting ( #11308 )
...
* Initial plan
* Add explicit error categorization with isSentryReported property
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Rename isSentryReported to isReportable
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Update Discord plugin errors to use isReportable
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-01-30 05:55:28 -05:00
Tom Moor
bdb97d63d8
fix: Improve error when passkey is missing in db ( #11291 )
2026-01-27 22:50:50 +00:00
Raphael
8324859de9
fix(passkeys): show Passkeys settings to non-admin users ( #11286 )
2026-01-27 08:14:36 -05:00
Tom Moor
00fb4d1af7
chore: Update node style imports ( #11277 )
...
- crypto → node:crypto
- fs → node:fs
- fs/promises → node:fs/promises
- path → node:path
- http → node:http
- https → node:https
- stream → node:stream
- buffer → node:buffer
- url → node:url
- os → node:os
- net → node:net
- dns → node:dns
- events → node:events
- readline → node:readline
- querystring → node:querystring
- util → node:util
2026-01-26 20:51:50 -05:00
Tom Moor
ef0f8301bc
Allow non-platform Passkeys ( #11265 )
2026-01-25 03:31:05 +00:00
Hemachandar
5584089441
feat: Figma integration ( #11044 )
...
* OAuth
* store logo
* unfurl support
* refresh token
* support for list
* embed list
* mention menu for all embeds in a list
* multi-level list
* logo
* account level connection
* tsc
* Update Icon.tsx
* coderabbit feedback
* RFC 6749 suggestion
---------
Co-authored-by: Tom Moor <tom@getoutline.com >
2026-01-15 20:27:00 -05:00
Tom Moor
bcee4893f4
perf: Add timeout and optimize URL unfurl performance ( #11149 )
...
* perf: Add timeout and optimize URL unfurl performance
Fixes issue where urls.unfurl endpoint could take 15+ seconds due to external API timeouts and sequential plugin execution.
Changes:
- Add timeout support to fetch utility with AbortController (defaults to no timeout, configurable per request)
- Add 10 second timeout to Iframely plugin requests
- Add early URL pattern validation to GitHub and Linear plugins to avoid unnecessary database queries
- Add try-catch error handling to URL parsing in GitHub and Linear plugins
This reduces worst-case unfurl time from 15+ seconds to ~10 seconds maximum, and eliminates unnecessary overhead for URLs that don't match plugin patterns.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
* lint
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-10 18:03:19 -05:00
Tom Moor
b123762e86
chore: Remove collection.url, fix post-signin redirect ( #11139 )
2026-01-10 16:19:23 +00:00
Tom Moor
974c5f9f70
fix: Embedded PDF rendering in Safari ( #11107 )
2026-01-07 21:59:12 -05:00
Tom Moor
57b6e9aca4
feat: Passkey support ( #11065 )
...
closes #6930
2026-01-05 19:58:46 -05:00
Tom Moor
b1cb6e4a41
fix: Improve handling of object_not_found individual blocks ( #11042 )
2026-01-02 20:55:03 -05:00
Tom Moor
a3b2615edf
chore: Remove future public bucket usage ( #10977 )
...
* No longer upload avatars to public bucket
* Public redirect
* tests
* test
* test
2025-12-24 20:24:58 -05:00
Tom Moor
fbd4ded5b4
feat: Add authentication provider management ( #10997 )
...
* Gemini first-pass
* Prevent post-connect login
* stash
* stash
* Add OIDC logo
* Separate security page
* test
* Update icon
* test
* ui
* Add extra guards for disabling auth provider
* refactor
* test
2025-12-24 09:09:24 -05:00
Tom Moor
bf45e97641
chore: Enforce type import consistency ( #10968 )
...
* Update types
* fix circular dep
* type imports
* lint type imports and --fix
2025-12-19 23:07:02 -05:00
Salihu
419cf2a583
PDF embed ( #10198 )
...
* simple PDF embded
* send pdf url
* pdf resize
* resize pdf accordingly
* pdf alignment
* minor fixes
* use attachment node for PDF preview
* remove unnecessary comments
* fix pdf class
* minor fixes
* adjust upload pdf logo
* revert SelectionToolbar
* pass embed URL directly
* pass embed URL directly
* remove embedded pdf alignment
* improve resize UX
* improve resize UX
* fix: X-Frame-Options with local hosting
fix: Resize not persisted
* Add dimensions to attachment toolbar
* fix: Styling
* fix: Non-interactable in read-only editor
* Revert unneccessary changes
* Avoid setting width/height on all attachment nodes
* fix: Disable embeds should also disable PDF embeds
---------
Co-authored-by: Tom Moor <tom@getoutline.com >
2025-12-19 21:48:25 -05:00
Tom Moor
fe5cc8e007
chore: Cleanup of CI logs and connections ( #10944 )
...
* chore: Remove info logs in CI
* Upgrade jest
2025-12-17 20:41:51 -05:00
Tom Moor
8fc44ca681
fix: Move Slack credentials to Authorization header in token exchange ( #10898 )
2025-12-13 12:59:38 -05:00
Tom Moor
615cad5484
fix: Incorrect handling of missing refresh token ( #10886 )
2025-12-13 12:37:06 -05:00
Tom Moor
4777a90fa9
fix: hooks.unfurl check ( #10884 )
2025-12-12 22:54:56 -05:00
Tom Moor
bdeac4e44b
fix: profileId extraction in OIDC does not fallback to token.sub ( #10882 )
2025-12-12 22:21:16 -05:00