pingdotgg / pingdotgg/t3code

[Bug]: Question cards show raw Markdown in expanded questions, collapsed previews, and answer options

Open
#11,132 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/web — the question-card component is also used by desktop.

Problem

Pending question cards display raw Markdown in expanded questions, collapsed previews, and answer-option labels/descriptions. Links appear as literal [label](destination) text, and formatting such as bold or inline code exposes its Markdown delimiters. Long destinations also crowd out the readable question text.

Scope update

This report originally covered collapsed previews and answer options because PR #9810 includes an expanded-body rendering fix. That PR remains open and unmerged as of September 11, 2026. During subsequent desktop testing, fixing only previews and options still left the original expanded-question bug visible.

At the reporter's request, this issue now covers formatting throughout the question card: expanded questions, collapsed previews, and answer options. PR #11141 implements that complete fix. Its expanded-body rendering overlaps #9810; this update records the requested scope change and does not imply new maintainer approval or supersede the earlier triage comment. The overlapping rendering change needs coordination when either PR lands.

Pending-question navigation, mobile's separate question card, and work-log summaries remain out of scope.

Steps to reproduce
  1. Open a thread with a pending user-input request containing this question:

    Please open [AWS sign-in link](https://example.com/signin?state=example) and confirm **when ready**.
    
  2. Inspect the expanded question, then collapse the card and inspect its preview.

  3. Expand a question containing this suggested answer:

    {
      "label": "**Bold option**",
      "description": "Use `inline code` and [help](https://example.com/help)."
    }
    

The UI states can be reproduced with synthetic user-input.requested activities containing a requestId and questions array. No live provider or real sign-in URL is needed.

Expected behavior

Expanded questions render Markdown using the existing chat renderer, including links, bold, emphasis, strikethrough, inline code, headings, lists, blockquotes, fenced code blocks, tables, and task lists. Workspace/file links use the current thread and workspace context. Long content stays within a scrollable question area so the header and answer controls remain reachable.

The collapsed preview presents readable question text (for example, Please open AWS sign-in link and confirm when ready.), without Markdown delimiters or the full link destination crowding out the question.

Answer-option labels and descriptions display supported inline formatting consistently with the question body. Links in option labels and descriptions can be opened without selecting or submitting an answer or triggering auto-advance. Formatting must preserve the original submitted option values, keyboard selection, and existing single- and multi-select behavior.

Actual behavior
  • Expanded body on the original base 859304b78: displays raw Markdown, including the sign-in link from the desktop screenshot.
  • Expanded body on PR #9810: Markdown renders correctly, but that PR is not merged.
  • Collapsed preview: displays literal [AWS sign-in link](https://...) and **...** syntax.
  • Option label: displays literal **Bold option**.
  • Option description: displays literal backticks and [help](https://example.com/help).
Impact

Minor bug or occasional failure. Long link syntax reduces the usefulness of collapsed previews, and option descriptions do not provide the same readable formatting as the question body.

Version or commit

Initial comparison: PR #9810 at cbbcb3e44b1fb0a92952d7d1568623c7e8e1aba2. The complete fix in #11141 was initially based on 859304b7808ab9a4be87b1bddcd07c6485bf9c4f.

Environment and verification

macOS, Chrome guest session, built web frontend from the PR with an isolated local T3 backend and synthetic question fixtures. The expanded body visibly rendered links, bold, italics, strikethrough, inline code, headings, ordered/unordered lists, blockquotes, fenced TypeScript code, tables, and task lists.

At the initial #9810 comparison, the desktop build passed but native automation timed out, so that comparison did not include a completed desktop UI pass. Subsequent verification of #11141 visually confirmed a real agent-generated question with links and inline formatting in the actual Electron desktop window. Prompts and answers used the normal app command API because native input automation was unreliable. Block Markdown and long-content behavior were verified in the web client. Desktop shares the affected web component. Mobile was not tested.

Source

In ComposerPendingUserInputPanel.tsx at the tested commit, the expanded body uses ChatMarkdown, while the collapsed preview interpolates activeQuestion.question into a span, and option labels/descriptions are also interpolated directly into span elements.

Workaround

Ask the agent to use plain text for questions and answer options. Keeping the card expanded only provides formatted body text when running a build containing an expanded-body fix, such as #9810 or #11141.

Original desktop screenshot

Original report: the expanded question displays a Markdown sign-in link as raw text. This expanded-body case is now included in the issue scope alongside collapsed previews and answer options; see the scope update above for the overlap with #9810.

Original desktop question displaying a Markdown link as raw text

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx, comparing the ChatMarkdown expanded body with the direct span rendering used for collapsed previews and option labels/descriptions. Reproduce the states with synthetic user-input.requested activities and the supplied Markdown examples. Done means readable formatting across all in-scope states, preserved option values and selection behavior, usable links, and long content remaining accessible; coordinate with PRs #9810 and #11141.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.