Files
upstream-mirror 30810eecd7
Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Code scanning - action / CodeQL-Build (push) Failing after 2s
snapshot of https://github.com/RocketChat/Rocket.Chat.git (develop, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:21:02 +05:00

19 KiB

Change Log

0.32.0

Minor Changes

  • (#41113) Adds support for horizontal rules (thematic breaks) in the message parser. A line of 3 or more contiguous dashes (---, with nothing else on the line) is parsed into a new HORIZONTAL_RULE block node and rendered with Fuselage's Divider. The node carries an optional fallback — a [start, end] offset span into the original source — so renderers without horizontal-rule support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST. Only - is accepted: CommonMark also allows * and _, but those collide with emphasis and with censored words (bad-words masks a term as a run of *), so a bare *** / _______ line stays text/emphasis instead of becoming a divider.

  • (#41109) Adds GFM-style table support to the message parser and renders it in gazzodown.

    Parser: tables require a leading and trailing pipe on every row, support column alignment via the delimiter row (:---, :--:, ---:), and allow inline markup inside cells (a literal pipe must be escaped as \|). New TABLE, TABLE_ROW, and TABLE_CELL AST nodes are emitted. The TABLE node also carries an optional fallback — a [start, end] offset span into the original source — so renderers without table support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST.

    Rendering: gazzodown renders these tables using Fuselage's Table components with per-column alignment, and shows a compact single-row preview of the table header in message previews.

  • (#41110) Normalizes the Timestamp node's fallback to the same [start, end] source-offset span used by other blocks, instead of a reconstructed plain-text node. The type still allows the previous Plain form so already-persisted data keeps type-checking and is safely ignored at render time.

Patch Changes

  • (#41312) Fixes code fences failing to render when a line inside them ends with an inline-code backtick (e.g. - **Node**: `22.22.3`). A trailing backtick immediately before a line break could not be consumed as content, causing the whole ``` block to fall back to markdown parsing and split apart. Trailing 1-2 backticks before a line end (or EOF) are now treated as code content.

  • (#41441) Fixes an issue in which some combined emojis like 😶‍🌫️, 😮‍💨 and 😵‍💫 were being displayed as two separate emojis, and the flags of some countries like England 🏴󠁧󠁢󠁥󠁮󠁧󠁿, Scotland 🏴󠁧󠁢󠁳󠁣󠁴󠁿 and Wales 🏴󠁧󠁢󠁷󠁬󠁳󠁿 were being displayed as a plain black flag

0.32.0-rc.0

Minor Changes

  • (#41113) Adds support for horizontal rules (thematic breaks) in the message parser. A line of 3 or more contiguous dashes (---, with nothing else on the line) is parsed into a new HORIZONTAL_RULE block node and rendered with Fuselage's Divider. The node carries an optional fallback — a [start, end] offset span into the original source — so renderers without horizontal-rule support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST. Only - is accepted: CommonMark also allows * and _, but those collide with emphasis and with censored words (bad-words masks a term as a run of *), so a bare *** / _______ line stays text/emphasis instead of becoming a divider.

  • (#41109) Adds GFM-style table support to the message parser and renders it in gazzodown.

    Parser: tables require a leading and trailing pipe on every row, support column alignment via the delimiter row (:---, :--:, ---:), and allow inline markup inside cells (a literal pipe must be escaped as \|). New TABLE, TABLE_ROW, and TABLE_CELL AST nodes are emitted. The TABLE node also carries an optional fallback — a [start, end] offset span into the original source — so renderers without table support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST.

    Rendering: gazzodown renders these tables using Fuselage's Table components with per-column alignment, and shows a compact single-row preview of the table header in message previews.

  • (#41110) Normalizes the Timestamp node's fallback to the same [start, end] source-offset span used by other blocks, instead of a reconstructed plain-text node. The type still allows the previous Plain form so already-persisted data keeps type-checking and is safely ignored at render time.

Patch Changes

  • (#41312) Fixes code fences failing to render when a line inside them ends with an inline-code backtick (e.g. - **Node**: `22.22.3`). A trailing backtick immediately before a line break could not be consumed as content, causing the whole ``` block to fall back to markdown parsing and split apart. Trailing 1-2 backticks before a line end (or EOF) are now treated as code content.

  • (#41441) Fixes an issue in which some combined emojis like 😶‍🌫️, 😮‍💨 and 😵‍💫 were being displayed as two separate emojis, and the flags of some countries like England 🏴󠁧󠁢󠁥󠁮󠁧󠁿, Scotland 🏴󠁧󠁢󠁳󠁣󠁴󠁿 and Wales 🏴󠁧󠁢󠁷󠁬󠁳󠁿 were being displayed as a plain black flag

0.31.36

Patch Changes

  • (#39853) Add property-based fuzz testing using fast-check to continuously evaluate memory limits, structural boundaries, and backtracking behavior against heavily randomized markdown arrays.

  • (#39853) feat(message-parser): implement BlockSplitter PoC (Layer 1)

  • (#39853) Add test coverage for isNodeOfType guard bringing branch coverage to 100%

  • (#39853) Add test coverage for joinEmoji behavior through reducePlainTexts

0.31.36-rc.0

Patch Changes

  • (#39853) Add property-based fuzz testing using fast-check to continuously evaluate memory limits, structural boundaries, and backtracking behavior against heavily randomized markdown arrays.

  • (#39853) feat(message-parser): implement BlockSplitter PoC (Layer 1)

  • (#39853) Add test coverage for isNodeOfType guard bringing branch coverage to 100%

  • (#39853) Add test coverage for joinEmoji behavior through reducePlainTexts

0.31.35

Patch Changes

  • (#39062 by @copilot-swe-agent) Fixed blockquotes with empty lines between paragraphs not rendering as a single blockquote. Lines like > or > (empty quote lines) are now treated as part of the surrounding blockquote rather than breaking it into separate quotes.

  • (#39046 by @smirk-dev) Replaces wasteful filter().shift() with find(Boolean) in extractFirstResult to avoid allocating an intermediate filtered array just to get the first truthy element.

  • (#39069 by @copilot-swe-agent) Fixes trailing punctuation (e.g. periods, exclamation marks) being incorrectly included in parsed URLs when they appear at the end of a message. For example, go to https://www.google.com. now correctly parses the URL as https://www.google.com without the trailing period.

  • (#38989) chore(eslint): Upgrades ESLint and its configuration

  • (#39052 by @Shreyas2004wagh) Fixes ordered list AST generation to preserve number: 0 for list items that start at index 0.

0.31.35-rc.0

Patch Changes

  • (#39062 by @copilot-swe-agent) Fixed blockquotes with empty lines between paragraphs not rendering as a single blockquote. Lines like > or > (empty quote lines) are now treated as part of the surrounding blockquote rather than breaking it into separate quotes.

  • (#39046 by @smirk-dev) Replaces wasteful filter().shift() with find(Boolean) in extractFirstResult to avoid allocating an intermediate filtered array just to get the first truthy element.

  • (#39069 by @copilot-swe-agent) Fixes trailing punctuation (e.g. periods, exclamation marks) being incorrectly included in parsed URLs when they appear at the end of a message. For example, go to https://www.google.com. now correctly parses the URL as https://www.google.com without the trailing period.

  • (#38989) chore(eslint): Upgrades ESLint and its configuration

  • (#39052 by @Shreyas2004wagh) Fixes ordered list AST generation to preserve number: 0 for list items that start at index 0.

0.31.34

Patch Changes

  • (#38629 by @copilot-swe-agent) Fixes markdown breaking when text in square brackets appears between hyperlinks. This resolves issues #31418 and #31766 where typing [text] between links would incorrectly parse the markdown structure.

  • (#38779 by @copilot-swe-agent) fixes an issues where markdown link parser to was not handling parentheses in URLs

0.31.34-rc.0

Patch Changes

  • (#38629 by @copilot-swe-agent) Fixes markdown breaking when text in square brackets appears between hyperlinks. This resolves issues #31418 and #31766 where typing [text] between links would incorrectly parse the markdown structure.

  • (#38779 by @copilot-swe-agent) fixes an issues where markdown link parser to was not handling parentheses in URLs

0.31.33

Patch Changes

  • (#38509) Added support for parsing ISO-format timestamps in timestamp markdown

0.31.33-rc.0

Patch Changes

  • (#38509) Added support for parsing ISO-format timestamps in timestamp markdown

0.31.32

Patch Changes

  • (#35172) fixes an issue where the message parser was not properly parsing bold and italic when the symbols would also match an emoticon

0.31.32-rc.0

Patch Changes

  • (#35172) fixes an issue where the message parser was not properly parsing bold and italic when the symbols would also match an emoticon

0.31.31

Patch Changes

  • (#33227) Improved the performance of the message parser

0.31.31-rc.0

Patch Changes

  • (#33227) Improved the performance of the message parser

0.31.30

Patch Changes

0.31.29

Patch Changes

  • (#31810) feat(message-parser): add timestamps pattern

    Usage

    Pattern: <t:{timestamp}:?{format}>

    • {timestamp} is a Unix timestamp
    • {format} is an optional parameter that can be used to customize the date and time format.

    Formats

    Format Description Example
    t Short time 12:00 AM
    T Long time 12:00:00 AM
    d Short date 12/31/2020
    D Long date Thursday, December 31, 2020
    f Full date and time Thursday, December 31, 2020 12:00 AM
    F Full date and time (long) Thursday, December 31, 2020 12:00:00 AM
    R Relative time 1 year ago

0.31.29-rc.0

Patch Changes

  • (#31810) feat(message-parser): add timestamps pattern

    Usage

    Pattern: <t:{timestamp}:?{format}>

    • {timestamp} is a Unix timestamp
    • {format} is an optional parameter that can be used to customize the date and time format.

    Formats

    Format Description Example
    t Short time 12:00 AM
    T Long time 12:00:00 AM
    d Short date 12/31/2020
    D Long date Thursday, December 31, 2020
    f Full date and time Thursday, December 31, 2020 12:00 AM
    F Full date and time (long) Thursday, December 31, 2020 12:00:00 AM
    R Relative time 1 year ago

0.31.28

Patch Changes

  • 7fdfdb1b7 Thanks @dougfabris! - fix(message-parser): Made changes in grammar.pegjs for the strikedown approach

0.31.27

Patch Changes

0.31.26

Patch Changes

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.31.0 (2021-12-28)

Features

0.30.0 (2021-10-06)

Bug Fixes

  • jest: Adjust jest and ts-jest dependencies (#547) (91a4fa1)
  • message-parser: https://domain.com|Test (#546) (faca16f)
  • message-parser: Fix Url and Escaped Markdown (#537) (bc0cbce)

0.29.0 (2021-08-31)

Note: Version bump only for package @rocket.chat/message-parser

0.28.0 (2021-07-30)

Features

  • onboarding-ui: Administrator information form and Organization information form (#489) (b289f68)
  • styled API; monorepo grooming (#482) (1b6b70c)

0.27.0 (2021-06-28)

Bug Fixes

  • eslint: Add missing ESLint rule for TypeScript (#470) (cc0d498)

0.26.0 (2021-05-28)

Note: Version bump only for package @rocket.chat/message-parser

0.25.0 (2021-05-19)

Bug Fixes

  • fuselage: fix duplicated values on paginated multi select (#456) (4518a4e)
  • message-parser: Big emoji (#451) (6d65343)
  • message-parser: URL issues (#448) (8ce6b91)
  • message-parser Unordered List definition (#445) (6c659b8)

Features