Skip to content

Add safe, reopenable artifact previews #6

Description

@celeroncoder

Problem

Alluka can save artifacts, but generated deliverables do not have a first-class review experience. In particular, model-authored HTML needs an in-app preview that remains accessible after the original response, while maintaining a strict trust boundary between untrusted artifact code and the Alluka application.

An artifact preview must not inherit application privileges, silently navigate the application window, or make arbitrary outbound requests on behalf of the local user.

Feature

Add persistent artifact cards and reopenable artifact previews for generated deliverables, beginning with HTML.

Artifacts remain associated with the originating message/session and can be opened, closed, reopened, copied, or downloaded from durable controls. HTML previews have an explicit isolated rendering state and distinguish an actively streaming artifact from a saved artifact without losing the correct artifact identity.

Expected behavior

  • A saved artifact can be reopened from its originating message and from the session artifact list.
  • Multiple artifacts retain independent open/closed state; controls always act on the artifact they identify.
  • HTML content is treated as untrusted and cannot access application context, privileged APIs, local credentials, or unrestricted network access.
  • External navigation and links have explicit, safe behavior.
  • Preview controls are keyboard-accessible and support a user-resizable workspace.
  • Closing a preview cleans up its transient state without deleting the artifact.

Why this matters

Agents often produce interfaces, reports, and prototypes rather than only chat text. Durable previews turn those outputs into usable deliverables without weakening local application security.

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions