# Pull Request Template ## Description This PR fixes stray `\` characters and missing `--` signature separators when replies contain empty lines above the email signature. Empty lines and Shift+Enter line breaks are now preserved as composed across delivered emails, dashboard bubbles, text channels, and webhook payloads. ### https://github.com/chatwoot/prosemirror-schema/pull/59 ### What changed * Bump `@chatwoot/prosemirror-schema` to 1.4.5, which fixes markdown serialization of empty lines, hard breaks, and setext underline escaping at the source. * Strip the escaped signature delimiter cleanly when toggling or removing the signature, so it never leaves a trailing `\`. * Unescape the serializer's underline escape (`\--` → `--`) in `WebhookContentNormalizer`, so API-channel and webhook consumers receive the original text. * Add end-to-end rendering specs covering every editor output shape with 23 byte-exact fixtures across cmark, both email modes, and all channel renderers. Fixes https://linear.app/chatwoot/issue/CW-8062/email-replies-show-a-stray-backslash-instead-of-the-signature ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## How Has This Been Tested? ### How to reproduce On an email inbox with a message signature enabled, type a reply and press Enter at the end, leaving an empty line above the `--` separator, then send. The delivered email and email bubble show a stray `\` where the empty line should be, and the `--` separator disappears. ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules
108 lines
1.7 KiB
Plaintext
108 lines
1.7 KiB
Plaintext
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
|
#
|
|
# If you find yourself ignoring temporary files generated by your text editor
|
|
# or operating system, you probably want to add a global ignore instead:
|
|
# git config --global core.excludesfile '~/.gitignore_global'
|
|
|
|
# Ignore bundler config.
|
|
/.bundle
|
|
|
|
# Ignore the default SQLite database.
|
|
/db/*.sqlite3
|
|
/db/*.sqlite3-journal
|
|
|
|
# Ignore all logfiles and tempfiles.
|
|
/log/*
|
|
/tmp/*
|
|
!/log/.keep
|
|
!/tmp/.keep
|
|
*.mmdb
|
|
|
|
# Ignore Byebug command history file.
|
|
.byebug_history
|
|
.DS_Store
|
|
*.log
|
|
# Ignore application configuration
|
|
node_modules
|
|
master.key
|
|
*.rdb
|
|
|
|
# Ignore env files
|
|
.env
|
|
|
|
public/uploads
|
|
public/packs*
|
|
public/assets/administrate*
|
|
public/assets/action*.js
|
|
public/assets/activestorage*.js
|
|
public/assets/trix*
|
|
public/assets/belongs_to*.js
|
|
public/assets/manifest*.js
|
|
public/assets/manifest*.js
|
|
public/assets/*.js.gz
|
|
public/assets/secretField*
|
|
public/assets/.sprockets-manifest-*.json
|
|
|
|
# VIM files
|
|
*.swp
|
|
*.swo
|
|
*.un~
|
|
.jest-cache
|
|
|
|
# ignore jetbrains IDE files
|
|
.idea
|
|
|
|
# coverage report
|
|
buildreports
|
|
coverage
|
|
|
|
/storage
|
|
|
|
# ignore packages
|
|
node_modules
|
|
package-lock.json
|
|
|
|
*.dump
|
|
|
|
|
|
# cypress
|
|
test/cypress/videos/*
|
|
|
|
/config/master.key
|
|
/config/*.enc
|
|
|
|
|
|
# yalc for local testing
|
|
.yalc
|
|
yalc.lock
|
|
|
|
/public/packs
|
|
/public/packs-test
|
|
/node_modules
|
|
/yarn-error.log
|
|
yarn-debug.log*
|
|
.yarn-integrity
|
|
|
|
# Vite Ruby
|
|
/public/vite*
|
|
# Vite uses dotenv and suggests to ignore local-only env files. See
|
|
# https://vitejs.dev/guide/env-and-mode.html#env-files
|
|
*.local
|
|
|
|
|
|
# TextEditors & AI Agents config files
|
|
.vscode
|
|
.claude/settings.local.json
|
|
.cursor
|
|
.codex/
|
|
.claude/
|
|
CLAUDE.local.md
|
|
|
|
# Histoire deployment
|
|
.netlify
|
|
.histoire
|
|
.pnpm-store/*
|
|
local/
|
|
Procfile.worktree
|
|
.nodeterm/project.json
|