Skip to content

test: preserve literal text across markdown comment projection - #1164

Merged
kalvinnchau merged 1 commit into
mainfrom
am/markdown-comments
Oct 15, 2026
Merged

kalvinnchau merged 1 commit into
mainfrom
am/markdown-comments

Conversation

@kalvinnchau

Copy link
Copy Markdown
Contributor

Documents the plain-text rendering boundary for Markdown comment projection and adds regressions for reconstructed comments and script tags in chat and notification previews. Complete comments remain hidden, while unclosed comments and authored HTML remain literal text.

Provides regression evidence for the false-positive disposition of code-scanning alert #37: chat creates text nodes, notification previews produce strings, and the Linux notification sink escapes markup. Independent review confirmed that repeated stripping deletes visible text.

Validation: 9,232 Vitest tests passed, TypeScript passed, and changed-file Biome and diff checks passed. Reviewers also passed 37 projection/DOM probes and verified that a repeated-stripping mutation fails the new comment regressions. Native banner execution and hosted CodeQL remain unverified.

The local pre-push run encountered widespread timeouts under shared-host contention. Its two-worker retry was stopped, and the pre-push hook was skipped with explicit authorization. Hosted CI is the remaining validation gate.

document the plain-text rendering boundary and cover reconstructed comment
and script syntax in chat and notification previews.

Co-authored-by: Kalvin Chau <[email protected]>
Co-authored-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau marked this pull request as ready for review October 15, 2026 03:05
@kalvinnchau
kalvinnchau requested a review from a team as a code owner October 15, 2026 03:05

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Carl, an automated reviewer, commenting via Wes's GitHub account.

No blockers. The message-content.ts change is comment-only and the "text projection, not a sanitizer" contract it documents matches the sinks: chat renders raw HTML as text nodes, notification previews return strings, and the Linux notification sink escapes markup, so the alert #37 false-positive disposition holds. Mutation check: repeated comment stripping fails both new regressions (MessageMarkdown.test.tsx and notifications/content.test.ts).

@kalvinnchau
kalvinnchau merged commit 856c560 into main Oct 15, 2026
32 checks passed
@kalvinnchau
kalvinnchau deleted the am/markdown-comments branch October 15, 2026 15:28
johnmatthewtennant added a commit that referenced this pull request Oct 15, 2026
* origin/main:
  perf(css): replace wide :has() anchors with owner-set data attributes (#1180)
  fix(goose): share an MCP server pool and harden session lifecycle (#1142)
  test(browser): hold reading focus until the unread baseline is observed (#1182)
  Refine the profile menu and open status editing immediately (#1172)
  unify session naming, workspace and lifetime settings (#1079)
  perf(messages): stop forcing a layout on every action bar position frame (#1184)
  test(browser): prepare fixture dependencies once per run (#1126)
  test: replace fragile string assertions with precise checks (#1162)
  test: keep thread fixture errors out of http responses (#1163)
  feat: upgrade tauri and native plugins (#1169)
  test: pass native menu scripts to eval as arguments (#1160)
  test: cover shared link url policy (#1165)
  test: preserve literal text across markdown comment projection (#1164)
  test: pin html escaping of clipboard link labels (#1166)
  Preserve linked text pasted from other apps (#1069)
  fix(messages): keep the reader's message in place when a thread reply and layout change land together (#1130)

Signed-off-by: John Tennant <[email protected]>

# Conflicts:
#	src/bundled/channels/ChannelBody.tsx
#	src/bundled/channels/ConversationTab.tsx
johnmatthewtennant pushed a commit that referenced this pull request Oct 15, 2026
* commit 'f2595b8df20c9e6e91f79e77b52b700137063a49': (25 commits)
  Add community leave and device removal settings (#954)
  perf(css): replace wide :has() anchors with owner-set data attributes (#1180)
  fix(goose): share an MCP server pool and harden session lifecycle (#1142)
  test(browser): hold reading focus until the unread baseline is observed (#1182)
  Refine the profile menu and open status editing immediately (#1172)
  unify session naming, workspace and lifetime settings (#1079)
  perf(messages): stop forcing a layout on every action bar position frame (#1184)
  test(browser): prepare fixture dependencies once per run (#1126)
  test: replace fragile string assertions with precise checks (#1162)
  test: keep thread fixture errors out of http responses (#1163)
  feat: upgrade tauri and native plugins (#1169)
  test: pass native menu scripts to eval as arguments (#1160)
  test: cover shared link url policy (#1165)
  test: preserve literal text across markdown comment projection (#1164)
  test: pin html escaping of clipboard link labels (#1166)
  Preserve linked text pasted from other apps (#1069)
  fix(messages): keep the reader's message in place when a thread reply and layout change land together (#1130)
  separate session sharing from explicit channel conversion (#1070)
  feat(goose): bundle goose-acp with the app (#1110)
  feat(agents): answer unmentioned messages in one-to-one DMs (#1173)
  ...

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants