Copilot and GitHub
796adb8b22
Rename split-view route helper to isSplittablePath ( #13125 )
2026-07-25 07:57:19 -04:00
dd2e8f258d
Handle double-click submission in DocumentExplorer actions ( #12417 )
...
* Initial plan
* Support double-click submit in document explorer
* Remove test
* Fix double-click submit in document explorer
Single click now sets the selection instead of toggling it, so the two
clicks preceding a dblclick no longer flicker the selection on/off.
Submit handlers accept the node directly to avoid the stale-state race
across the click sequence, and button onClick handlers are wrapped so
the synthetic MouseEvent isn't passed in as the path argument.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* PR feedback
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tom Moor <tom@getoutline.com >
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-21 22:10:25 -04:00
efc988fb9f
Prevent unintentional trashing of non-empty untitled drafts on editor unmount ( #12418 )
...
* Initial plan
* Fix draft auto-delete check for non-empty untitled docs
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-05-21 20:15:54 -04:00
841ab022a6
Sanitize Windows-invalid characters in exported filenames ( #12407 )
...
* Sanitize Windows-invalid ZIP filename characters
Agent-Logs-Url: https://github.com/outline/outline/sessions/539082bc-597f-463d-b77c-6eb1bcf9bffa
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Refine Windows filename sanitization regex handling
Agent-Logs-Url: https://github.com/outline/outline/sessions/539082bc-597f-463d-b77c-6eb1bcf9bffa
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* PR feedback
---------
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-05-20 17:49:30 -04:00
7ed41eadc6
Add per-share branding: title and logoUrl overrides ( #12003 )
...
* feat: add title and logoUrl to Share model
Agent-Logs-Url: https://github.com/outline/outline/sessions/9bc9d438-6892-4903-9d32-6b6868f4fd97
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix: use STRING(4096) for logoUrl column in migration
Agent-Logs-Url: https://github.com/outline/outline/sessions/9bc9d438-6892-4903-9d32-6b6868f4fd97
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* feat: use share title and logoUrl to override team branding on shared page
Agent-Logs-Url: https://github.com/outline/outline/sessions/854d6d22-e80b-4673-b3b2-0f9cf43a3246
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* refactor: use ShareValidation class constants for title/logoUrl max lengths
Agent-Logs-Url: https://github.com/outline/outline/sessions/ea462d6a-d4d3-4882-ab8e-88060bf64877
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix: use ShareValidation constants in @Length msg template literals
Agent-Logs-Url: https://github.com/outline/outline/sessions/694116c2-47e8-4001-a103-c8a62c7ac71e
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* feat: add display settings popover with custom title and icon for shares
Move share toggles (search indexing, email subscriptions, show last
modified, show TOC) into a popover triggered by a settings cog. The
popover also includes inputs for a custom site title and icon upload
to override team branding on shared pages. Rename logoUrl to iconUrl,
loosen URL validation to allow relative attachment paths, and surface
the popover in the shared page header for users with edit permission.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
* styling
* Display branding on single shared pages
* Review comments
* refactor
* PR feedback
* Lose 'Remove icon' button
---------
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.7 <noreply@anthropic.com >
2026-04-26 21:23:13 -04:00
d54a861894
Avoid reporting max payload size exceeded errors to Sentry in collaboration server ( #12002 )
...
Agent-Logs-Url: https://github.com/outline/outline/sessions/ec7f1b13-6d7e-49d7-a8a4-f1223ba07a93
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-04-11 19:29:14 -04:00
0d0f5cb5c7
Fix Tab key not indenting list items inside toggle blocks ( #11914 )
...
* Initial plan
* fix: allow Tab to indent list items inside toggle blocks
When the cursor is inside a list within a toggle block, the indentBlock
command was consuming the Tab key event before the list's sinkListItem
handler could run. This happened because indentBlock found a previous
container_toggle sibling at the ancestor level and returned true.
Fix: return false early in indentBlock when the cursor is inside a list,
allowing the list's Tab handler to handle indentation correctly.
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
2026-04-01 18:51:35 -04:00
864ec3e24b
Fix @mention trigger not firing after CJK characters ( #11919 )
...
* Initial plan
* Fix mention trigger to work after CJK characters without preceding space
Agent-Logs-Url: https://github.com/outline/outline/sessions/b34bba3f-fe94-408c-bf09-794f8e3d05ff
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@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 >
Co-authored-by: Tom Moor <tom@getoutline.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-01 22:35:03 +00:00
c4479e257e
chore: upgrade Node.js to 24.14.1 (LTS) ( #11918 )
...
* Initial plan
* chore: upgrade Node.js base image from 22.21.0 to 24.14.1 (LTS)
* chore: include node version in node_modules cache keys
* Add canary build for docker changes
* fix: Try docker driver
---------
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-04-01 17:47:01 -04:00
27dc02aad1
Add anchor text to MCP comment tool responses ( #11886 )
...
* Initial plan
* Add comment anchor text to MCP comment tool responses
Agent-Logs-Url: https://github.com/outline/outline/sessions/294b6510-996f-4a86-a7d6-7ed1c336fc19
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address PR review: fix auth gap, cache marks, add anchorText tests
- Always authorize read access in update_comment before exposing anchor text
- Cache comment marks per document in list_comments to avoid O(n * docSize)
- Add 4 MCP tests verifying anchorText presence/absence in responses
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
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-28 15:08:34 -04:00
df5dd0b98d
Fix custom team logo not appearing in link previews for public shares ( #11872 )
...
* Initial plan
* fix: resolve team avatar to signed URL for public share link previews
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Agent-Logs-Url: https://github.com/outline/outline/sessions/3632734e-1bb5-4705-bdcd-a2ccbb211af8
* refactor: move avatar URL resolution to Team.publicAvatarUrl()
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Agent-Logs-Url: https://github.com/outline/outline/sessions/a2191be3-0533-459a-8366-602bb798a60e
* test: add Team.publicAvatarUrl model tests; update JSDoc
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Agent-Logs-Url: https://github.com/outline/outline/sessions/7609501c-a4d1-44ea-a7bf-fa6fd8e7c999
* test: fix Team.publicAvatarUrl tests to use actual attachment URLs
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Agent-Logs-Url: https://github.com/outline/outline/sessions/0a768f8b-0dd8-4e7a-a50d-873af58aab28
---------
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-27 19:55:15 -04:00
3cc85f1cdf
Fix DocumentMove dialog hiding siblings and nieces/nephews as move targets ( #11885 )
...
* Initial plan
* fix: show siblings and descendants in DocumentMove dialog
The filterSourceDocument function was incorrectly removing the document's
parent node from the navigation tree, which also hid all siblings (children
of the same parent) and their descendants.
Instead, only the document itself and its own descendants are now excluded
(to prevent circular references). The parent is kept in the tree so siblings
remain visible as valid move targets.
Agent-Logs-Url: https://github.com/outline/outline/sessions/12574f1c-7a7c-45a0-8444-19e24aa10782
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-27 17:05:21 -04:00
f1e5a7cfa7
Fix passkey login 400 error when authenticatorAttachment is undefined ( #11856 )
...
* Initial plan
* Fix passkey login 400 error when authenticatorAttachment is undefined
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
Agent-Logs-Url: https://github.com/outline/outline/sessions/b7ea5777-cd06-41e7-a796-70ea083dfc34
---------
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-23 18:54:13 -04:00
14fc3b01db
Fix suggestion menus blocked by placeholder marks ( #11796 )
...
* Initial plan
* fix: suggestion menus not opening when typing trigger inside placeholder mark
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-19 17:45:03 -04:00
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
85072dab92
fix: Preserve port in OAuth metadata URLs when self-hosted behind a reverse proxy ( #11791 )
...
* Initial plan
* fix: Preserve port in OAuth metadata URLs when behind reverse proxy
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 08:04:40 -04:00
1e8d9b5f80
fix: Support mailbox format for SMTP_FROM_EMAIL and SMTP_REPLY_EMAIL ( #11784 )
...
* Initial plan
* fix: Handle SMTP_FROM_EMAIL/SMTP_REPLY_EMAIL in mailbox format
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-16 22:48:56 -04:00
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
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
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
a92a1785ff
Enable CMD+Shift+L theme toggle on publicly shared pages ( #11750 )
...
* Initial plan
* Add CMD+Shift+L keyboard shortcut to toggle theme on shared pages
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-14 09:38:27 -04:00
631a4b0efa
Default PDF attachments to non-embedded on upload ( #11745 )
...
* Initial plan
* Default PDF preview to false when uploading via drag and drop
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Preserve PDF preview for block menu option and attachment replacement
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-13 22:22:11 -04:00
52077e4d47
Add PDF preview toggle button to attachment formatting toolbar ( #11746 )
...
* Initial plan
* Add PDF preview toggle button to attachment formatting toolbar
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Tweak icon
---------
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-13 22:07:48 -04:00
79fc0b90b9
Only include passkeys in auth.config providers when team has registered passkeys ( #11748 )
...
* Initial plan
* Only return passkeys auth provider if team has at least one registered passkey
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-13 21:46:56 -04:00
951fb8a34a
Add "Open in Desktop" option to document menu ( #11729 )
...
* Initial plan
* Add Open in Desktop option to document menu
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Tweak naming
---------
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-12 09:33:11 -04:00
bd573c44c1
Add ABAP to supported code formatting languages ( #11721 )
...
* Initial plan
* Add ABAP as a supported code formatting language
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-11 17:33:32 -04:00
0c6e4f349b
Add FontAwesome icon support for Mermaid diagrams ( #11704 )
...
* Initial plan
* Implement FontAwesome icon support for Mermaid diagrams
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-10 19:25:17 -04:00
a8b701aff3
fix: Correctly strip node comments on duplication ( #11700 )
...
* Initial plan
* fix: preserve table row background colors when duplicating documents
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* test
---------
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-10 19:25:04 -04:00
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
3222a77cc3
Remove star control from DocumentListItem on mobile ( #11655 )
...
* Initial plan
* Remove star control on DocumentListItem on mobile
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-05 17:45:05 -05:00
5b89882e5e
Highlight parent menu item when submenu is open ( #11659 )
...
* Initial plan
* fix: highlight parent menu item when sub-menu is open
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-05 13:46:30 +00:00
89cfc76d8f
Remove artificial statement timeout from popularity score calculation ( #11652 )
...
* Initial plan
* fix: remove transaction wrapper and artificial statement timeout from calculateScoresForDocuments
The method was wrapping a read-only CTE query in a transaction solely to
SET LOCAL statement_timeout = '30000ms'. On instances with large tables this
30-second cap caused SequelizeDatabaseError: canceling statement due to
statement timeout. Removed the unnecessary transaction and the STATEMENT_TIMEOUT_MS
constant so the query runs unimpeded under the database server's own timeout policy.
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-05 08:11:48 -05:00
c22ba4fa0c
Validate oauthClientId as UUID before database query ( #11653 )
...
* Initial plan
* Fix SequelizeDatabaseError by adding UUID validation to oauthClientId
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-05 08:01:19 -05:00
0ab3a962d9
Skip unfurl attempts for non-HTTP(S) URL schemes ( #11640 )
...
* Initial plan
* Fix: Skip unfurling for non-http(s) and non-mention URL schemes
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-04 09:12:13 -05:00
19e5888216
fix: Preserve diagram file format (PNG/SVG) when editing ( #11622 )
...
* Initial plan
* Implement format retention for diagram editing
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback: improve comments and property order
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* refactor
---------
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-02 18:12:52 -05:00
5a14944d0c
Remove starred document when actor archives it ( #11611 )
...
* Initial plan
* Add DocumentArchivedProcessor to remove archived documents from actor's stars
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix unused variable in test
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove unnecessary transaction wrapper for single operation
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add JSDoc documentation to perform method
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review: add @throws annotation and fix spacing
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix TypeScript errors in test file - add non-null assertions for collectionId
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Use ctx method for events
---------
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-01 17:47:17 -05:00
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
1c52a3e7da
Fix custom emoji UUID escaping in API document creation ( #11594 )
...
* Initial plan
* Add custom emoji UUID parsing support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix custom emoji UUID parsing - working solution
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add JSDoc and improve code quality based on review
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add JSON content verification to custom emoji test
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-27 19:32:06 -05:00
6708f5dbc2
Add dedicated tracing for MCP resources ( #11569 )
...
* Initial plan
* feat: Add separate tracing for MCP resources
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-25 14:40:08 -05:00
25e222bb22
Fix print error caused by queueMicrotask timing with React ( #11551 )
...
* Initial plan
* Fix print error by replacing queueMicrotask with setTimeout
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-24 20:05:32 -05:00
7f88ab55fb
Handle network failures in installation.info endpoint for isolated environments ( #11546 )
...
* Initial plan
* Add error handling for Installation.info endpoint in isolated environments
* Return -1 for versionsBehind when network request fails
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-24 15:20:48 -05:00
8ddebb920e
Add child documents list to markdown export for shared documents ( #11495 )
...
* Initial plan
* Add child documents list to markdown export for shared documents
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Apply prettier formatting to app.ts
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix tree context
* test: Account for document share
---------
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-19 18:45:13 -05:00
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
5c01909909
Add Fortran language support to code blocks ( #11471 )
...
* Initial plan
* Add Fortran language support to code blocks
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-16 10:49:24 -05:00
057d57e21a
Add alphabetic ordered list support to markdown parser ( #11446 )
...
* Initial plan
* Add alpha list markdown parsing support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add integration tests for alpha list parsing and serialization
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback - improve marker matching logic
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add explanatory comment for line offset constant
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-14 16:08:58 -05:00
b4053f344f
Add Alt-click to recursively expand/collapse sidebar documents and collections ( #11432 )
...
* Initial plan
* Add alt-click to expand/collapse all nested documents
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix callback stability to prevent unnecessary re-renders
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add alt-click expand/collapse support for CollectionLink
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* refactor
* Add support for other link types
* Handle unloaded
* refactor
* refactor
---------
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-13 17:27:20 -05:00
0363481a6a
Add "Rename" option to sidebar context menus ( #11425 )
...
* Initial plan
* Add Rename option to context menus for sidebar items
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-13 00:25:03 +00:00
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
c382e1233b
Convert markdown frontmatter to YAML codeblocks on import ( #11420 )
...
* Initial plan
* Add frontmatter to YAML codeblock conversion
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add edge case tests and fix frontmatter regex, install types
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback - improve template literal readability
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:32:15 -05:00
7252701e9b
Preserve alignment and caption when replacing images ( #11407 )
...
* Initial plan
* Preserve alignment, caption, and height when replacing images
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-10 18:16:22 -05:00
0e9f34bd6a
Add hide/show completed items control for checkbox lists ( #11379 )
...
* Initial plan
* Add hide/show completed items feature for checkbox lists
- Add id attribute to checkbox_list nodes
- Create CheckboxListNodeView with toggle button
- Store hide state in localStorage per user and list
- Add CSS styles for wrapper and toggle button
- Hide completed items when state is active
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback - improve boolean handling and default values
- Change id default from undefined to null for consistent serialization
- Use !! for boolean coercion instead of === true for Storage.get
- More robust handling of truthy values
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Refactor
---------
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-09 16:35:58 -05:00
23177578b2
Add context menu support for table rows in settings ( #11378 )
...
* Initial plan
* Add context menu support for table rows in settings
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix file formatting
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add context menu support to all settings tables
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* refactor
* Reuse hooks
* EmojiMenu
---------
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-09 14:43:17 -05:00
40bbfc78cd
Refactor: Extract Redis cache key generation to RedisPrefixHelper ( #11376 )
...
* Initial plan
* Refactor Redis cache keys: delegate CacheHelper to RedisPrefixHelper and update callers
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add JSDoc documentation to getCollectionDocumentsKey method
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove unused indirection
* Remove mock
---------
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-09 14:03:02 -05:00
ea9e9675fb
Fix document creation routing to use correct parameter name ( #11369 )
...
* Initial plan
* Fix: Use correct route parameter name in DocumentNew
The route parameter is 'collectionSlug', not 'id'. This caused documents
created through /collection/:collectionSlug/new to not have a collectionId,
making them go to drafts instead of the collection.
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-08 18:21:06 -05:00
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
2da35f2504
Add dark mode logo support to README ( #11375 )
...
* Initial plan
* Add dark mode logo support to README
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-06 06:32:29 -05:00
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
7b2cfbde5b
Add document highlight colors to highlight menu ( #11345 )
...
* Initial plan
* Add document highlight colors to highlight menu
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add tests for getDocumentHighlightColors function
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Optimize performance based on code review feedback
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* perf: Prevent calculation on every selection change
* Add the same logic for table background colors
---------
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-04 18:42:27 -05:00
d2f54502f3
Add sticky positioning to table headers ( #11353 )
...
* Initial plan
* Add sticky positioning to table headers
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix table header background for sticky positioning
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* wip
* refactor
---------
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-04 08:20:09 -05:00
f48a34fbdc
Add custom color picker for highlight mark ( #11337 )
...
* Initial plan
* Add custom color picker for Highlight mark
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback - fix active state and add color validation
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Update app/editor/components/HighlightColorPicker.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Add proper hex color validation and remove command prop
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Use existing isHexColor from class-validator
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 >
Co-authored-by: Tom Moor <tom@getoutline.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-02 19:26:28 -05:00
6398829106
Fix: Remove permanently deleted documents from local store ( #11344 )
...
* Initial plan
* Fix: Hard delete documents from store on permanent deletion
When documents are permanently deleted, they need to be completely
removed from the local MobX store, not just soft-deleted. This change
ensures that after permanent deletion, the document is immediately
removed from the UI without requiring a page reload.
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix: Also hard delete documents in emptyTrash method
The emptyTrash method also needs to hard delete documents from the
store after the backend permanently deletes them, not just soft delete.
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-02 19:09:38 -05:00
22ffda7078
Add group members popover to sharing dialogs ( #11338 )
...
* Initial plan
* Add GroupMembersPopover component and integrate with sharing components
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix type safety in GroupMembersPopover by using PAGINATION_SYMBOL
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add explanatory comment for type assertion in GroupMembersPopover
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* 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 >
2026-02-02 19:08:58 -05:00
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
a4784ca2d2
Fix text truncation with emoji icons in sidebar ( #11307 )
...
* Initial plan
* Fix emoji truncation in SidebarLink by always applying ellipsis styling
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:54:14 -05:00
7b6293637c
Add diff language highlighting for code blocks ( #11301 )
...
* Initial plan
* Add diff language highlighting support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* 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 >
2026-01-29 08:44:18 -05:00
07514cb692
Allow http:// loopback redirect URIs for native OAuth apps (RFC 8252) ( #11255 )
...
* Initial plan
* Add RFC 8252 loopback redirect URI support for native OAuth apps
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-23 21:54:59 -05:00
77ad224709
Fix S3 presigned URL expiration exceeding AWS 7-day limit ( #11191 )
...
* Initial plan
* Fix S3 presigned URL expiration exceeding AWS 7-day limit
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add comprehensive tests for S3 presigned URL expiration limits
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-15 19:51:21 -05:00
f6e25b0d32
Add "Email display" preference to control email address visibility ( #11103 )
...
* Initial plan
* Add emailDisplay TeamPreference to control email address visibility
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add tests for emailDisplay TeamPreference policy logic
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* tweaks
* Add Everyone setting, tests
* PR feedback
---------
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-01-08 10:15:36 -05:00
7e2d2542b0
Split group mention notifications into separate background task ( #11040 )
...
* Initial plan
* Split group notifications into separate background task
- Created GroupMentionedInCommentNotificationsTask for handling group mention notifications
- Updated CommentCreatedNotificationsTask to delegate group notifications
- Updated CommentUpdatedNotificationsTask to delegate group notifications
- Added comprehensive tests for the new task
- Improved scalability with batch processing (10 members per batch)
- Enhanced resilience by isolating group notification failures
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Optimize database queries in GroupMentionedInCommentNotificationsTask
- Batch fetch users instead of individual queries for better performance
- Add defensive comment explaining duplicate mentions check
- Create user map for O(1) lookups within batch
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add comment explaining concurrency control in batch processing
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove unnecessary document loading - use event properties directly
- Removed Document import and document loading query
- Use event.documentId and event.teamId directly
- Reduces database queries and improves performance
- canUserAccessDocument loads document internally when needed
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix TypeScript errors and test failures
- Fixed test: buildComment requires documentId parameter
- Fixed type error: use nullish coalescing for group.actorId ?? event.actorId
- Fixed type definition: use Omit<CommentEvent, "data"> to avoid type conflicts
- All TypeScript errors resolved
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* test
---------
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-01-03 10:14:56 -05:00
e0812faec9
Add revisions.export endpoint for downloading document revisions ( #11039 )
...
* Initial plan
* Add revisions.export endpoint with tests
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix: Add rejectOnEmpty to Document.findByPk in revisions.export
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-01 14:36:24 -05:00
755833c64c
Fix whitespace preservation after collection/document names in email templates ( #11034 )
...
* Initial plan
* Fix missing whitespace after collection/document names in shared emails
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 >
2025-12-31 21:26:42 +00:00
7cbd06541c
Upgrade Yarn to 4.11.0 ( #10865 )
...
* Initial plan
* Upgrade Yarn to 4.11.0 with node-modules linker and security settings
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Restore rolldown resolution to package.json resolutions
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Enable Corepack in CI workflow for Yarn 4.11.0 support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* test
* module resolution
---------
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 >
2025-12-25 08:46:08 -05:00
2959f2b300
Fix invisible email buttons in iOS Mail dark mode ( #10976 )
...
* Initial plan
* Fix invisible button in iOS Mail app dark mode using CSS media queries
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add border
---------
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 >
2025-12-20 20:27:29 -05:00
65662ef402
Update request-filtering-agent to v3.2.0 for CIDR range support ( #10923 )
...
* Initial plan
* Update request-filtering-agent to v3.2.0 with CIDR support
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove unnecessary mock and use transformIgnorePatterns for request-filtering-agent
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Mock
* Revert unused 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 >
2025-12-19 17:47:50 -05:00
539b9a8114
Add ContextMenu to RevisionListItem ( #10952 )
...
* Initial plan
* Add ContextMenu to RevisionListItem with same menu items
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix: Use numeric opacity values for better type safety
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Inline menu action logic in RevisionListItem instead of separate hook
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix: Account for not current url
---------
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 >
2025-12-18 08:37:37 -05:00
6ab63ecca1
Fix race condition in AuthenticationProvider.disable leaving teams locked out ( #10902 )
...
* Initial plan
* Fix race condition in AuthenticationProvider.disable with shared lock
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review comments: add transaction validation and test assertion
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Revert changes to .env.test file
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 >
2025-12-13 17:54:37 -05:00
2772de2766
Fix security check in /auth/redirect comparing against undefined ctx.params.token ( #10894 )
...
* Initial plan
* Fix security check in /auth/redirect to use ctx.state.auth.token instead of ctx.params.token
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 >
2025-12-13 15:02:39 -05:00
44b754884f
Fix double pagination in documents.list and documents.archived with sort=index ( #10895 )
...
* Initial plan
* Fix double pagination bug and add tests
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add comments explaining pagination behavior
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix test expectations for reversed document order
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix
---------
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 >
2025-12-13 14:48:47 -05:00
478781ae53
Fix custom rate limiters ignored due to mountPath mismatch ( #10893 )
...
* Initial plan
* Fix rate limiter path mismatch bug by using fullPath in defaultRateLimiter
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 >
2025-12-13 12:14:22 -05:00
682f9a1f88
Add index on source column for search_queries table ( #10876 )
...
* Initial plan
* Add migration to create index on source column for search_queries table
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 >
2025-12-12 20:04:41 -05:00
d5dbf286cc
Add missing database indexes for hooks.unfurl endpoint ( #10870 )
...
* Initial plan
* Add database indexes to improve hooks.unfurl performance
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Verify migrations and query plans for new indexes
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback: improve migration rollback order and add comments
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Change index column order to teamId first as requested
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Update .env.test
---------
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 >
2025-12-12 19:02:20 -05:00
133ec073be
Add CSV export for member list ( #10803 )
...
* Initial plan
* Add CSV export functionality to members page
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Align Export CSV button to the right
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Address code review feedback: improve type safety, error handling, and date formatting
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Improve CSV utility and date handling consistency
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Improve error messages and fix useCallback dependencies
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add comprehensive tests for CSV utility
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Refactor: reduce limit to 100, replace lastActiveIp with role, extract ExportCSV component
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Improve type safety and extract pagination constant
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* refactor
---------
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 >
2025-12-05 09:42:36 -05:00
eee64e363f
Skip compression for GIF emoji uploads to preserve animation ( #10792 )
...
* Initial plan
* Skip compression for GIF files to preserve animation
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Simplify type assertions in tests
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove unnecessary test file
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 >
2025-12-05 02:45:39 +00:00
55116b4761
Fix template insertion to use cursor position instead of document start ( #10783 )
...
* Initial plan
* Fix template insertion to use current cursor position
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Apply prettier formatting
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 >
2025-12-04 21:45:18 -05:00
9c3956f72d
Auto-generate emoji name from uploaded filename ( #10788 )
...
* Initial plan
* Add auto-generate emoji name from filename functionality
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix useCallback dependency issue in handleFileSelection
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove numbers from generated emoji names
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 >
2025-12-04 10:08:26 -05:00
d02f35b770
Fix collection filter returning documents from all collections when no search query ( #10775 )
...
* Initial plan
* Fix search filtering by collection to exclude other collections
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add API-level test for collection filtering without search term
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* fix: Private collections
* refactor
---------
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 >
2025-12-03 20:49:57 -05:00
d75f8d64db
Support PostgreSQL multi-host connection URIs in DATABASE_URL ( #10754 )
...
* Initial plan
* Add isDatabaseUrl validator for multi-host PostgreSQL URIs
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Update env.ts
---------
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 >
2025-12-01 08:12:39 -05:00
25a1bf6889
Hide diagrams.net functionality in desktop app ( #10753 )
...
* Initial plan
* Hide diagrams.net functionality in desktop app
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Add unit tests for menu filtering logic
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Fix missing ImageSource import in test
Co-authored-by: tommoor <380914+tommoor@users.noreply.github.com >
* Remove test files as requested
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 >
2025-11-30 20:10:17 +01:00