v0.99.3
v0.99.3 — the weekly forecast stops inventing a crossing on a quiet week
Fixes
- The learned weekly rhythm no longer puts spend on days and hours you never
use. Each 4-hour bucket now shrinks toward a structured estimate (that
weekday's rate × that block-of-day's rate ÷ the global rate) instead of the
flat mean. For a Sun–Thu user the old prior placed ~20% of the modeled
week on Fri, Sat and the 00–08 blocks despite zero observed spend, and
pulled the busy blocks down to pay for it. The pace-factor clamp tightens
from 0.25–4 to 0.5–2. - Running hot today steepens tomorrow's forecast, not the whole remaining
week. The pace factor decays toward 1 over about a day instead of scaling
every remaining day at once — the behavior that compressed the week's
rhythm into the days before the crossing. On the reporting Mac the weekly
meter goes from a red 111% / "runs out Mon 20:00" to ~89% with no crossing. - The crossing's red timestamp in the popover's axis row no longer overprints
a weekday tick; the eclipse now compares the labels' drawn extents.
Housekeeping
- Dropped a nonisolated(unsafe) annotation the Xcode 26.6 SDK made redundant.