You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(operator-queue): markdown in approval/question asks renders as raw text on some surfaces (portal asks, options, resolved history) #3115
Markdown written by agents in approval and question requests (ask_operator asks, approvals, decisions) is not rendered consistently. On some surfaces the reader sees raw syntax like **bold**, `code`, - list markers and [text](url). On others it renders. The same ask looks different depending on where the operator or user answers it.
Context
Reported by the operator with a screenshot of an approval/question chain showing unrendered markdown. Agents naturally write their questions in markdown, so any surface that shows the text verbatim becomes hard to read, especially for multi-line asks with lists or code.
Current state on dev:
Operator queue (src/frontend/src/components/operator/QueueCard.vue, QueueItemDetail.vue): the question renders as markdown, but the title, the answer options, and the context/details values show as plain text.
Portal asks (src/frontend/src/components/portal/PortalAsks.vue): the question shows as raw text (whitespace-pre-wrap), so markdown syntax is visible.
Resolved items (src/frontend/src/components/operator/ResolvedCard.vue): show the title/answer as plain text.
Acceptance Criteria
An ask's question renders as markdown on every surface where it can be answered or reviewed: operator queue card, queue item detail, portal asks, and resolved history
Markdown in inline fields (title, answer options, the given answer) renders inline formatting only (bold, italic, code, links), with no block elements that would break the layout
@dolho No issue yet. You're right, it's a regression from #3023 (ent#611 PR A): the asks list now includes asks that ended in the last 7 days, and the in-chat strip in PortalConversation.vue doesn't filter them out, so answered tiles stack above the input in every chat with that agent.
Before you take it into #3115: Andrii's open Inbox PRs touch the same code. #3054 (round 4) already renders portal ask bodies through PortalMarkdown, and #3101 replaces the chat strip with a collapsed, this-chat-only "N asks waiting on you" row. Could you sync with @AndriiPasternak31 so the portal-asks part of #3115 and this fix aren't done twice? If #3101 isn't landing soon, a one-line stopgap is to pass pending-only to PortalAsks in PortalConversation.vue (and gate the wrapper on pending asks). That's easy for Andrii to rebase over.
Separately, we're settling the longer-term shape on ent#610 (answered asks as a small marker in chat history, the agent's asks tab = Inbox filtered to that agent, asks attached to the chat that raised them rather than always Main). That part isn't for #3115.
Activity
dolho commentedon Sep 30, 2026
/claim
github-actions commentedon Sep 30, 2026
Claimed by @dolho. Label
status-in-progressadded.Next steps:
feature/3115-<short-slug>Fixes #3115vybe commentedon Sep 30, 2026
@dolho No issue yet. You're right, it's a regression from #3023 (ent#611 PR A): the asks list now includes asks that ended in the last 7 days, and the in-chat strip in
PortalConversation.vuedoesn't filter them out, so answered tiles stack above the input in every chat with that agent.Before you take it into #3115: Andrii's open Inbox PRs touch the same code. #3054 (round 4) already renders portal ask bodies through
PortalMarkdown, and #3101 replaces the chat strip with a collapsed, this-chat-only "N asks waiting on you" row. Could you sync with @AndriiPasternak31 so the portal-asks part of #3115 and this fix aren't done twice? If #3101 isn't landing soon, a one-line stopgap is to passpending-onlytoPortalAsksinPortalConversation.vue(and gate the wrapper on pending asks). That's easy for Andrii to rebase over.Separately, we're settling the longer-term shape on ent#610 (answered asks as a small marker in chat history, the agent's asks tab = Inbox filtered to that agent, asks attached to the chat that raised them rather than always Main). That part isn't for #3115.
fix(workspace): the chat's ask strip shows only waiting asks (#3115, …
fix(asks): render agent markdown in asks, and show only waiting asks …
Merge origin/dev into AndriiPasternak31/ent610 (ent#610 PR A)
Merge origin/AndriiPasternak31/ent610 into AndriiPasternak31/ent610-a…
feat(workspace): an ask a chat turn raised is a tile in that chat's t…
fix(asks): a fenced code block in an ask is readable in the light the…
feat(workspace): Discuss and Dismiss on asks (Abilityai/trinity-enter…