Skip to content

[Generated presentations] Add durable long-form PowerPoint generation #1073

Description

@paullizer

Summary

Add durable long-form PowerPoint generation so a user, agent, or workflow can request a new PPTX from conversation, selected-source, or source-free evidence and receive an authorized downloadable artifact without relying on synchronous single-message export.

This is generation of a new presentation, not editing an existing deck or applying a user-provided template.

User Value

The current PowerPoint export is useful for short assistant messages, but users need complete 20-, 30-, and larger-slide decks: executive briefings, analysis reports, training material, proposals, and operational presentations. Those workloads require staged planning, slide-level quality controls, media/table/chart layout, and durable execution beyond one browser request.

Current Limitation

/api/message/export-powerpoint builds a deck synchronously from one message and returns an immediate browser download. It limits requested decks to 30 slides (with a 60-slide structured-markdown path) and has no durable job record, checkpointed slide generation, cancellation, resume/retry semantics, progress reporting, or artifact publication lifecycle for large decks.

Proposed Behavior

  • Build a new PPTX through Chat, Search, selected agents, Analyze, Compare, workflows, or source-free prompts.
  • Use a hierarchical deck plan: audience/purpose and outline, slide specifications, bounded slide-content generation, deterministic layout/rendering, deck-level validation, and final package publication.
  • Support reliably producing 20- and 30-slide decks, with configured higher limits based on measured resource and quality gates.
  • Use the generic durable generated-artifact job contract shared with [CSV exports] Support universal CSV generation across all paths and file types #1071: persisted states, leases, checkpoints, cancellation, retry, source/revision reauthorization, idempotent artifact publication, and progress delivery.
  • Keep PowerPoint-specific planning, visual/layout adaptation, chart/image/table placement, and PPTX package validation in a dedicated renderer adapter; do not repurpose the tabular CSV executor.
  • Preserve existing immediate per-message PowerPoint export for small decks where appropriate.

Acceptance Criteria

  • Users can request a new PPTX through supported generation paths without first exporting a single assistant message.
  • The capability reliably produces at least 20- and 30-slide decks from a persisted outline and slide plan; configured higher limits are bounded by resource and quality policy.
  • Each slide is checkpointed with stable identity, source/evidence linkage where applicable, and a clear terminal result; a worker restart can resume safely without duplicating slides or artifacts.
  • The job exposes queued, running, completed, failed, and canceled states; supports authorized cancellation, retry/resume where safe, and progress visible from the originating conversation.
  • Source access, source revision, conversation authorization, and any artifact/media references are revalidated at execution and before publication.
  • Slide rendering handles supported text, bullets, tables, charts, images, citations/notes, title/section slides, and appendix material without silently dropping planned content.
  • Layout validation catches overflowing or empty slide bodies, missing required slides, unreadable content, invalid media, package corruption, and incomplete coverage before publishing a complete result.
  • Partial-generation and unsupported-content states are explicit; incomplete decks are not presented as complete deliverables.
  • Completion creates one authorized downloadable PPTX chat artifact with existing workspace promotion support and no duplicate publication on retry.
  • Existing small per-message PowerPoint export remains compatible and does not require a background job.
  • Functional tests cover 20/30-slide generation, structured deck input, checkpoint/restart, cancellation, retry, authorization loss, source revision changes, media/table/chart layout, package round-trip validation, and artifact download authorization.

Non-Goals

Related Work

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status
Pending Evaluation

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions