Problem
harness list pr_comment <repo>/<pr> and harness list pr_activity <repo>/<pr> both render through the generic table formatter (handler_type: endpoint, plain columns: [...]).
Desired behavior
- Comment/activity text should be rendered through the same lightweight Markdown-to-ANSI renderer already added for
get pr's description (console.RenderMarkdown, in
pkg/console/markdown.go) — bold, inline code, links, headers, lists should render styled, not as raw syntax. - Add a dedicated text/timeline view — e.g.
harness get pr:activity <repo>/<pr> — that prints activity chronologically (oldest-first or newest-first, TBD), one entry per block (author,
relative timestamp, full rendered comment body), with threaded replies (via parent_id/order+sub_order) indented under their parent instead of shown as sibling rows. This mirrors the
pattern already used for get pr:insight (modules/code/insight.go — best-effort section fetch + dedicated text formatter). - Table output (
list pr_comment, list pr_activity) can stay as-is for scripting/machine use (--format json/csv/table), but the default human-facing text path should go through the new
renderer/timeline rather than a table dump.
Problem
harness list pr_comment <repo>/<pr>andharness list pr_activity <repo>/<pr>both render through the generic table formatter (handler_type: endpoint, plaincolumns: [...]).Desired behavior
get pr's description (console.RenderMarkdown, inpkg/console/markdown.go) — bold, inline code, links, headers, lists should render styled, not as raw syntax.harness get pr:activity <repo>/<pr>— that prints activity chronologically (oldest-first or newest-first, TBD), one entry per block (author,relative timestamp, full rendered comment body), with threaded replies (via
parent_id/order+sub_order) indented under their parent instead of shown as sibling rows. This mirrors thepattern already used for
get pr:insight(modules/code/insight.go— best-effort section fetch + dedicated text formatter).list pr_comment,list pr_activity) can stay as-is for scripting/machine use (--format json/csv/table), but the default human-facing text path should go through the newrenderer/timeline rather than a table dump.