Skip to content

Copy or export a complete room thread as review-ready Markdown #28

Description

@jusso-dev

Parent: #21
Related: #22, #23
Source: block/buzz#2873

Why this is valuable

Analysts often need to move a complete human-agent discussion into a terminal, case, report, or review workflow. Copying messages one by one loses order, authorship, evidence context, and verification details.

Bounded v1

  • Add one Copy thread action to the thread menu.
  • Produce deterministic Markdown in chronological order with room/thread title, timestamps, actor names and types, message text, structured-event summaries, and safe links to authorised evidence/artifacts.
  • Support clipboard copy and a Markdown download fallback.
  • Generate the export from an organisation-scoped server query, not only the currently rendered DOM.
  • Exclude deleted content, hidden metadata, raw tool payloads, credentials, and content the requester cannot read.
  • Enforce room export policy/capability server-side and append an audit event for export.
  • Keep the UI to one action plus success/error feedback; no export wizard.

Acceptance criteria

  • Root plus all authorised replies export once, in stable chronological order.
  • Human, agent, and structured security entries remain understandable in Markdown.
  • Long threads paginate server-side without truncation or duplication.
  • Private/cross-organisation/deleted content cannot leak into an export.
  • Secret-shaped fields and raw tool arguments/results are absent.
  • Export is capability-checked and audited.
  • Unit tests cover ordering, escaping, redaction, and mixed entry types.
  • Browser test covers copy and download using synthetic data.

Effort guardrail

Reuse existing room/thread/message records and renderers. No generic workspace export framework in v1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions