Skip to content

Date snapshot banners from the snapshot and check captureSnapshot's poll URL #79

Closed

Description

@jm-rivera

Three small faults on the share path remain after #77.

Snapshot banner date. A snapshot share's banner dates the snapshot from the share's createdAt, while the slot reads cite when each slot first served the frame it shows. A live share switched to a snapshot days after it was created shows the creation date.

Unchecked poll URL. captureSnapshot in src/lib/search/snapshot.ts joins the poll URL the API returns to its base without checking it, unlike the proxy routes, which build every upstream path through forwardablePath. This predates #77.

Corpus copy. src/content/dfo-docs/corpus/hub/build/share.md quotes the old snapshot dialog copy. The corpus is synced from upstream, so the fix belongs there.

Done when

  • A snapshot banner shows the time the snapshot was taken.
  • captureSnapshot refuses a poll URL that forwardablePath would refuse.
  • The synced corpus quotes the current snapshot dialog.

Activity

  1. self-assigned this
    on Nov 5, 2026
  2. jm-rivera commented on Nov 5, 2026

    @jm-rivera
    ContributorAuthor

    The snapshot banner needs no code change. A search snapshot is stored seconds after its mint, so its createdAt is the right "data as of", and the mint manifest's prepared_at would print an older date. A canvas or card share switched to a snapshot dates each card from its share history's first_served_at, and nothing a reader sees reads createdAt after the switch.

    One gap remains. A Studio share made directly as a snapshot shows its card's saved frame, which can be older than the share, and no field in the share answers dates a frame. DevelopmentFinanceObservatory/apis#268 asks dfo-apis to return the frame's prepared_at.

    #124 makes captureSnapshot poll only the path built from a checked operation id. DevelopmentFinanceObservatory/docs#21 fixes the quoted dialog copy, and a re-sync layer on top of the stack will close this issue once that PR publishes.

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

Metadata

Metadata

Assignees

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