Skip to content

v1.11.0

Latest

Choose a tag to compare

@tommoor tommoor released this 12 Oct 14:22
· 18 commits to main since this release
v1.11.0
cb02072

What's Changed

A continued focus on server and client performance, see the separate section below. We're ensuring Outline maintains it's position as the fastest team knowledge base on the market.

Highlights

  • A drag handle is now available on all root-level blocks in #12167
  • Alt+Up/Down now moves to the previous or next document in the sidebar in #14034
  • Documents and collections can now record a reason for being archived or deleted in #13784
  • Added Open Knowledge Format (OKF) import in #13580
  • Groups can now optionally have an icon and color in #14011
  • The desktop app now shows a toast with actions when a file download completes in #13769

MCP

  • Skills are now exposed over MCP in #13989
  • The MCP server and OAuth provider now follow the latest MCP spec guidance in #13961

Performance improvements

  • Avoided an N+1 query in share subscription notifications in #13719
  • documentCollaborativeUpdater now does its computation outside the transaction in #13720
  • The loading bar now animates with transform in #13755
  • Placeholder candidates are now filtered before conditions are evaluated in #13760
  • Editor decorations are now mapped through inline edits instead of rebuilt in #13759
  • Document sidebar panels now stay mounted with React Activity in #13845
  • Store filter methods are now memoized in #13870
  • Simple read-only comments now render without an editor view in #13871
  • Document row menus and tooltips are now deferred until interaction in #13869
  • Removed redundant queries from document API routes in #13884
  • documentStructure is now excluded from the collections.list query in #13886
  • Reduced query cost and reparsing in the comments API in #13887
  • Prosemirror parsing is now memoized in DocumentHelper in #13892
  • Templates are now loaded on demand in #13895
  • The statement timeout is now sent in the same round trip as the transaction start in #13937
  • The recently viewed documents query is faster in #13970
  • Updating the collection structure no longer loads full subtrees in #13982
  • Sidebar document trees are now virtualized in #13993
  • Reduced editor mount cost in #14032
  • Opening a document from the sidebar now uses less main-thread time in #14033

Other improvements

  • Sidebar section headers now have menus in #13801
  • The child document list now supports multi-select in #13782
  • Users are now notified when added to or removed from a group in #13999
  • Breadcrumbs are now shown in hovercards in #13876
  • Line-height is now adjusted for Chinese, Japanese and Korean documents by @Tlntin in #13822
  • Date mentions are now formatted per locale in #13969
  • Gmail and Outlook links are now shown after an email sign-in request in #13761
  • The export menu now shows file extensions and the print shortcut in #13778
  • Maximum comment length has been increased to 10k characters in #13814
  • A code block that is most of the document is no longer auto-collapsed in #13815
  • The find panel on mobile now has a close button and a two-line layout in #13818
  • comments.update now accepts a text param in #13854
  • Added a visible uncollapse sidebar button in the header in #13872
  • Group descriptions are now synced, and groups are re-synced on SSO validation in #13889
  • Root domain app links now redirect to the signed-in workspace in #13923
  • The group members table now shows who added each member in #14000
  • A security notice is now sent to the previous address when an account email changes in #13979
  • Authentication requirements on account settings routes have been tightened in #13980
  • The admin service is now prevented from running in production in #13758
  • Collaboration service now validates awareness identity in #13804
  • Generated team subdomains no longer include the top-level domain in #13816
  • Analytics events are now sent through gtag, and WebMCP tool registration is tracked in #13792

