When a new service worker takes control, the app shows an UPDATE
button. If the page is hidden, the app reloads into the new version.
It does not reload while the entry editor is open or while a save or
import runs. A running timer continues after the reload, because it is
stored with its start time in IndexedDB.
The app asks for a new version when it becomes visible and one time
each hour, because an installed PWA can stay open for days.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This is the first commit of the project, at the state that runs on
timelog.minhtrannhat.com.
Changes in this state:
- Remove redundant UI text from the sidebar, timer and insights pages.
- Show the remaining time and tag in the browser tab title while a
session runs.
- Put the shared record type and the due and end helpers in
src/shared/record.ts.
- Remove the startup tag migration and the one-time Forest import
script. The live data does not need them.
- Remove unused CSS, Playwright ignore rules and duplicate helpers.
- Do not track Forest CSV exports, because they contain private data.
Co-Authored-By: Claude Opus 5.5 <[email protected]>