Skip to content

feat(api): On This Day shows one cover per burst; list a burst's frames #299

Closed

Description

@bitbiter-dev

Parent

#296

What to build

On This Day shows each burst once, as the viewer's cover, marked with how many frames the viewer can see, and the API lists all of a burst's visible frames so the UI can page through them.

Acceptance criteria

  • On This Day shows one item per burst: the viewer's cover, the earliest member that is visible to them (VisibleTo) and not hidden for them.
  • The item carries burst { burstId, isCover, count }; count counts only members visible to the caller. Photos outside a burst carry no burst.
  • A burst whose members are all hidden for the caller does not appear.
  • A burst counts as starred, and as liked for DisplayWeight, when any visible member is.
  • The cover's capture date decides the day: a burst across midnight appears on its cover's day only, and on the next day when every member before midnight is hidden for the caller.
  • GET /api/v1/bursts/{id}/assets returns the burst's visible members, oldest first, as asset views through a new IAssetSelection read by IAssetViewReader; an unknown burst, another user's burst and a burst with no visible member all return 404.
  • Tests: AssetViewReaderTests (SQL shape via ToQueryString(), data via InMemory), FlashbackYearsTests, FlashbackEndpointsTests. Mutation score 100% on the changed files.

First caller

On This Day (GET /api/v1/flashbacks/on-this-day) is the first caller of the collapse and the burst field; the UI (Epic 7) follows the burstId it hands out to GET /api/v1/bursts/{id}/assets, which ships in this PR so that id can be followed.

Design

Design note: #296 (comment) (section 6, option A)
Decision (maintainer, 2026-10-23): #296 (comment)

Activity

  1. added
    enhancementNew feature or request
    v1.0Required for the v1.0 release
    needs-designNeeds a design note (options, first caller, reversibility) before ready-for-agent
    on Oct 23, 2026
  2. added
    needs-decisionWaiting on a decision from the maintainer
    ready-for-agentFully specified, ready for an AFK agent
    and removed
    needs-designNeeds a design note (options, first caller, reversibility) before ready-for-agent
    needs-decisionWaiting on a decision from the maintainer
    on Oct 23, 2026
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

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agentv1.0Required for the v1.0 release

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions