Puzzled time with aggregateWindow() function

a topic linked to github
when query code is:

from(bucket: "CS301") 
  |> range(start: 2024-05-29T16:01:00.000Z, stop: 2024-05-29T16:30:00.000Z) 
  |> filter(fn: (r) => r["_measurement"] == "CS105.R-A5100") 
  |> filter(fn: (r) => r["_field"] == "pi01") 
  |> aggregateWindow(every: 7m, fn: last, createEmpty: false, timeSrc: "_time",  
//   offset: 1m 
) 
  |> yield(name: "last")

1.data retrieved as bellow when every is setted to 7m

  1. data retrieved as bellow when every is setted to 8m

when query code is:

from(bucket: "CS301")
    |> range(start: 2024-05-29T16:01:00.000Z, stop: 2024-05-29T16:30:00.000Z)
    |> filter(fn: (r) => r["_measurement"] == "CS105.R-A5100")
    |> filter(fn: (r) => r["_field"] == "pi01")
    |> window(every: 7m, createEmpty: true)
    |> unique(column: "_start")

data retrieved as below:

Hello @Leo,
Thanks for sharing this here as well as the issue. There’s good activity on the issue so I want to point ppl to just go there if they’re encountering similar problems.