Skip to content

Canvas generation history defaults to the first take instead of the latest successful version #25

Closed

Description

@JaysonAlbert

Canvas generation cards should default to the latest successful image/video take. The shared resolver currently trusts input order, while buildGenerationTakes supplies oldest-first order. This highlights Take 1 even when the main preview shows a newer take. In addition, browser generation completion preserves an older pinnedOutputId, so a previously selected take can keep the main preview on an old result after generating a new version.

Reproduction:

  1. Generate two successful image or video outputs for a Canvas generation card.
  2. With no explicit pin, inspect the main preview and selected take thumbnail: the thumbnail falls back to Take 1.
  3. Select Take 1 and generate another version through the browser: completion retains the old pin.

Expected: the default preview, take highlight, version picker and resolved media reference agree on the newest usable successful output; explicit manual history selection remains possible. A newly completed browser generation should become the selected version, matching MCP generation completion. Pending/failed outputs must not replace usable successful media.

Proposed fix: make fallback resolution independent of caller ordering, reuse it in Canvas presentation, update the browser completion pin, and add regression coverage for image/video, out-of-order inputs, reloads, manual selection and pending/failed outputs. Timeline clips remain pinned to their concrete assets.

Activity

  1. JaysonAlbert commented on Oct 18, 2026

    @JaysonAlbert
    ContributorAuthor

    Implementation: #26 . The branch is based on upstream main and includes the shared latest-success resolver, preview alignment, browser completion selection, unit regressions and image/video browser persistence coverage. The maintained Fork has already merged the same fix in JaysonAlbert#13; upstream acceptance remains pending.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions