Unfocus v0.5.0-alpha.1
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
These early builds are not code-signed or notarized. Verify downloads with SHA256SUMS and the GitHub build-provenance attestations.
The release also includes a CycloneDX SBOM and the bundled third-party notices.
- Linux: X11 is qualified. APT archive metadata is signed; application binaries are unsigned. Wayland is unsupported.
- macOS: Preview and unnotarized. Multi-monitor behavior is not yet qualified.
- Windows: Idle and fullscreen probes are implemented, but interactive multi-monitor qualification is pending.
Changes
Added
- Added
© 2026 Abhik Sarkarto the foot of the consumer dashboard, with only
Abhik Sarkar linked. Explicitly activating the name asks the system browser
to open the fixedhttps://abhik.aiaddress rather than navigating the
dashboard away, and says so plainly if no browser could be opened. Unfocus
itself still makes no application-originated runtime network call. - Kept raw Your day presence history on this device for at least 90 days,
beyond the 24-hour live window the strip already shows. The existing
activity-history.jsonfile stays hot for the latest day, and segments that
age out of it are archived into localactivity-archive-<key>.json30-day
epoch chunks in the same config directory. This stays local-only like
everything else in Unfocus, with no account and no network call. History
fills forward only: compatible existing local data is preserved, but activity
from before History was installed cannot be backfilled. Whole archive chunks
expire together, so an older partial chunk can remain until its complete
30-day block expires. - Added main-window-only range history commands for the consumer dashboard.
get_activity_rangereturns bucketedactiveMs,afkMs, and
longestActiveMsvalues for caller-provided boundaries, and
get_break_rangereturns chronological privacy-safe{atMs, kind}break
outcomes for[start, end)queries up to 31 elapsed days. - Added a transient consumer History view exposing the newest 90 browser-local
days as three newest-first 30-day pages. It follows the saved Day starts
preference, loads on demand, shows activity and break outcomes together, and
does not change the reminder timer, probes, or overlays.
Changed
- Raised the break-outcome ledger's retention from 7 to at least 90 days and
removed its fixed event cap, matching the activity history above.
break-events.jsonis now bounded by the 90-day time window and keeps enough
local break outcomes to back the history view as well as the existing day
and week summaries. The old 512-event cap was a live defect: a 20-minute
work interval can produce up to 72 scheduled breaks a day, and with
natural-idle and fullscreen-suppress outcomes added in, the cap could
already be reached inside the old 7-day window, silently undercounting the
dashboard's week totals.