Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
7dc1d12
feat: Support simplified mention syntax in markdown for MCP (#11851)
tommoor Mar 23, 2026
33d8e41
fix: Sub-table header sticky behavior (#11857)
tommoor Mar 23, 2026
84aed78
fix: Improve performance when editing titles in large open document t…
tommoor Mar 23, 2026
f1e5a7c
Fix passkey login 400 error when authenticatorAttachment is undefined…
Copilot Mar 23, 2026
793804c
feat: Strip comments from presentation mode (#11860)
tommoor Mar 24, 2026
c2ccdb6
fix: Prevent registration of duplicate passkeys on the same device (#…
tommoor Mar 25, 2026
979d9a4
Mermaid improvements (#11874)
tommoor Mar 26, 2026
b91d9e9
feat: Extract search into pluggable provider system (#11448)
tommoor Mar 26, 2026
45b2f6e
fix: read-only scoped API keys cannot access MCP (#11875)
tommoor Mar 26, 2026
c91b839
fix: Unable to resize imported image from docx (#11878)
tommoor Mar 27, 2026
0b213bd
feat: Map document creator to existing users during JSON import (#11879)
tommoor Mar 27, 2026
3cc85f1
Fix DocumentMove dialog hiding siblings and nieces/nephews as move ta…
Copilot Mar 27, 2026
df5dd0b
Fix custom team logo not appearing in link previews for public shares…
Copilot Mar 27, 2026
27dc02a
Add anchor text to MCP comment tool responses (#11886)
Copilot Mar 28, 2026
4b16545
Fix Comment.toPlainText using wrong schema for mention nodes (#11889)
tommoor Mar 28, 2026
33b9a52
fix: Empty drafts are not correctly cleared on tab quit (#11899)
tommoor Mar 29, 2026
032d5c6
fix: Remove archived document from sidebar immediately (#11900)
tommoor Mar 29, 2026
701d4bb
fix: Present mode slide content not vertically centered (#11901)
tommoor Mar 29, 2026
7f6ec4a
fix: Integrations list missing when language is not English (#11908)
tommoor Mar 30, 2026
e354db8
feat: Add support for Docker Swarm style secrets (#11906)
tommoor Mar 30, 2026
b709506
Preload share popover data on hover (#11909)
tommoor Mar 30, 2026
6e95aa4
feat: Add context menus to document breadcrumb items (#11910)
tommoor Mar 30, 2026
222de9e
fix: Unconnected integrations appearing in settings sidebar (#11913)
tommoor Mar 31, 2026
c4479e2
chore: upgrade Node.js to 24.14.1 (LTS) (#11918)
Copilot Apr 1, 2026
db953c8
fix: Update Docker GitHub Actions to support Node.js 24 (#11925)
tommoor Apr 1, 2026
864ec3e
Fix @mention trigger not firing after CJK characters (#11919)
Copilot Apr 1, 2026
af22ed4
fix: Search highlight lag on shared documents (#11926)
tommoor Apr 1, 2026
0d0f5cb
Fix Tab key not indenting list items inside toggle blocks (#11914)
Copilot Apr 1, 2026
c3c5f14
Add Node LTS auto-update script (#11927)
tommoor Apr 1, 2026
b354d1f
Use CSS highlights instead of editor decorations when available (#11929)
tommoor Apr 2, 2026
bcc5a94
feat: Add email subscriptions to public docs (#11911)
tommoor Apr 2, 2026
b322705
fix: Button alignment in find and replace
tommoor Apr 2, 2026
9516459
fix: Cannot subscribe in prod (#11931)
tommoor Apr 2, 2026
12c71f2
Improve scoping of public share subscriptions (#11932)
tommoor Apr 2, 2026
b2aad71
chore: Move welcome email to processor (#11939)
tommoor Apr 3, 2026
025f422
chore: Disable public document subscription when SMTP is not configur…
tommoor Apr 3, 2026
5d52131
Move document redirect logic one component up (#11917)
apoorv-mishra Apr 3, 2026
c4930f3
fix: Breadcrumb item text disappearing when document has icon (#11942…
tommoor Apr 3, 2026
d2f94f5
fix: Short search filter on Group settings (#11945)
tommoor Apr 3, 2026
b7afc9e
fix: Notification panel height (#11949)
tommoor Apr 3, 2026
3421b5a
fix: Breadcrumb padding
tommoor Apr 3, 2026
d4f747b
chore: Remove auto creation of share link (#11950)
tommoor Apr 4, 2026
81ef635
fix: Update mention search query during IME compositionupdate (#11944)
liminaire-x Apr 4, 2026
f901435
fix: Cannot navigate to document out of present mode (#11952)
tommoor Apr 4, 2026
4ad1baa
fix: Add support for full width at symbol (#11951)
tommoor Apr 4, 2026
b9c9dc4
Potential fixes for 3 code quality findings (#11955)
tommoor Apr 4, 2026
741f6c0
fix: Current user last active at (#11957)
tommoor Apr 4, 2026
a027935
fix: Hide image controls and pointers in present mode (#11958)
tommoor Apr 4, 2026
e0021a3
Display keyboard shortcuts in menus where available (#11959)
tommoor Apr 4, 2026
a0c70ce
fix: Email is removed from group members table (#11961)
tommoor Apr 4, 2026
a411e08
chore: Address code quality findings (#11960)
tommoor Apr 4, 2026
d4dec42
fix: Validate host parameter stored in OAuth state on failure redirec…
tommoor Apr 4, 2026
30d00df
fix: Sidebar auto-opens when draft comment is present (#11964)
tommoor Apr 4, 2026
2fffb2f
wip
tommoor Apr 5, 2026
5a8e730
wip
tommoor Apr 5, 2026
121c6e1
wip
tommoor Apr 5, 2026
45b6c3e
Styling finetuning
tommoor Apr 5, 2026
55e29bb
test
tommoor Apr 5, 2026
6b950aa
Refactor collapsible code blocks: line-based collapse, styling fixes,…
tommoor Apr 5, 2026
09fe5d6
feat: Auto-collapse tall code blocks (#11967)
tommoor Apr 5, 2026
f8de6f2
Merge branch 'main' of github.com:outline/outline
tommoor Apr 5, 2026
3ace24c
chore: Add attachment permissions comment (#11972)
tommoor Apr 5, 2026
ffe4e5c
fix: Remove forced newline from toggle in list (#11976)
tommoor Apr 6, 2026
64e75da
fix: Address various a11y findings (#11977)
tommoor Apr 6, 2026
3255f6b
fix: Minor fixes to query notices (#11978)
tommoor Apr 6, 2026
34126a5
fix: Small issue where scrollable area borders do not appear on first…
tommoor Apr 7, 2026
e24fe02
fix: Timeout on query notice
tommoor Apr 7, 2026
fdb0d84
chore: Stagger cron cleanup tasks (#11986)
tommoor Apr 9, 2026
c72346b
fix: Skip auto-closing PRs with "pinned" label (#11991)
tommoor Apr 10, 2026
d840a7a
chore(deps): bump axios from 1.13.2 to 1.13.5 (#11992)
dependabot[bot] Apr 10, 2026
c0ebed6
feat: Add patch support to MCP (#11987)
tommoor Apr 10, 2026
21d4816
Copy fullWidth property when duplicating documents (#11980)
wmTJc9IK0Q Apr 10, 2026
15524cd
fix: Sanitize mention href (#11993)
tommoor Apr 10, 2026
79df2f2
fix: Dropped content in Markdown parser with mixed checklist content …
tommoor Apr 10, 2026
c6a1db6
fix: Flaky i18n test from repeated singleton re-initialization (#11999)
tommoor Apr 10, 2026
fb9f4bb
feat: Allow replacing custom emoji image (#11998)
tommoor Apr 10, 2026
d54a861
Avoid reporting max payload size exceeded errors to Sentry in collabo…
Copilot Apr 11, 2026
e8bafaa
Refactor share policy guards (#12004)
tommoor Apr 11, 2026
4d799e7
fix: Checklist toggle overlapping content in table cells (#12005)
tommoor Apr 12, 2026
6874b02
Add max character count to inputs (#12006)
tommoor Apr 12, 2026
b650a0f
fix: New shares do not include children (#12009)
tommoor Apr 13, 2026
b4c1f88
feat: Allow document unfurling with `shareId` (#12007)
tommoor Apr 13, 2026
b935dd7
chore(deps): bump prosemirror-tables from 1.8.3 to 1.8.5 (#12020)
dependabot[bot] Apr 13, 2026
299e072
chore(deps): bump nodemailer from 7.0.11 to 7.0.13 (#12019)
dependabot[bot] Apr 13, 2026
336bbb2
chore(deps): bump the fortawesome group with 3 updates (#12017)
dependabot[bot] Apr 13, 2026
4a1c9de
chore: Remove url from error message to improve fingerprint matching …
tommoor Apr 13, 2026
f9c5540
fix: action.ancestors can be undefined (#12024)
tommoor Apr 13, 2026
aab64da
fix: Natural embed resizing (#12012)
tommoor Apr 13, 2026
054404d
fix: Missing `+` on shared doc shortcut display (#12013)
tommoor Apr 13, 2026
fc16d31
fix: Auto-hide TOC when window shrinks below mobile breakpoint (#12014)
tommoor Apr 13, 2026
d9b54c6
fix: Guard against undefined boundsRef in MediaDimension (#12026)
tommoor Apr 13, 2026
e61de60
fix: Handline for top-level node in getCurrentBlock (#12022)
tommoor Apr 13, 2026
51ba027
chore: Add missing error handler on `MutexLock` (#12021)
tommoor Apr 13, 2026
f4f2506
fix: Guard IndexeddbPersistence for environments without indexedDB (#…
tommoor Apr 13, 2026
6c7a38f
fix: Handle unhandled thrown object (#12011)
tommoor Apr 13, 2026
db26dd5
fix: Did not find anchor as previous sibling of heading (#12029)
tommoor Apr 14, 2026
0d47c10
fix: Runtime check for `indexeddb` (#12028)
tommoor Apr 14, 2026
ff57958
fix: Cannot access property `pos` (#12031)
tommoor Apr 14, 2026
b304254
fix: Shared doc should respect 'Show last modified' option when logge…
tommoor Apr 14, 2026
831c6f0
fix: User errors should not be set DD spans (#12035)
tommoor Apr 14, 2026
88ae883
chore: Simplify deleted team handling in teamProvisioner (#12036)
tommoor Apr 14, 2026
46f1f99
fix: Code blocks should not appear collapsed in print/PDF export (#12…
tommoor Apr 14, 2026
d3f1884
fix: Back/forward controls in desktop app (#12046)
tommoor Apr 14, 2026
9b270da
Add `cmd+k` shortcut hint to search input (#12045)
tommoor Apr 14, 2026
f1e4077
Update REA   U REAME.md (#12042)
tommoor Apr 14, 2026
3fa5e74
chore: Bump fast-xml-parser from 5.2.5 to 5.5.7 (#12054)
tommoor Apr 15, 2026
89fe4b8
fix: User errors still reported to DD (#12050)
tommoor Apr 15, 2026
b494f64
fix: Silence expected ResourceLockedError during Redlock retries (#12…
tommoor Apr 15, 2026
6c569f3
fix: Add default value for collaboratorIds (#12048)
tommoor Apr 15, 2026
ff2e408
fix: Search input in keyboard shortcuts is not rounded (#12047)
tommoor Apr 15, 2026
0d98754
fix: Draft border is not visible in dark mode (#12051)
tommoor Apr 15, 2026
ff34c93
fix: Remove dupe translation string
tommoor Apr 15, 2026
2a2774a
chore: Update `modelcontextprotocol` (#12052)
tommoor Apr 15, 2026
03c3be4
fix: npmMinimalAgeGate incorrectly set, upgrade axios, aws (#12057)
tommoor Apr 15, 2026
36ab06a
feat: Add recent documents menu on desktop (#12063)
tommoor Apr 16, 2026
f1033f3
chore: Patch upgrade all dependencies (#12061)
tommoor Apr 16, 2026
3c6e7ef
chore(deps): bump dompurify from 3.3.3 to 3.4.0 (#12065)
dependabot[bot] Apr 16, 2026
a521976
chore(deps): bump hono from 4.11.9 to 4.12.12 (#12059)
dependabot[bot] Apr 16, 2026
d7cea83
chore(deps): bump express-rate-limit from 8.2.1 to 8.3.2 (#12058)
dependabot[bot] Apr 16, 2026
30a14d7
PR feedback (#12064)
tommoor Apr 16, 2026
395da9e
chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 (#12066)
dependabot[bot] Apr 16, 2026
5e89016
fix: 204 response for internal docs not found (#12067)
tommoor Apr 16, 2026
15bd969
fix: Handle trailing space on code challenge method (#12068)
tommoor Apr 16, 2026
7a4b545
chore: vendor autotrack library (#12070)
tommoor Apr 16, 2026
a0acf41
New Crowdin updates (#11759)
outline-translations Apr 16, 2026
1596e51
chore(deps): bump @node-oauth/oauth2-server from 5.2.1 to 5.3.0 (#12081)
dependabot[bot] Apr 16, 2026
26f5bb9
fix: Unable to search drafts without a collection (#12079)
tommoor Apr 16, 2026
fccc343
feat: Add Hebrew as a language option (#12083)
tommoor Apr 16, 2026
8e371ea
Add argument to `suppressEmail` when inviting users through API (#12082)
tommoor Apr 17, 2026
5e1a5a2
fix: Flaky test (#12085)
tommoor Apr 17, 2026
400c0aa
fix: Flaky test (#12069)
tommoor Apr 17, 2026
5bbc240
feat: Add diffs to share subscription notifications (#12084)
tommoor Apr 17, 2026
cbb5328
fix: Flaky test (#12087)
tommoor Apr 17, 2026
60903fe
Allow passing CSP nonce to exported html (#12088)
tommoor Apr 17, 2026
e49e313
Increase MCP guidance limit (#12097)
tommoor Apr 18, 2026
347bdb1
fix: Ensure OTP is bound to workspace (#12096)
tommoor Apr 18, 2026
505082b
fix: Correctly validate uploaded file size using "local" storage opti…
tommoor Apr 18, 2026
04debcb
fix: Disallow invalid scopes (#12099)
tommoor Apr 18, 2026
4dd24b5
fix: Validate that shares contain only a `documentId` or `collectionI…
tommoor Apr 18, 2026
5cb4b71
feat: Improve MCP ability to read tree hierarchy (#12102)
tommoor Apr 18, 2026
6d7d8b0
fix: trimFilenameAndExt should not be passed full path (#12101)
tommoor Apr 18, 2026
600108b
feat: Document insight rollups (#12086)
tommoor Apr 18, 2026
60562f4
fix: Handle GitLab Flavored Markdown (#11930)
tommoor Apr 18, 2026
267835c
Add missing controls to starred documents (#12100)
tommoor Apr 18, 2026
8535f2c
chore: Refactor `WebsocketProvider` to functional component (#12034)
tommoor Apr 18, 2026
c02ac30
refactor: Convert Document scene to functional component (#12033)
tommoor Apr 18, 2026
b90659d
fix: Remove user id from toggle storage key (#12105)
tommoor Apr 18, 2026
e6cfc45
chore: Upgrade xmldom (#12108)
tommoor Apr 18, 2026
49d5052
feat: RTL layout (#12107)
tommoor Apr 18, 2026
182f7f3
feat: Allow comparing any two revisions in document history (#12001)
RHawkins-Fisher Apr 18, 2026
36f6cb9
fix: Do not clear local database on passive logout (#12109)
tommoor Apr 19, 2026
46b040a
fix: Validate move operation path prefix per RFC 6902 (#11835)
tommoor Apr 19, 2026
666b387
feat: Document history design (#12112)
tommoor Apr 19, 2026
ce409c0
fix: Return to empty search on 'Search' sidebar click (#12115)
tommoor Apr 19, 2026
c52c96d
perf: Remove unneccesary location subscription (#12116)
tommoor Apr 19, 2026
7b182f9
More styling improvements to highlight control
tommoor Apr 19, 2026
69e8aac
Move "Api Keys" listing to filterable table (#12117)
tommoor Apr 19, 2026
321b232
Move "Webhook" settings to table (#12119)
tommoor Apr 19, 2026
06d5969
fix: Update Node.js to 24.15.0 (#12120)
github-actions[bot] Apr 20, 2026
1b91a29
fix: Use verified JWT for rate limiting (#12114)
tommoor Apr 20, 2026
a422c53
chore(deps): bump @simplewebauthn/browser from 13.2.2 to 13.3.0 (#12125)
dependabot[bot] Apr 20, 2026
4e07cf7
chore(deps): bump the aws group with 5 updates (#12124)
dependabot[bot] Apr 20, 2026
276ae71
Various fixes (#12121)
tommoor Apr 20, 2026
1649b46
fix: Incorrect nesting in publish dialog (#12122)
tommoor Apr 20, 2026
d55c9cc
fix: Reduce noise from XHR upload network errors (#12132)
tommoor Apr 21, 2026
733355f
fix: Ignore Outlook SafeLink crawler errors in Sentry (#12131)
tommoor Apr 21, 2026
bc982cb
fix: Sentry for handled errors in MCP (#12130)
tommoor Apr 22, 2026
26bc3fb
chore(deps): bump @tanstack/react-virtual from 3.13.23 to 3.13.24 (#1…
dependabot[bot] Apr 22, 2026
05da80d
fix: Drag active links with children (#12133)
tommoor Apr 22, 2026
ccbc9b7
fix: Null reference (#12135)
tommoor Apr 22, 2026
5b22833
chore(deps): bump i18next-fs-backend from 2.6.3 to 2.6.4 (#12136)
dependabot[bot] Apr 22, 2026
eefa8d4
Add year headings to compare version select (#12138)
tommoor Apr 22, 2026
1b0a5fb
fix: TOC auto-closes, closes #12140 (#12143)
tommoor Apr 23, 2026
22538e7
fix: Scrollbar flash in new collection modal (#12144)
hmacr Apr 24, 2026
4c46493
feat: Allow geo:, maps:, and magnet: link protocols (#12149)
tommoor Apr 24, 2026
f3f97cc
feat: Add hex swatch previews (#12150)
tommoor Apr 24, 2026
e59d7ee
fix: Escape key should clear search highlight when editor does not ha…
tommoor Apr 24, 2026
568b4ac
v1.7.0
tommoor Apr 24, 2026
382dcf6
chore(deps): bump postcss from 8.5.6 to 8.5.10 (#12159)
dependabot[bot] Apr 24, 2026
f65389b
chore: Add Redis PING healthcheck (#12157)
tommoor Apr 24, 2026
9c2d8d9
fix: Shift-Tab on list item inside toggle block outdents entire block…
tommoor Apr 25, 2026
e034a28
chore: Address AI code quality findings (#12163)
tommoor Apr 25, 2026
b592356
chore(deps): bump i18next-http-backend from 2.7.3 to 3.0.5 (#12137)
dependabot[bot] Apr 25, 2026
1d0a611
New Crowdin updates (#12094)
outline-translations Apr 25, 2026
22f5618
chore: Upgrade socket.io-parser (#12053)
tommoor Apr 25, 2026
b04002a
Style refinement of switch input (#12164)
tommoor Apr 25, 2026
c4d764e
feat: Show a chip in header with search term when highlighted in doc …
tommoor Apr 25, 2026
2e3ae72
feat: Show toggle theme shortcut in keyboard shortcuts modal (#12168)
tommoor Apr 26, 2026
7ed41ea
Add per-share branding: title and logoUrl overrides (#12003)
Copilot Apr 27, 2026
3f07771
chore: Improve setup against supply chain attacks (#12170)
tommoor Apr 27, 2026
f111c88
Tweak TOC positioning on share (#12171)
tommoor Apr 27, 2026
c6aacfe
chore: Clear minimatch ReDoS advisories from audit ignore list (#12177)
tommoor Apr 27, 2026
ec2463e
chore: Bump zod to 4.3.6 (#12178)
tommoor Apr 27, 2026
c280bdd
chore: Clear picomatch ReDoS advisories from audit ignore list (#12179)
tommoor Apr 27, 2026
e515fa5
chore: Bump fast-xml-parser to 5.7.0 to address GHSA-gh4j-gqv2-49f6 (…
tommoor Apr 27, 2026
88d871e
chore: Clear lodash _.template injection advisory from audit ignore l…
tommoor Apr 27, 2026
a310358
chore(deps): bump dottie from 2.0.6 to 2.0.7 (#12182)
dependabot[bot] Apr 27, 2026
8e83544
chore: Bump qs to 6.14.2 to address GHSA-w7fw-mjwx-w883 (#12183)
tommoor Apr 27, 2026
11d10bb
chore: Remove redundant package resolutions (#12184)
tommoor Apr 27, 2026
c0521db
chore: Bump ajv to 8.18.0 to address GHSA-2g4f-4pwh-qvx6 (#12185)
tommoor Apr 27, 2026
755bf03
chore(deps): bump pg from 8.16.3 to 8.20.0 (#12186)
dependabot[bot] Apr 27, 2026
26049e3
chore(deps): bump compressorjs from 1.2.1 to 1.3.0 (#12187)
dependabot[bot] Apr 27, 2026
5058ad3
chore(deps): bump class-validator from 0.14.4 to 0.15.1 (#12188)
dependabot[bot] Apr 27, 2026
9cc22df
chore(deps): bump dd-trace from 5.82.0 to 5.98.0 (#12189)
dependabot[bot] Apr 27, 2026
bf69658
chore(deps): bump @css-inline/css-inline-wasm from 0.18.0 to 0.20.2 (…
dependabot[bot] Apr 27, 2026
c34567c
chore(deps): bump ioredis from 5.8.2 to 5.10.1 (#12190)
dependabot[bot] Apr 27, 2026
af77bd6
fix: Uncollapse code when printing (#12193)
tommoor Apr 28, 2026
816a474
chore(deps-dev): bump oxlint and tsgolint (#12127)
dependabot[bot] Apr 28, 2026
9b7ccf8
fix: Resolve no-floating-promises lint errors (#12196)
tommoor Apr 28, 2026
5610df5
chore: Reduce no-explicit-any warnings in server directory (#12202)
tommoor Apr 28, 2026
cd9e79b
chore: replace explicit any with concrete types in shared (#12201)
tommoor Apr 28, 2026
adbffc0
chore: clear mechanical lint warnings (Phase 1) (#12198)
tommoor Apr 29, 2026
87bb792
chore: enable `typescript/restrict-template-expressions` lint rule (#…
tommoor Apr 29, 2026
f9a2cbc
chore: resolve remaining unbound-method lint warnings (#12206)
tommoor Apr 29, 2026
e29c910
chore: resolve unbound-method warnings in NotionConverter (#12205)
tommoor Apr 29, 2026
4c85c4d
chore: resolve unbound-method lint warnings in tests (#12204)
tommoor Apr 29, 2026
f8e70c2
chore: resolve mechanical react-hooks/exhaustive-deps warnings (#12207)
tommoor Apr 29, 2026
57308c4
chore: resolve lint warnings (no-explicit-any, no-redundant-type-cons…
tommoor Apr 29, 2026
49ca7d5
chore(deps): bump react-hook-form and vite-plugin-pwa (#12212)
tommoor Apr 29, 2026
0e07432
fix: Add additional validation to table attributes (#12156)
tommoor Apr 29, 2026
281b778
fix: Suspended users should not be included in cached member count (#…
tommoor Apr 29, 2026
4c8a1c8
chore: resolve no-explicit-any and no-base-to-string lint warnings (#…
tommoor Apr 29, 2026
d2328b1
fix: Add gap between search and actions in header (#12214)
tommoor Apr 29, 2026
bac2b01
perf: Refactor sidebar expanded state (#12215)
tommoor Apr 29, 2026
69f46b1
fix: Handle invalid post-login redirect path in Firefox (#12218)
tommoor Apr 30, 2026
639d03f
fix: Nesting and icon of doc shared to group
tommoor Apr 30, 2026
f3f9b3e
fix: Incorrect behavior of mod-left in heading node in FF (#12219)
tommoor Apr 30, 2026
dbafd37
chore: Add manual confirmation before build published (#12223)
tommoor Apr 30, 2026
6763ecb
fix: API keys with global read scope not being saved correctly (#12225)
tommoor Apr 30, 2026
773750d
Add `RATE_LIMITER_MULTIPLIER` configuration for self-hosted instances…
tommoor Apr 30, 2026
4c2b62e
fix: should change `lastModifiedById` when republishing doc (#12227)
tommoor Apr 30, 2026
eaca221
fix: parseXML error in AWS SDK (#12231)
tommoor May 1, 2026
1caf7f9
chore: Increased default model creation rate limits from 10/m to 25/m…
tommoor May 1, 2026
e2c28f4
fix: Autofocus inside lazy-loaded modal and popover (#12146)
hmacr May 1, 2026
1f097b0
chore: resolve no-explicit-any lint warnings in plugins (#12237)
tommoor May 1, 2026
903ce85
perf: Fix exhaustive dep warnings in editor resize hook (#12238)
tommoor May 1, 2026
621089a
fix: Improve validation on subscription creation endpoint (#12240)
tommoor May 2, 2026
8a896dd
feat: Return breadcrumb in MCP responses (#12203)
tommoor May 2, 2026
01f2643
Add summary to MCP response where available (#12241)
tommoor May 2, 2026
269e7d0
chore: resolve lint warnings in oauth routes and BaseStorage (#12243)
tommoor May 2, 2026
f270611
Add title guidance for MCP (#12242)
tommoor May 2, 2026
fca1022
chore: promote no-explicit-any from warn to error (#12244)
tommoor May 2, 2026
cae8c78
feat: Add `delete_document` and `delete_collection` MCP tools (#12245)
tommoor May 2, 2026
8c716b1
chore: Update editor generics (#12247)
tommoor May 2, 2026
f50bb00
Refactor of OAuth account linking flows (#12246)
tommoor May 2, 2026
61709ea
fix: Minor warnings on login screen (#12250)
tommoor May 3, 2026
cc24274
fix: Various small layout issues with mobile
tommoor May 4, 2026
04a13de
v1.7.1
tommoor May 4, 2026
5b4146a
merge(sync): merge v1.7.1 into foss-main
aznszn May 20, 2026
1d6570b
fix(ci): resolve audit and lint failures
aznszn May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 12 additions & 1 deletion .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,18 @@
"include": ["SOURCE_COMMIT", "SOURCE_VERSION"]
}
],
"tsconfig-paths-module-resolver"
[
"module-resolver",
{
"root": ["./"],
"alias": {
"@server": "./server",
"@shared": "./shared",
"~": "./app",
"plugins": "./plugins"
}
}
]
],
"env": {
"production": {
Expand Down
22 changes: 22 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
NODE_ENV=production

# –––––––––––––––––––––––––––––––––––––––––
# ––––––––––– FILE-BASED SECRETS ––––––––
# –––––––––––––––––––––––––––––––––––––––––
#
# Any environment variable can be loaded from a file by appending _FILE to the
# variable name and setting the value to the path of the file. This is useful
# for Docker secrets and other file-based secret management systems.
#
# For example, instead of:
# SECRET_KEY=your_secret_key
# You can use:
# SECRET_KEY_FILE=/run/secrets/outline_secret_key
#
# The file contents will be trimmed of leading/trailing whitespace. If both the
# variable and the _FILE variant are set, the direct variable takes precedence.

# This URL should point to the fully qualified, publicly accessible, URL. If using a
# proxy this will be the proxy's URL.
URL=
Expand Down Expand Up @@ -207,6 +223,12 @@ RATE_LIMITER_ENABLED=true
RATE_LIMITER_REQUESTS=1000
RATE_LIMITER_DURATION_WINDOW=60

# Multiplier applied to the hardcoded per-endpoint API rate limits. Use values
# greater than 1 to make the limits more lenient (e.g. 2 doubles the allowed
# requests), or less than 1 to make them stricter. Effective limits are rounded
# to the nearest integer with a minimum of 1. Defaults to 1.
RATE_LIMITER_MULTIPLIER=1


# ––––––––––––––––––––––––––––––––––––––
# ––––––––––– INTEGRATIONS –––––––––––
Expand Down
11 changes: 11 additions & 0 deletions .env.test
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ SLACK_VERIFICATION_TOKEN=test-token-123
GITHUB_CLIENT_ID=123;
GITHUB_CLIENT_SECRET=123;
GITHUB_APP_NAME=outline-test;
GITHUB_APP_ID=123
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA\n-----END RSA PRIVATE KEY-----"

GITLAB_CLIENT_ID=123
GITLAB_CLIENT_SECRET=123
Expand All @@ -29,6 +31,15 @@ OIDC_USERINFO_URI=http://localhost/userinfo

IFRAMELY_API_KEY=123

NOTION_CLIENT_ID=123
NOTION_CLIENT_SECRET=123

LINEAR_CLIENT_ID=123
LINEAR_CLIENT_SECRET=123

FIGMA_CLIENT_ID=123
FIGMA_CLIENT_SECRET=123

RATE_LIMITER_ENABLED=false

FILE_STORAGE=local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ jobs:

if (prAge < TWO_WEEKS) continue;

const hasSkipLabel = pr.labels.some(label =>
label.name === 'pinned'
);

if (hasSkipLabel) continue;

const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
Expand Down
50 changes: 37 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ jobs:
- uses: actions/checkout@v5
- name: Enable Corepack
run: corepack enable
- name: Use Node.js 22.x
- name: Use Node.js 24.x
uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: yarn install --immutable
Expand All @@ -48,13 +48,13 @@ jobs:
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- run: yarn lint --quiet

types:
Expand All @@ -66,21 +66,41 @@ jobs:
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- run: yarn tsc

audit:
needs: [setup, changes]
if: ${{ needs.changes.outputs.deps == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- run: yarn npm audit --severity high --recursive --environment production

changes:
runs-on: ubuntu-latest
outputs:
config: ${{ steps.filter.outputs.config }}
server: ${{ steps.filter.outputs.server }}
app: ${{ steps.filter.outputs.app }}
deps: ${{ steps.filter.outputs.deps }}
steps:
- uses: actions/checkout@v5
- uses: dorny/paths-filter@v2
Expand All @@ -100,6 +120,10 @@ jobs:
- 'shared/**'
- 'package.json'
- 'yarn.lock'
deps:
- 'package.json'
- 'yarn.lock'
- '.yarnrc.yml'

test:
needs: [setup, changes]
Expand All @@ -114,13 +138,13 @@ jobs:
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- run: yarn test:${{ matrix.test-group }}

test-server:
Expand Down Expand Up @@ -152,13 +176,13 @@ jobs:
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- run: yarn sequelize db:migrate
- name: Run server tests
run: |
Expand All @@ -175,13 +199,13 @@ jobs:
run: corepack enable
- uses: actions/setup-node@v5
with:
node-version: 22.x
node-version: 24.x
cache: "yarn"
- name: Restore node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('yarn.lock') }}
key: ${{ runner.os }}-node-modules-24.x-${{ hashFiles('yarn.lock') }}
- name: Set environment to production
run: echo "NODE_ENV=production" >> $GITHUB_ENV
- run: yarn vite:build
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/docker-build-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Docker Build Check

on:
push:
paths:
- "Dockerfile"
- "Dockerfile.base"
pull_request:
paths:
- "Dockerfile"
- "Dockerfile.base"

env:
BASE_IMAGE_NAME: outline-base

jobs:
build:
runs-on: ubicloud-standard-8
steps:
- name: Checkout
uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker

- name: Build base image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.base
tags: ${{ env.BASE_IMAGE_NAME }}:latest
push: false

- name: Build main image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: false
build-args: |
BASE_IMAGE=${{ env.BASE_IMAGE_NAME }}:latest
Loading
Loading