Files
fusion/plugins/fusion-plugin-reports/docs/rendering-contract.md
Fusion d0a2d90182 feat(FN-3785): add standalone HTML rendering and export routes for reports
Adds a complete HTML rendering and export pipeline to the fusion-plugin-reports plugin, including a standalone HTML renderer with template and stylesheet support, new export routes (`/api/reports/:id/export/html`) that persist rendered HTML to the store, and plugin-type support for non-JSON route re

Fusion-Task-Id: FN-3785
2026-05-10 15:33:24 -07:00

2.3 KiB

ReportRecord input shape

interface ReportRecord {
  id: string;
  title: string;
  cadence: "daily" | "weekly" | "monthly" | "quarterly" | "manual";
  period: { start: string; end: string };
  generatedAt: string;
  status: string;
  settings: {
    sections?: string[];
    sectionOrder?: string[];
    branding?: {
      accentColor?: string;
      logoDataUri?: string;
    };
  };
  sections: {
    summary?: string;
    system?: {
      wins?: string[];
      highlights?: string[];
      lowlights?: string[];
      proposals?: string[];
      deepDives?: string[];
    };
    perAgent?: Array<{
      agentId: string;
      agentName?: string;
      wins?: string[];
      highlights?: string[];
      lowlights?: string[];
      proposals?: string[];
      deepDives?: string[];
    }>;
    dataCoverage?: string[];
  };
  reviewPanel?: {
    overallVerdict: string;
    consensusSummary: string;
    individual: Array<{ memberName: string; verdict: string }>;
  };
}

Section identifiers

  • data-section="summary"
  • data-section="system-wins"
  • data-section="system-highlights"
  • data-section="system-lowlights"
  • data-section="system-proposals"
  • data-section="system-deep-dives"
  • data-section="agent-card"
  • data-section="data-coverage"
  • data-section="review-panel"

Theme tokens

  • --space-xs, --space-sm, --space-md, --space-lg, --space-xl
  • --radius-sm, --radius-md, --radius-lg
  • --bg, --surface, --card, --text, --text-muted, --border
  • --triage, --todo, --in-progress, --in-review, --done
  • --color-success, --color-error, --color-warning, --color-info
  • --report-accent

HTTP endpoints

  • GET /api/plugins/reports/reports/:id/export.html
    • 200 text/html; charset=utf-8 + Content-Disposition: attachment; filename="<slug>.html"
    • 404 when report ID does not exist
    • 409 when report is not yet generated
  • GET /api/plugins/reports/reports/:id/preview.html
    • 200 text/html; charset=utf-8 body-only fragment (<article>...</article>)
    • 404 when report ID does not exist
    • 409 when report is not yet generated

Stability

This rendering contract is shared with downstream dashboard/share integrations (FN-3786 / FN-3787). Any breaking change to markers, token names, or endpoint contract requires coordinated updates across those tasks.