Render workplan content as GLFM via contentHtml

What does this MR do and why?

The workplan side panel rendered markdown client-side with marked via NonGfmMarkdown, so wide tables overflowed horizontally with no scrollbar, and saved content rendered differently from the GLFM edit preview. The backend already renders and caches the plan as contentHtml, but the frontend never queried it.

This MR fetches contentHtml in the agent plan query, subscription, and a new dedicated save mutation, writes it to the Apollo cache, and renders it with renderGFM inside a .md container. Tables become scrollable via the standard MarkdownTable treatment, fixing the overflow at the root and unifying markdown behavior with the rest of GitLab, as recommended by the Markdown DRI in #624088 (comment 3750007975).

No changelog: behind the default-off workplan feature flag.

References

Screenshots or screen recordings

Before After
Screenshot_2026-08-27_at_13.49.13 Screenshot_2026-09-04_at_13.05.51

How to set up and validate locally

  1. Enable the feature flag in rails console:
    Feature.enable(:workplan)
  2. Open a work item and open the workplan side panel.
  3. Edit the workplan and paste a wide markdown table (example in the issue description), then save.
  4. Confirm the table is contained in the panel with horizontal scrolling, sortable headers, and heading anchors (GLFM rendering).
  5. Confirm editing and saving still round-trips correctly.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Vanessa Otto

Merge request reports

Loading
Loading