Fixes

  • Service worker is now served with a no-cache header in #13716
  • Native image drag copies selected images by @UmbraCi in #13635
  • Pinned document cards ignore clicks and trackpad taps by @misha-sunborn in #13708
  • Editor node drags show the sidebar document ghost in #13723
  • Checklist with multiple items corrupts neighbouring lists in #13724
  • Crash when image caption blurs during node view teardown in #13731
  • Lightbox flickers at the end of the close animation in #13730
  • Show notice type for list selections in #13721
  • Clarify missing OAuth state errors in #13734
  • Scope authentication matching to the signing-in provider in #13737
  • Temporary multipart upload files are not cleaned up in #13752
  • Incorrect shared document preview links in #13756
  • Source uploads not removed after imports in #13757
  • Guests with edit rights cannot duplicate documents by @breken-ai in #13717
  • GitLab webhook integration updates in #13764
  • Validate share id on public share endpoints in #13766
  • Selection lands after a newly inserted notice instead of inside it in #13768
  • Backspace inside a notice orphans the emptied paragraph in Chrome in #13770
  • Scrollbars visible on the suggestion menu in #13779
  • Table of contents closes immediately on desktop when a header is narrow in #13781
  • Gap between archived/deleted banner and document title too large in #13780
  • Sidebar selection changes when a prompt blocks navigation in #13785
  • Group description not stored on creation in #13791
  • Validate custom theme colors in #13800
  • Enforce maxLength for all input paths in ContentEditable in #13793
  • Detect new subscriptions with xmax instead of timestamp comparison in #13803
  • Permission select text color too dim in #13805
  • Patch edit mode drops content spliced inside container blocks in #13794
  • Crash when pasting code over a selection near the end of a document in #13807
  • Imported attachment keys end in "null" when no name is set by @mturac in #13750
  • Revisions sometimes attributed to the wrong user in collaborative edits in #13809
  • Tab after a toggle block throws for non-paragraph blocks in #13825
  • Document search trigger fails when tsvector exceeds size limit in #13832
  • Language detection stores nothing for Chinese, Arabic, Persian and others in #13833
  • Update loop in link editor search on focus in #13840
  • Editor steals focus when opening a document that was never edited in #13847
  • Attachments made public when S3 ACLs are disabled in #13867
  • Cmd+Enter does not submit a new comment in #13865
  • Lazy editor components fail to load after a deploy in #13868
  • Event listener throws when browser dispatches events during render in #13880
  • Line breaks lost in Markdown table cells in #13866
  • Azure profile handling in #13883
  • Group timestamp not updated when membership changes in #13888
  • Role badges wrap in users table in #13893
  • External groups with duplicate names sync inaccurately in #13894
  • Table controls around merged cells in #13897
  • Allow CloudFront origin in CSP object-src in #13909
  • Re-authorize collaboration connections on document lifecycle events in #13899
  • Handle sign out events consistently across realtime services in #13936
  • Header buttons not clickable while find panel is open in #13938
  • Header actions overlap the window scrollbar in #13919
  • Improve collaboration connection lifecycle in #13949
  • Consecutive floated images not aligned horizontally in #13900
  • Attachment row not destroyed on failed upload in files.create by @okxint in #13914
  • Document and collection mentions on public shares navigate outside the share in #13920
  • Mobile document options drawer visible when printing in #13971
  • Editor crash on keydown events without a key in #13975
  • findByPk ignores rejectOnEmpty for malformed ids in #13974
  • Lists in table cells lost on Markdown round-trip in #13978
  • Unhandled rejection when Zapier stylesheet fails to load in #13981
  • Guard node view positions after the view is destroyed in #13983
  • "Created by me" tab lists documents the user collaborated on in #13988
  • Custom workspace logo missing from link previews of app pages in #13986
  • Shared documents and unplaced drafts missing from recently viewed in #13987
  • Private-use URI schemes rejected for OAuth redirect URIs by @tahsinrefat22 in #13945
  • Search results not revealed in paginated sidebar collections in #13786
  • Events not emitted when deleting synced groups in #13998
  • Lightbox stays open when editor document is replaced in #14003
  • Viewing a document with URL mentions of documents creates revisions in #14004
  • Table grips hidden behind add row and column controls in #13997
  • Vertical movement of hover card on enter in #14008
  • Select-all checkbox shown on empty tables in #14009
  • Tighten document visibility in realtime and recent views in #14007
  • Spelling, grammar, punctuation, and translation string errors in #14017
  • Negative sign placed incorrectly after currency symbol when sorting tables in #14018
  • Percent signs lost in exported file names in #14019
  • Browser languages without a region not resolved to a supported locale in #14020
  • Author names lost in template variables in #14021
  • Previous team subdomains not all persisted in #14022
  • Share custom slugs not matched exactly when looking up shares in #14025
  • Heading number periods and full text color when not editing in #14026
  • Model fields keyed by minified class name in #14027
  • Tapping a sidebar icon on mobile opens the document instead of expanding it in #14029
  • Table cells with invalid spans in #14028
  • Divider selection color, border color, and drag handle alignment in #14030
  • Emoji menu conflicts with ::: notice shortcut in #14031
  • Notice toolbar shows on load when document starts with a notice in #14036
  • Backspace does not delete RTL text in some table cells in #14054
  • Consistent client authentication on OAuth token endpoint in #14055

New Contributors

Full Changelog: v1.10.1...v1.11.0