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
Apoorv Mishra
948e557bdd
Utilize GitHub integration to fetch information about public issues/PRs ( #10827 )
...
* fix: use github APIs to unfurl public gh issues/prs
* fix: revert
* fix: multiple gh accounts
* fix: use replacements
2025-12-12 19:05:14 -05:00
Tom Moor
55f21bfbb3
fix: Rapid retry behavior ( #10776 )
2025-12-03 20:25:12 -05:00
Tom Moor
ac06a06a66
feat: Diagrams/Draw.io integration ( #10707 )
...
* wip
* wip
* tsc
* lint
* Detect imported Draw.io
* Add empty diagram placeholder
* fix: Do not close editor on save
fix: Account for nodes moving / multiplayer
* fix: Reduce image menu for diagrams
* Add custom server settings page
* refactor
* sp
* Move edit button
2025-11-29 21:02:08 +01:00
Tom Moor
42959d66db
chore: Add cron task partitioning ( #10736 )
...
* wip
* Implementation complete
* tidying
* test
* Address feedback
* Remove duplicative retry logic from UpdateDocumentsPopularityScoreTask.
Now that we're split across many runs this is not neccessary
* Refactor to subclass, config to instance
* Refactor BaseTask to named export
* fix: Missing partition
* tsc
* Feedback
2025-11-27 16:57:52 +01:00
Hemachandar
142985c6d7
Move Document event writing to model layer ( #9790 )
...
* documents.restore, documents.unarchive
* documents.templatize
* documents.archive
* documents.unpublish
* documents.create, documents.update
* documents.title_change event
* documents.move
* documents.delete
* tsc, tests
* tsc
* Copilot feedback
---------
Co-authored-by: Tom Moor <tom@getoutline.com >
2025-11-23 20:40:45 +01:00
Tom Moor
468620b208
fix: Webhook UI extends out of modal bounds ( #10622 )
...
* fix: Webhook UI overlap
* tweaks
2025-11-11 19:35:43 -05:00
Tom Moor
9cadcc668c
fix: Update email magic links ( #10471 )
...
* fix: Update email magic links to check IP within time limit rather than usage
* Add option to force OTP method
2025-10-25 12:23:45 -04:00
Tom Moor
633d41e67f
fix: Fallback to any Linear integration ( #10458 )
...
* Fallback to any integration
* fix: Cannot unfurl Linear links without creator
2025-10-23 08:23:54 -04:00
Tom Moor
a2ce13a7dd
chore: Improve email sign-in debugging ( #10455 )
2025-10-22 23:32:25 +00:00