| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
| |
Routine scheduling, health series, service stamps, session expiry, and
date formatting move to native Temporal (Instant / ZonedDateTime in
UTC), with ISO strings kept at DB and chart boundaries. Ambient types
in src/temporal-ambient.d.ts cover the native runtime; no polyfill.
Observable behavior and stored formats are unchanged.
|
| |
|
|
|
|
| |
Status buckets shift a full period out: due until an occurrence is
skipped entirely, late after one, very late after two. Health decay
halves (100 - ratio*50) so 50 marks late and 0 marks veryLate.
|
| |
|
|
|
|
|
| |
Project page gets a Sante chart: daily mean of per-routine health
via computeProjectHealthSeries, ending at the current health score.
Both charts share a HealthChart component built on LayerChart's
AreaChart (time x-axis, fixed 0-100 y-axis, completion dots).
|
| |
|
|
|
| |
A routine with no completions shows due instead of ok, even right
after creation; ok requires a completion within the current period.
|
| |
|
|
|
| |
Daily routine done yesterday is due today regardless of time of day;
same anchoring in health series so chart and badge agree.
|
| | |
|
|
|
Projects group recurring routines (chores included) with an append-only
snapshot table (id, version) so edits never rewrite history; completions
reference the exact snapshot. Pure metrics compute due dates, urgency
buckets (ok/due/late/veryLate) and 0-100 health scores per routine,
project, and globally. Home page lists projects; project dashboard sorts
routines most-urgent first with one-tap completion and interval parser
inputs (1d/2w/3m/1y).
|