Files
beardrive/internal/webapp/static/index.html
T
Snow Lee 7edef42d76 feat(webapp): a "What's new" page anchored at your last visit (BEA-65)
The change feed is flat reverse-chron with no notion of when you last
looked, so "what happened while I was away" is date arithmetic in your
head — and cheap agents write more files per day than that scales to.

Server: `?since=<RFC3339>` on GET /api/p/<id>/history, one case in the
existing filter switch. It sits after the kinds[] classification (which
must keep walking every op, or a filtered view relabels an edit as an
add) and before the sort, so next_cursor is minted from the filtered
list and paging a since-feed terminates on its own oldest match.

Client: /<project-id>/since — a real VIEW_ROUTES entry — renders the
existing HistoryView with that filter and a header line. The anchor is a
per-(account, project) localStorage marker, read once from a useState
initializer and stamped after entries render: read it any later and the
page empties itself while you are reading it. SinceView is the only
caller of stampVisit, so no other page moves the marker.

Known ceiling: the marker is per browser, not per account — laptop and
phone keep separate last-visit times. The server-side marker is the
larger follow-up.
2026-08-02 09:13:43 -07:00

15 lines
632 B
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BearDrive</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='%23f5a623'><rect x='4' y='4' width='5.6' height='24'/><rect x='11.2' y='4' width='14.4' height='11.2'/><rect x='11.2' y='16.8' width='16.8' height='11.2'/></svg>">
<script type="module" crossorigin src="/assets/index-BJXwJ42N.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-DJC1dk7l.css">
</head>
<body>
<div id="root"></div>
</body>
</html>