Skip to content

Slack channel: HITL input-request prompt text skips markdown→mrkdwn conversion, so model-authored **bold** renders literally #1293

Description

@zacharyejohnson

What happens

When an agent turn asks the user for input (the HITL input-request widget — question text + "Type your answer" button), the model-authored question text is placed directly into a { type: "section", text: { type: "mrkdwn", ... } } block with only length truncation applied. Models write GitHub-flavored markdown by default, so **bold**, ## headings, and [links](url) show up in Slack as literal punctuation.

Observed in eve 0.27.0, live agent in production: a multi-item clarification question rendered every **filename** emphasis as raw double asterisks.

Where

dist/src/compiled/@chat-adapter/slack/blocks.js — the input-request block builder pushes { text: { text: truncate(prompt), type: "mrkdwn" }, type: "section" } (and the modal builder does the same for its prompt section). No call to the conversion helpers.

The adapter already ships the converters, unused on this path: dist/src/compiled/@chat-adapter/slack/format.js exports markdownBoldToSlackMrkdwn and createSlackMrkdwn.

Expected

The prompt text should run through the same markdown→mrkdwn conversion the adapter applies elsewhere (at minimum markdownBoldToSlackMrkdwn, ideally the full createSlackMrkdwn), matching the behavior of thread.post(string) — whose bare-string form is documented as posting via Slack's native markdown_text and renders model markdown correctly. The asymmetry is easy to hit: the same model text renders fine as a final message but broken as an ask.

Repro

  1. Slack channel agent on 0.27.0, any authored tool flow that triggers the input-request widget with a model-authored question containing **bold**.
  2. Observe the posted widget: literal asterisks.

Workaround

Prompt-level: instruct the agent to write Slack mrkdwn dialect (*bold*, hyphen lists, no **/##) in anything it sends to Slack threads. Works, but every eve+Slack app has to rediscover it.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions