Skip to content

Sleep tab shows a carried night without stamping it, so an older night reads as yesterday #1946

Closed

Description

@ryanbr

Surfaced while reviewing #1937, where a wearer saw the Sleep tab label a night
"yesterday" while showing a night from two days earlier.

Today already handles this. When the read is a carried prior-day one it stamps
the day it came from, so it is not passed off as today's:

  • Android TodayScreen.kt, the carriedDay != null branch:
    today_synthesis_carried_detail ("Carried prior-day read, summarise that day
    • stamp it so it isn't passed off as today's")
  • iOS has the same notion on Today (LiquidTodayView.swift, the carried-Charge day)

Sleep does not. It consumes carried values without ever saying so:

  • iOS SleepModel.swift:367 reads Baselines.freshestCarried(...) and nothing
    downstream marks the result as carried
  • Android SleepScreen.kt has no notion of a carried night at all (the only two
    matches for "carry" in the file are unrelated prose)

So when a night is missing, Sleep shows the previous night's numbers under the
current night's date with nothing to distinguish it from a fresh read. A wearer
cannot tell "no sleep was captured" from "you slept exactly the same as
yesterday", which is what the report reads as.

Worth noting this is a labelling gap, separate from whatever caused the night to
go unprocessed in that report. Even after the underlying capture is right, a
carried night should say that it is carried.

Suggested shape: reuse Today's stamp on Sleep, so a carried night names the day
it actually came from. Both platforms, same copy, and it needs the usual eight
iOS locales plus the four Android ones.

Activity

  1. ryanbr commented on Sep 9, 2026

    @ryanbr
    OwnerAuthor

    Landed in 95a3e6a85: a carried prior-night value is now stamped with the day it came from, so an older night can no longer read as yesterday. Pinned by SleepCarriedStampTest, with the new copy localised across every locale.

    Shipped in testing build 458 onward.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions