Skip to content

Releases: NihilDigit/focuswell

FocusWell 26.6.6

12 Jun 11:28
26.6.6
77e1880

Choose a tag to compare

Security hardening release for reminders, cloud sync, and the browser gate.

What changed:

  • Reminder device registration now protects existing device identities. Re-registering a known device must prove the current install secret, and secret hash rotation is rejected from the normal register endpoint.
  • GitHub sign-in now validates the OAuth state returned from the browser before exchanging a code. Mismatched or missing state is rejected.
  • OAuth tokens and reminder install secrets are stored through Android Keystore-backed encrypted preferences, and app backup is disabled with explicit sensitive prefs exclusions.
  • The browser extension UI is now fully English and can add the current page to the whitelist from the popup without manually editing JSON.

Build verification:

  • Backend typecheck and tests passed in CI.
  • Android unit tests passed in CI.
  • Signed APKs are attached for arm64-v8a, armeabi-v7a, and x86_64.

Install the APK that matches your device ABI. Most modern phones should use arm64-v8a.

FocusWell 26.6.5

07 Jun 07:53
4b01130

Choose a tag to compare

Updates the reserve well interest copy.

  • Replaces the static 5/8/12% rate label with a current-balance estimate such as +14m @5% interest.
  • Keeps the locked and empty-reserve states concise.
  • Adds tests for the reserve interest preview text.

Built signed APKs for arm64-v8a, armeabi-v7a, and x86_64.

FocusWell 26.6.4

07 Jun 07:30
6f00344

Choose a tag to compare

Fixes the locked-reserve recovery flow.

  • 2h recovery focus now uses raw uninterrupted focus time before phone-use correction.
  • Phone-use correction still affects earned reserve for that session.
  • Shortens the frozen daily-grant panel copy so the restart label stays compact.

Built signed APKs for arm64-v8a, armeabi-v7a, and x86_64.

FocusWell 26.6.3

06 Jun 12:03

Choose a tag to compare

FocusWell 26.6.3 fixes the default daily rhythm introduced around the new 04:00 business day.

What changed:

  • Changed the default wake target to 07:30.
  • Changed the default sleep-protection window to 23:00-08:00.
  • Added minute-level wake target storage and Settings controls in 30-minute steps.
  • Added a Room migration so existing default 05:00 wake targets move to 07:30, and existing default 07:00 sleep ends move to 08:00.
  • Updated README, product docs, schema, and tests for the new defaults.

Release evidence:

  • GitHub Actions release workflow passed.
  • Backend check passed in CI.
  • Android unit tests passed in CI.
  • Signed APKs were built for arm64-v8a, armeabi-v7a, and x86_64.

FocusWell 26.6.2

06 Jun 11:26

Choose a tag to compare

FocusWell 26.6.2 changes the reserve model around saving, depletion, and restart.

What changed:

  • Added tiered savings interest for unlocked reserve: 5% daily on the first 6h, 8% from 6h to 24h, and 12% above 24h.
  • Moved the default FocusWell day boundary back to 04:00 so late-night leisure stays in the same business day.
  • Replaced the old three-day Daily Grant pause with a Leisure lock. Daily rewards can still be saved, but Leisure stays unavailable until one uninterrupted 2h focus session restarts the app.
  • Added a 3h restart bonus when that 2h focus unlocks Leisure.
  • Paused phone-use correction while Leisure is locked to keep the account model clear.
  • Updated Today, check-in, depleted-state copy, docs, Room schema, and tests for the new rules.

Release evidence:

  • GitHub Actions release workflow passed.
  • Backend check passed in CI.
  • Android unit tests passed in CI.
  • Signed APKs were built for arm64-v8a, armeabi-v7a, and x86_64.

FocusWell 26.6.1

03 Jun 09:36
26.6.1
9951ca3

Choose a tag to compare

Changes

  • Daily rule trackers now update while a matching Focus session is running.
  • Tracker rings separate saved progress from live preview: solid arc means saved FocusRecord progress, dashed arc means the current active Focus preview.
  • A tracker only enters completed/check state after saved records meet the target, so live preview does not settle rewards early.
  • Added test coverage for active Focus tracker projection.
  • Ignored local .pithagoras/ scratch files.

Release artifacts

Signed APKs are attached for arm64-v8a, armeabi-v7a, and x86_64, with checksums in SHA256SUMS.txt.

FocusWell 26.5.32

31 May 05:12
26.5.32
a01599d

Choose a tag to compare

Active timer layout polish.

  • Focus running now keeps the elapsed timer and "If ended now" earning preview in separate layout zones, so long timers no longer crowd the projected reward.
  • Leisure running now shows elapsed time and sleep-protection cost as structured stats below the remaining timer, instead of squeezing the 2x state into the top badge row.
  • Includes signed APKs for arm64-v8a, armeabi-v7a, and x86_64, plus SHA256SUMS.txt.

FocusWell 26.5.31

31 May 03:21
26.5.31
92ccb9f

Choose a tag to compare

What's new

  • Daily tracker progress is cleaner and easier to scan, with a total reward summary in the header.
  • Today start actions have a stronger paired surface so Focus and Leisure feel equally available.
  • Cloud backup now explains whether this device or the cloud backup is newer before replacing anything.
  • Settings Data and Update sections use lighter rows, clearer icons, and consistent icon coloring.
  • App copy was tightened to follow the current Material 3 content guidance.

Verification

  • Release CI passed backend checks, Android JVM tests, and signed APK build.
  • Local Android checks passed: ./gradlew testDebugUnitTest compileDebugAndroidTestKotlin assembleDebug.
  • Debug APK was installed on a connected device for Settings and Cloud backup review.

APKs

Signed APKs are attached for arm64-v8a, armeabi-v7a, and x86_64. Use SHA256SUMS.txt to verify downloads if installing manually.

FocusWell 26.5.26

31 May 01:50
26.5.26
c6fb496

Choose a tag to compare

What's new

  • FocusWell now uses Google Sans Flex for app typography.
  • Reserve and timer hero moments use a more expressive rounded 72pt semi-expanded ExtraBold Google Sans Flex instance.
  • Dense UI such as rows, settings, labels, and controls keeps the normal-width Google Sans Flex family for readability.
  • The bundled font license is included with app assets.

Verification

  • Release CI passed backend checks, Android JVM tests, and signed APK build.
  • Local Android checks passed: ./gradlew testDebugUnitTest compileDebugAndroidTestKotlin assembleDebug.

APKs

Signed APKs are attached for arm64-v8a, armeabi-v7a, and x86_64. Use SHA256SUMS.txt to verify downloads if installing manually.

FocusWell 26.5.25

31 May 01:12
26.5.25
8936597

Choose a tag to compare

What's new

  • Balance now has an Add record FAB for creating manual balance records directly from the account view.
  • Manual records save as ledger adjustments with a title, positive or negative minutes, and an optional note, so they appear in the Balance list and 7-day net chart.
  • Negative manual adjustments are capped at the current reserve, preserving FocusWell's no-overdraft accounting rule.

Verification

  • Release CI passed backend checks, Android JVM tests, and signed APK build.
  • Local Android checks passed: ./gradlew testDebugUnitTest compileDebugAndroidTestKotlin assembleDebug.

APKs

Signed APKs are attached for arm64-v8a, armeabi-v7a, and x86_64. Use SHA256SUMS.txt to verify downloads if installing manually.