| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| aw-android.aab | 2026-09-11 | 192.7 MB | |
| aw-android.apk | 2026-09-11 | 273.2 MB | |
| README.md | 2026-09-11 | 80.5 kB | |
| v0.14.0 source code.tar.gz | 2026-09-11 | 509.2 kB | |
| v0.14.0 source code.zip | 2026-09-11 | 592.7 kB | |
| Totals: 5 Items | 467.1 MB | 0 | |
These are the release notes for ActivityWatch for Android version v0.14.0.
Contributors
Thanks to everyone who contributed to this release:
@0xbrayo, @2e3s, @750, @almirb, @BelKed, @brayo-pip, @cosine0, @davidfraser, @deancureton, @Elijah-Bodden, @erikbjare, @fanxing11, @iloveitaly, @istudyatuni, @jkbh, @johan-bjareholt, @kenoma-hld, @Lorite, @matt-seb-ho, @musicinmybrain, @nathanmerrill, @nerumo, @NickWick13, @Noorts, @Organoidus, @pkvach, @RTnhN, @Senophyx, @skaparis, @TiberiusNemesis, @TimeToBuildBob, @vieteh
Changelog
Changes since v0.12.1:
π¦ aw-android
β¨ Features (30)
- feat(sync): show last completion status (#251) (
5b2449a) - feat(widget): add picker preview and document NotifyWorker rollup (#234) (
fa0fd58) - feat: add Material You monochrome launcher icon (#230) (
375b851) - feat(sync): bridge SAF-granted URI to aw-sync output (Phase 2) (#209) (
d9802dd) - feat(sync): add SyncSettingsActivity β enable/disable toggle + SAF directory picker (#204) (
41d5b5a) - feat(notify): read alert config from server settings, fall back to defaults (#202) (
348a0a3) - feat(notify): add aw-notify support β activity-time threshold alerts (#199) (
26dcfb5) - feat: add POST_NOTIFICATIONS permission and runtime request (#195) (
3144444) - feat(auth): bootstrap android dashboard token (#157) (
6afd735) - feat(watcher): multi-browser WebWatcher with Firefox Compose toolbar support (#187) (
3e719ed) - feat(sync): disable automatic sync by default (#184) (
812c25c) - feat: migrate legacy db hostnames (
1c05168) - feat: unlock watcher (
cc4d966) - feat: update widget every 5 mins (
a6a50bf) - feat: update widget every 15 mins (
3f37a4e) - feat: bump ci versions (
e92ad7e) - feat: media watcher (
0ad7232) - feat: add widget refresh animation (
778cca4) - feat: implement widget background worker (
fee7803) - feat: enhance widget with visual indicators (
e8a412c) - feat: implement category time widget (
d5b2ecb) - feat: add sync support methods to RustInterface (
5362608) - feat: experimental parsing of events in background (
b96d64a) - feat: always active in the background (
f1c4667) - feat: implemented generic web watcher with support of multiple web browsers (
54f95b2) - feat(android): implement automatic background sync (
b34bb0c) - feat(android): add SyncInterface.kt with JNI bindings for aw-sync (
dac00fb) - feat:use device name as hostname (
c77dbbc) - feat(release): auto-set versionName from tag on release builds (#168) (
1ca0268) - feat(auth): add API key settings screen (#156) (
ef703ce)
π Fixes (100)
Click to expand
- fix(notify): accept canonical shared config schema ([#246](https://github.com/ActivityWatch/aw-android/issues/246)) ([`b908428`](https://github.com/ActivityWatch/aw-android/commit/b908428)) - fix(sync): pick up aw-server-rust API-key JNI client and set data dir ([#249](https://github.com/ActivityWatch/aw-android/issues/249)) ([`e5ff57f`](https://github.com/ActivityWatch/aw-android/commit/e5ff57f)) - fix(android): open Activity view with device hostname, not unknown ([#250](https://github.com/ActivityWatch/aw-android/issues/250)) ([`86a712e`](https://github.com/ActivityWatch/aw-android/commit/86a712e)) - fix(notify): open the activity view when an alert is tapped ([#242](https://github.com/ActivityWatch/aw-android/issues/242)) ([`4eb6391`](https://github.com/ActivityWatch/aw-android/commit/4eb6391)) - fix(android): migrate aw-watcher-android-test buckets on startup ([#244](https://github.com/ActivityWatch/aw-android/issues/244)) ([`cc0e368`](https://github.com/ActivityWatch/aw-android/commit/cc0e368)) - fix(webview): open a document picker for untyped file inputs ([#248](https://github.com/ActivityWatch/aw-android/issues/248)) ([`cd6d448`](https://github.com/ActivityWatch/aw-android/commit/cd6d448)) - fix(android): report the app's version from /api/0/info ([#240](https://github.com/ActivityWatch/aw-android/issues/240)) ([`835b8bf`](https://github.com/ActivityWatch/aw-android/commit/835b8bf)) - fix(android): load background settings from datastore ([#237](https://github.com/ActivityWatch/aw-android/issues/237)) ([`23d1fc4`](https://github.com/ActivityWatch/aw-android/commit/23d1fc4)) - fix(widget): revert category grouping to top-level ([#233](https://github.com/ActivityWatch/aw-android/issues/233)) ([`8c50bc8`](https://github.com/ActivityWatch/aw-android/commit/8c50bc8)) - fix(notify): restore notification text from PR [#223](https://github.com/ActivityWatch/aw-android/issues/223) while keeping icon fix from PR [#227](https://github.com/ActivityWatch/aw-android/issues/227) ([#232](https://github.com/ActivityWatch/aw-android/issues/232)) ([`af809af`](https://github.com/ActivityWatch/aw-android/commit/af809af)) - fix: save bucket exports from the WebView instead of dropping them ([#229](https://github.com/ActivityWatch/aw-android/issues/229)) ([`ed15dae`](https://github.com/ActivityWatch/aw-android/commit/ed15dae)) - fix(sync): make Sync Settings reachable from the navigation drawer ([#221](https://github.com/ActivityWatch/aw-android/issues/221)) ([`85a98cc`](https://github.com/ActivityWatch/aw-android/commit/85a98cc)) - fix(notify): open MainActivity when notification is tapped ([#225](https://github.com/ActivityWatch/aw-android/issues/225)) ([`dddc5e6`](https://github.com/ActivityWatch/aw-android/commit/dddc5e6)) - fix(sync): make the SAF mirror recursive and structure-preserving ([#222](https://github.com/ActivityWatch/aw-android/issues/222)) ([`928814f`](https://github.com/ActivityWatch/aw-android/commit/928814f)) - fix(notify): use ActivityWatch logo as notification small icon ([#227](https://github.com/ActivityWatch/aw-android/issues/227)) ([`9738e73`](https://github.com/ActivityWatch/aw-android/commit/9738e73)) - fix(widget): group category time by full path, matching the Activity view ([#231](https://github.com/ActivityWatch/aw-android/issues/231)) ([`8a0d697`](https://github.com/ActivityWatch/aw-android/commit/8a0d697)) - fix: reword foreground notification to not expose internals ([#223](https://github.com/ActivityWatch/aw-android/issues/223)) ([`9088923`](https://github.com/ActivityWatch/aw-android/commit/9088923)) - fix(release): cap Play Store changelog at 500 characters ([#219](https://github.com/ActivityWatch/aw-android/issues/219)) ([`4c220f4`](https://github.com/ActivityWatch/aw-android/commit/4c220f4)) - fix: add prominent disclosure before accessibility settings redirect ([#215](https://github.com/ActivityWatch/aw-android/issues/215)) ([`63d8716`](https://github.com/ActivityWatch/aw-android/commit/63d8716)) - fix: replace Material attrs with AppCompat in settings activities ([#211](https://github.com/ActivityWatch/aw-android/issues/211)) ([`4f93433`](https://github.com/ActivityWatch/aw-android/commit/4f93433)) - fix(widget): match Activity view startOfDay and add open-app button ([#198](https://github.com/ActivityWatch/aw-android/issues/198)) ([`1bd18cc`](https://github.com/ActivityWatch/aw-android/commit/1bd18cc)) - fix(notify): trim DEFAULT_ALERTS to 2-3 thresholds per category ([#206](https://github.com/ActivityWatch/aw-android/issues/206)) ([`4a8fa57`](https://github.com/ActivityWatch/aw-android/commit/4a8fa57)) - fix(fastlane): add changelog 36.txt and auto-generate changelogs in CI ([#194](https://github.com/ActivityWatch/aw-android/issues/194)) ([`2dd4d52`](https://github.com/ActivityWatch/aw-android/commit/2dd4d52)) - fix(auth): call ensureDashboardApiKey in BackgroundService.onStartCommand ([#192](https://github.com/ActivityWatch/aw-android/issues/192)) ([`8eaebd7`](https://github.com/ActivityWatch/aw-android/commit/8eaebd7)) - fix(auth): persist auth-disabled setting across restarts ([#193](https://github.com/ActivityWatch/aw-android/issues/193)) ([`a28b9d7`](https://github.com/ActivityWatch/aw-android/commit/a28b9d7)) - fix: remove FOREGROUND_SERVICE_DATA_SYNC permission (unblocks v0.14.0 Play Store upload) ([#190](https://github.com/ActivityWatch/aw-android/issues/190)) ([`920e35e`](https://github.com/ActivityWatch/aw-android/commit/920e35e)) - fix: CSV/JSON export via WebAppInterface + FileProvider (fixes [#104](https://github.com/ActivityWatch/aw-android/issues/104)) ([#186](https://github.com/ActivityWatch/aw-android/issues/186)) ([`49d9363`](https://github.com/ActivityWatch/aw-android/commit/49d9363)) - fix: use Build.DEVICE instead of Build.MODEL for hostname fallback ([#183](https://github.com/ActivityWatch/aw-android/issues/183)) ([`39e840f`](https://github.com/ActivityWatch/aw-android/commit/39e840f)) - fix(ci): use version regex for SUPPLY_TRACK instead of semver is_stable ([#182](https://github.com/ActivityWatch/aw-android/issues/182)) ([`b6ccf63`](https://github.com/ActivityWatch/aw-android/commit/b6ccf63)) - fix(ci): add rubygems.org source before fastlane release step ([#180](https://github.com/ActivityWatch/aw-android/issues/180)) ([`16b61ce`](https://github.com/ActivityWatch/aw-android/commit/16b61ce)) - fix: revert "chore: replace the default android.jks.age" ([#175](https://github.com/ActivityWatch/aw-android/issues/175)) ([`caf8365`](https://github.com/ActivityWatch/aw-android/commit/caf8365)) - fix(migration): handle plain-text success response from migrateHostname JNI ([#172](https://github.com/ActivityWatch/aw-android/issues/172)) ([`62b8670`](https://github.com/ActivityWatch/aw-android/commit/62b8670)) - fix(ci): validate all jniLibs ABIs and exclude armeabi-v7a from debug builds ([#173](https://github.com/ActivityWatch/aw-android/issues/173)) ([`5d34795`](https://github.com/ActivityWatch/aw-android/commit/5d34795)) - fix(activity): skip main startup during onboarding ([`584c002`](https://github.com/ActivityWatch/aw-android/commit/584c002)) - fix(web): guard WebWatcher bucket initialization ([`510665b`](https://github.com/ActivityWatch/aw-android/commit/510665b)) - fix(media): handle bucket init failures ([`0458ff8`](https://github.com/ActivityWatch/aw-android/commit/0458ff8)) - fix(ci): call startForeground() before native init to avoid 5s ANR ([`c996d12`](https://github.com/ActivityWatch/aw-android/commit/c996d12)) - fix(service): call startForeground() in onCreate() to avoid 5s OS timeout ([`096ad26`](https://github.com/ActivityWatch/aw-android/commit/096ad26)) - fix(ci): avoid multi-line shell construct in e2e runner script ([`980e1d8`](https://github.com/ActivityWatch/aw-android/commit/980e1d8)) - fix(ci): keep e2e runner script in one shell ([`4e4465d`](https://github.com/ActivityWatch/aw-android/commit/4e4465d)) - fix(ci): stabilize aw-android web watcher e2e ([`c19c92d`](https://github.com/ActivityWatch/aw-android/commit/c19c92d)) - fix: move MediaWatcher bucket init off main thread; recycle WebWatcher node ([`ad935df`](https://github.com/ActivityWatch/aw-android/commit/ad935df)) - fix: restore SCHEDULE_EXACT_ALARM permission for widget updates ([`af2a3be`](https://github.com/ActivityWatch/aw-android/commit/af2a3be)) - fix: handle alarm errors and test JNI artifact restore ([`5ae06e6`](https://github.com/ActivityWatch/aw-android/commit/5ae06e6)) - fix: prevent overlapping-session double-count in SessionParser ([`8114118`](https://github.com/ActivityWatch/aw-android/commit/8114118)) - fix: drop unused SCHEDULE_EXACT_ALARM permission ([`a825e4f`](https://github.com/ActivityWatch/aw-android/commit/a825e4f)) - fix: use ConcurrentHashMap in MediaWatcher to prevent map-modification race ([`94fdb20`](https://github.com/ActivityWatch/aw-android/commit/94fdb20)) - fix: remove getTodayTimeline() that called deleted getTimelineForDay() ([`ac37e1b`](https://github.com/ActivityWatch/aw-android/commit/ac37e1b)) - fix: remove bulk-import helpers with no deduplication guard ([`89c1488`](https://github.com/ActivityWatch/aw-android/commit/89c1488)) - fix: remove dead CategoryTimeWidgetWorker and move SyncInterface init off main thread ([`3c4171d`](https://github.com/ActivityWatch/aw-android/commit/3c4171d)) - fix: distinguish server-down from fresh-install in EventParsingWorker guard ([`d73a99a`](https://github.com/ActivityWatch/aw-android/commit/d73a99a)) - fix: use conservative defaults for hostname migration success detection ([`6141493`](https://github.com/ActivityWatch/aw-android/commit/6141493)) - fix: remove test() debug method, clarify insertEvent KDoc, document suspend no-op ([`cc56b40`](https://github.com/ActivityWatch/aw-android/commit/cc56b40)) - fix: guard EventParsingWorker against epoch-0 cursor reset on cold server ([`37c9a17`](https://github.com/ActivityWatch/aw-android/commit/37c9a17)) - fix: keep AlarmManager fallback alarm alive when BackgroundService stops ([`6a46f35`](https://github.com/ActivityWatch/aw-android/commit/6a46f35)) - fix: add lifecycle-runtime-ktx dep, move SyncInterface init off main thread, deprecate sendHeartbeats() ([`8ea1334`](https://github.com/ActivityWatch/aw-android/commit/8ea1334)) - fix: pin all MediaWatcher callbacks to handlerThread to prevent data races ([`1e14f23`](https://github.com/ActivityWatch/aw-android/commit/1e14f23)) - fix: parse migrateHostname result as JSON instead of string-contains ([`61bd673`](https://github.com/ActivityWatch/aw-android/commit/61bd673)) - fix: prevent concurrent syncBoth() JNI calls via shared AtomicBoolean ([`2ce803e`](https://github.com/ActivityWatch/aw-android/commit/2ce803e)) - fix: move MediaWatcher polling and JNI heartbeat off main thread ([`a9124a1`](https://github.com/ActivityWatch/aw-android/commit/a9124a1)) - fix: recycle AccessibilityNodeInfo in WebWatcher.findWebView (API 26-32 leak) ([`d2a2958`](https://github.com/ActivityWatch/aw-android/commit/d2a2958)) - fix: restore widget periodic alarm in onUpdate (covers post-reboot case) ([`7169f61`](https://github.com/ActivityWatch/aw-android/commit/7169f61)) - fix: run hostname migration off main thread to avoid ANR; fix midnight calc ([`fdf6943`](https://github.com/ActivityWatch/aw-android/commit/fdf6943)) - fix: wire AlarmManager fallback in SyncScheduler so SYNC_ALARM is reachable ([`e9d7a4d`](https://github.com/ActivityWatch/aw-android/commit/e9d7a4d)) - fix: prevent concurrent syncs and unconditional hostname migration mark ([`d6605c5`](https://github.com/ActivityWatch/aw-android/commit/d6605c5)) - fix: restore background collection for session mode via goAsync in AlarmReceiver ([`76a22bd`](https://github.com/ActivityWatch/aw-android/commit/76a22bd)) - fix: bind session-event coroutine to Activity lifecycle; remove dual BOOT_COMPLETED (greploop final+1) ([`345bcc7`](https://github.com/ActivityWatch/aw-android/commit/345bcc7)) - fix: prevent async work from being orphaned in SyncAlarmReceiver (greploop final) ([`84e5c80`](https://github.com/ActivityWatch/aw-android/commit/84e5c80)) - fix: register SyncAlarmReceiver in manifest (greploop iteration 5) ([`2d33ddd`](https://github.com/ActivityWatch/aw-android/commit/2d33ddd)) - fix: pass foreground service type to startForeground on Android 14+ (greploop iteration 4) ([`b46440c`](https://github.com/ActivityWatch/aw-android/commit/b46440c)) - fix: prevent duplicate session insertion from concurrent callers (greploop iteration 3) ([`bf1d38a`](https://github.com/ActivityWatch/aw-android/commit/bf1d38a)) - fix: dispatch onUpdate off main thread to avoid ANR (greploop iteration 2) ([`01b5633`](https://github.com/ActivityWatch/aw-android/commit/01b5633)) - fix: address greptile review feedback (greploop iteration 1) ([`81204d9`](https://github.com/ActivityWatch/aw-android/commit/81204d9)) - fix: use KEEP policy for EventParsingWorker, remove dead widget code ([`e7f8556`](https://github.com/ActivityWatch/aw-android/commit/e7f8556)) - fix: rename production bucket from aw-watcher-android-test to aw-watcher-android ([`baa2f03`](https://github.com/ActivityWatch/aw-android/commit/baa2f03)) - fix(ci): skip deprecated 'tools' package in setup-android@v3 ([`fa39a20`](https://github.com/ActivityWatch/aw-android/commit/fa39a20)) - fix(ci): use default emulator target to avoid google_apis flakiness ([`e9224e5`](https://github.com/ActivityWatch/aw-android/commit/e9224e5)) - fix: address two greptile P1 findings ([`a92262a`](https://github.com/ActivityWatch/aw-android/commit/a92262a)) - fix(ci): preinstall ndk before emulator runner ([`4fbccb2`](https://github.com/ActivityWatch/aw-android/commit/4fbccb2)) - fix(sync): avoid replaying last session event ([`5e78333`](https://github.com/ActivityWatch/aw-android/commit/5e78333)) - fix(ci): stop masking e2e failures ([`14d85c4`](https://github.com/ActivityWatch/aw-android/commit/14d85c4)) - fix(sync): handle missing aw-sync library ([`28a5d46`](https://github.com/ActivityWatch/aw-android/commit/28a5d46)) - fix(ci): pass jniLibs via artifact upload/download instead of cache ([`dcdec24`](https://github.com/ActivityWatch/aw-android/commit/dcdec24)) - fix(ci): bypass onboarding, grant usage stats perm, unlock screen before screenshot ([`899466a`](https://github.com/ActivityWatch/aw-android/commit/899466a)) - fix(ci): install apk explicitly and use monkey to launch app before screenshot ([`08042bc`](https://github.com/ActivityWatch/aw-android/commit/08042bc)) - fix(ci): correct am start intent to use debug package + full class name ([`1177a81`](https://github.com/ActivityWatch/aw-android/commit/1177a81)) - fix(ci): launch app, sleep 1s, screenshot and logcat in emulator-runner script ([`de60534`](https://github.com/ActivityWatch/aw-android/commit/de60534)) - fix(ci): restore missing path key and set fail-on-cache-miss: false in cache restore steps ([`c178744`](https://github.com/ActivityWatch/aw-android/commit/c178744)) - fix(ci): remove fail-on-cache-miss from cache restore ([`52533f5`](https://github.com/ActivityWatch/aw-android/commit/52533f5)) - fix(ci): update sdkmanager, avdmanager, and emulator paths for setup-android@v3 ([`0bedc25`](https://github.com/ActivityWatch/aw-android/commit/0bedc25)) - fix: fix doNotStrip property not working ([`408c3af`](https://github.com/ActivityWatch/aw-android/commit/408c3af)) - fix: fix single-instance errors on android ([`607a73a`](https://github.com/ActivityWatch/aw-android/commit/607a73a)) - fix: fix launch on boot not working ([`36749b2`](https://github.com/ActivityWatch/aw-android/commit/36749b2)) - fix(ci): upgrade android-actions/setup-android from v2 to v3 ([#169](https://github.com/ActivityWatch/aw-android/issues/169)) ([`e9e3615`](https://github.com/ActivityWatch/aw-android/commit/e9e3615)) - fix: fix Rust initialize JNI return type ([#167](https://github.com/ActivityWatch/aw-android/issues/167)) ([`edca195`](https://github.com/ActivityWatch/aw-android/commit/edca195)) - fix(release): require committed versionName for tag builds ([#155](https://github.com/ActivityWatch/aw-android/issues/155)) ([`dbd05d1`](https://github.com/ActivityWatch/aw-android/commit/dbd05d1)) - fix(ci): bump aw-server-rust submodule to fix time-0.3.30 compile error on Rust 1.85+ ([#165](https://github.com/ActivityWatch/aw-android/issues/165)) ([`00b06c4`](https://github.com/ActivityWatch/aw-android/commit/00b06c4)) - fix(webui): keep embedded ActivityWatch URLs inside WebView ([#161](https://github.com/ActivityWatch/aw-android/issues/161)) ([`2e9e733`](https://github.com/ActivityWatch/aw-android/commit/2e9e733)) - fix: remove logspam in chrome watcher ([`9d32040`](https://github.com/ActivityWatch/aw-android/commit/9d32040)) - fix: added check that port 5600 is not already in use ([`806dc6c`](https://github.com/ActivityWatch/aw-android/commit/806dc6c))
π¨ Misc (32)
Click to expand
- chore: bump versionName to 0.14.0, versionCode to 41 ([`e0cad8e`](https://github.com/ActivityWatch/aw-android/commit/e0cad8e)) - chore: bump versionName to 0.14.0b2, versionCode to 40 ([`5ec992b`](https://github.com/ActivityWatch/aw-android/commit/5ec992b)) - chore: bump versionName to 0.14.0b1, versionCode to 39 ([`a21b48c`](https://github.com/ActivityWatch/aw-android/commit/a21b48c)) - chore: bump versionName to 0.14.0dev202608101, versionCode to 38 ([`9a7a556`](https://github.com/ActivityWatch/aw-android/commit/9a7a556)) - chore: bump versionName to 0.14.0dev20260810, versionCode to 38 ([`9197df4`](https://github.com/ActivityWatch/aw-android/commit/9197df4)) - docs(ci): cross-reference shared Android signing strategy with gptme ([#207](https://github.com/ActivityWatch/aw-android/issues/207)) ([`f206252`](https://github.com/ActivityWatch/aw-android/commit/f206252)) - chore: bump versionName to 0.14.0dev20260723 ([`749e059`](https://github.com/ActivityWatch/aw-android/commit/749e059)) - chore: bump versionName to 0.14.0dev20260722 ([`8e0f9d6`](https://github.com/ActivityWatch/aw-android/commit/8e0f9d6)) - chore: bump versionName to 0.14.0dev202607121 ([`6f9ca02`](https://github.com/ActivityWatch/aw-android/commit/6f9ca02)) - chore: bump versionName to 0.14.0dev20260712 ([`67b2326`](https://github.com/ActivityWatch/aw-android/commit/67b2326)) - chore: bump aw-server-rust submodule ([`09f59e4`](https://github.com/ActivityWatch/aw-android/commit/09f59e4)) - chore: bump versionName to 0.14.0 ([`8ae1096`](https://github.com/ActivityWatch/aw-android/commit/8ae1096)) - Revert "fix(ci): avoid multi-line shell construct in e2e runner script" ([`2de01f0`](https://github.com/ActivityWatch/aw-android/commit/2de01f0)) - refactor: dedupe bucket-id constants and guard EventParsingWorker on usage access ([`7410568`](https://github.com/ActivityWatch/aw-android/commit/7410568)) - chore: linting diff ([`824880c`](https://github.com/ActivityWatch/aw-android/commit/824880c)) - chore: update settings.gradle ([`119ad2e`](https://github.com/ActivityWatch/aw-android/commit/119ad2e)) - refactor(ci): replace manual emulator setup with reactivecircus/android-emulator-runner@v2 ([`ef22ce5`](https://github.com/ActivityWatch/aw-android/commit/ef22ce5)) - refactor: simplify widget styling and worker logic ([`c8b4ea0`](https://github.com/ActivityWatch/aw-android/commit/c8b4ea0)) - refactor: optimize widget layout for 4x1 size ([`4c48273`](https://github.com/ActivityWatch/aw-android/commit/4c48273)) - chore: update aw-server-rust submodule reference ([`257e0bd`](https://github.com/ActivityWatch/aw-android/commit/257e0bd)) - refactor: improve RustInterface initialization ([`de6e0f6`](https://github.com/ActivityWatch/aw-android/commit/de6e0f6)) - chore: replace the default android.jks.age ([`d78c637`](https://github.com/ActivityWatch/aw-android/commit/d78c637)) - style: fix linting warrnings ([`63c6c3e`](https://github.com/ActivityWatch/aw-android/commit/63c6c3e)) - Update mobile/src/main/java/net/activitywatch/android/watcher/WebWatcher.kt ([`fe8be7e`](https://github.com/ActivityWatch/aw-android/commit/fe8be7e)) - chore: minimum api target bump ([`bc7251e`](https://github.com/ActivityWatch/aw-android/commit/bc7251e)) - chore: gradle version bump and misc ([`8b06a07`](https://github.com/ActivityWatch/aw-android/commit/8b06a07)) - refactor: refactored to improve accuracy of the timeline ([`fe0a582`](https://github.com/ActivityWatch/aw-android/commit/fe0a582)) - docs: update deprecated magick command ([`68fb439`](https://github.com/ActivityWatch/aw-android/commit/68fb439)) - chore: add 'sh' to README.md ([`4e6eb28`](https://github.com/ActivityWatch/aw-android/commit/4e6eb28)) - docs: added comment about versionName and versionCode ([`6671bd8`](https://github.com/ActivityWatch/aw-android/commit/6671bd8)) - chore: bumped versionName and versionCode to 0.12.1 ([`d95ca0d`](https://github.com/ActivityWatch/aw-android/commit/d95ca0d)) - docs(README): added Play Store ratings badge ([`85bce09`](https://github.com/ActivityWatch/aw-android/commit/85bce09))
(excluded 25 less relevant commits)
π¦ aw-server-rust
β¨ Features (24)
- feat(classify): optional priority field for category rules (#663) (
d2e7b80) - feat(profile): named instance profiles via --profile flag (#652) (
c8533a0) - feat(server): let packaged builds override the reported version (#656) (
77defef) - feat(android): add migration for aw-watcher-android-test bucket names (#628) (
c022e85) - feat(datastore): add opt-in SQLCipher encryption support (#584) (
af324f9) - feat(server): add --config override for server config path (#601) (
c82981d) - feat(privacy-filter): add heartbeat-level privacy filtering engine (#600) (
df49b3d) - feat(client): add API key authentication support to aw-client-rust (#587) (
2875df5) - feat(server): add opt-in API key authentication via Bearer token (#585) (
7c33810) - feat(cors): add cors_regex config for custom regex-based CORS origins (#569) (
0b46e59) - feat: fetch server side categories for querying (#568) (
0d4c285) - feat: add an JNI endpoint for android querying (
0b7fd68) - feat: set max-page size to 16KB for shared objects (
f7965c7) - feat(aw-sync): pass hostname from Android to JNI for proper sync directory structure (
69afcab) - feat(aw-sync): add Android JNI support and library build (
9467c2a) - feat(sync): daemon support for advanced sync (#528) (
d40d712) - feat: add optional always-active-pattern to canonical queries (#543) (
10c50ba) - feat(client): support single instance (#522) (
f4bb94d) - feat: canonical queries (#529) (
02504a6) - feat(sync): gracefully handle SIGTERMs (#516) (
869d65e) - feat: added query function in aw-client (#477) (
c056e50) - feat: added daemon default subcommand, syncing at 5min intervals (
5dd5f34) - feat(sync): assume sync subcommand if none given (
ae8f7bf) - feat(sync): moved logic in sync-test scripts into rust, enabling sync with a single command (#430) (
3ab8291)
π Fixes (48)
Click to expand
- fix(datastore): merge disjoint aw-watcher-android-test events on name collision ([#661](https://github.com/ActivityWatch/aw-server-rust/issues/661)) ([`8f03f04`](https://github.com/ActivityWatch/aw-server-rust/commit/8f03f04)) - fix(aw-sync): forward API key on Android JNI client ([#666](https://github.com/ActivityWatch/aw-server-rust/issues/666)) ([`6d4fdf7`](https://github.com/ActivityWatch/aw-server-rust/commit/6d4fdf7)) - fix(server): reject bucket creation with whitespace in client hostname ([#658](https://github.com/ActivityWatch/aw-server-rust/issues/658)) ([`840d11c`](https://github.com/ActivityWatch/aw-server-rust/commit/840d11c)) - fix(android): log Rust panics to logcat via android_log ([#654](https://github.com/ActivityWatch/aw-server-rust/issues/654)) ([`2de9533`](https://github.com/ActivityWatch/aw-server-rust/commit/2de9533)) - fix(android): load widget classes from datastore, not unauthenticated HTTP ([#653](https://github.com/ActivityWatch/aw-server-rust/issues/653)) ([`75722f3`](https://github.com/ActivityWatch/aw-server-rust/commit/75722f3)) - fix: resolve cargo build warnings ([#619](https://github.com/ActivityWatch/aw-server-rust/issues/619)) ([`ab9c848`](https://github.com/ActivityWatch/aw-server-rust/commit/ab9c848)) - fix(sync): never re-sync buckets synced from another host ([#648](https://github.com/ActivityWatch/aw-server-rust/issues/648)) ([`d827c15`](https://github.com/ActivityWatch/aw-server-rust/commit/d827c15)) - fix(aw-sync): only write $aw.sync.origin on pull, not push-staging ([#650](https://github.com/ActivityWatch/aw-server-rust/issues/650)) ([`40d0c65`](https://github.com/ActivityWatch/aw-server-rust/commit/40d0c65)) - fix(ci): remove brittle dependabot automerge PAT ([#643](https://github.com/ActivityWatch/aw-server-rust/issues/643)) ([`d030f63`](https://github.com/ActivityWatch/aw-server-rust/commit/d030f63)) - fix(query): return 400 Bad Request for query errors instead of 500 ([#644](https://github.com/ActivityWatch/aw-server-rust/issues/644)) ([`a422b6f`](https://github.com/ActivityWatch/aw-server-rust/commit/a422b6f)) - fix(aw-sync): forward API key from server config, stop panicking on 401 ([#640](https://github.com/ActivityWatch/aw-server-rust/issues/640)) ([`a8bf1e4`](https://github.com/ActivityWatch/aw-server-rust/commit/a8bf1e4)) - fix(cors): scope the moz-extension wildcard to aw-watcher-web endpoints ([#637](https://github.com/ActivityWatch/aw-server-rust/issues/637)) ([`45ca293`](https://github.com/ActivityWatch/aw-server-rust/commit/45ca293)) - fix(auth): API key bypass via percent-encoded paths ([#636](https://github.com/ActivityWatch/aw-server-rust/issues/636)) ([`8fd4e09`](https://github.com/ActivityWatch/aw-server-rust/commit/8fd4e09)) - fix(android): update JNI androidQuery bucket name to aw-watcher-android ([#632](https://github.com/ActivityWatch/aw-server-rust/issues/632)) ([`0094c14`](https://github.com/ActivityWatch/aw-server-rust/commit/0094c14)) - fix(sync): chunk event fetch in sync_one() to prevent OOM on large buckets ([#631](https://github.com/ActivityWatch/aw-server-rust/issues/631)) ([`d87bd93`](https://github.com/ActivityWatch/aw-server-rust/commit/d87bd93)) - fix(deps): upgrade reqwest 0.11 β 0.12 to fix rustls-webpki vulnerability ([#617](https://github.com/ActivityWatch/aw-server-rust/issues/617)) ([`6f6c64a`](https://github.com/ActivityWatch/aw-server-rust/commit/6f6c64a)) - fix(ci): harden dependabot automerge workflow ([#611](https://github.com/ActivityWatch/aw-server-rust/issues/611)) ([`288decb`](https://github.com/ActivityWatch/aw-server-rust/commit/288decb)) - fix(android): make compile-android.sh cwd-safe ([#609](https://github.com/ActivityWatch/aw-server-rust/issues/609)) ([`7812b56`](https://github.com/ActivityWatch/aw-server-rust/commit/7812b56)) - fix(android): load embedded server config ([#608](https://github.com/ActivityWatch/aw-server-rust/issues/608)) ([`0c8b2ad`](https://github.com/ActivityWatch/aw-server-rust/commit/0c8b2ad)) - fix(aw-client-rust): fail on non-2xx responses ([#607](https://github.com/ActivityWatch/aw-server-rust/issues/607)) ([`73389bc`](https://github.com/ActivityWatch/aw-server-rust/commit/73389bc)) - fix(query): support select_keys in regex rules ([#605](https://github.com/ActivityWatch/aw-server-rust/issues/605)) ([`5b3f0f8`](https://github.com/ActivityWatch/aw-server-rust/commit/5b3f0f8)) - fix(deps): bump time to 0.3.47 in Cargo.lock ([#589](https://github.com/ActivityWatch/aw-server-rust/issues/589)) ([`1e9c358`](https://github.com/ActivityWatch/aw-server-rust/commit/1e9c358)) - fix: prevent API key auth bypass via double slashes ([#588](https://github.com/ActivityWatch/aw-server-rust/issues/588)) ([`4f6c565`](https://github.com/ActivityWatch/aw-server-rust/commit/4f6c565)) - fix(import): merge events into existing bucket instead of failing ([#575](https://github.com/ActivityWatch/aw-server-rust/issues/575)) ([`0a94e0f`](https://github.com/ActivityWatch/aw-server-rust/commit/0a94e0f)) - fix(datastore): handle commit failures gracefully instead of panicking ([#572](https://github.com/ActivityWatch/aw-server-rust/issues/572)) ([`9a8802a`](https://github.com/ActivityWatch/aw-server-rust/commit/9a8802a)) - fix(transform): use scheme as domain for file:// URLs ([#570](https://github.com/ActivityWatch/aw-server-rust/issues/570)) ([`f9faa5e`](https://github.com/ActivityWatch/aw-server-rust/commit/f9faa5e)) - fix(dirs): restore /log subdirectory in log path after appdirs migration ([#565](https://github.com/ActivityWatch/aw-server-rust/issues/565)) ([`66e2e97`](https://github.com/ActivityWatch/aw-server-rust/commit/66e2e97)) - fix: replace appdirs with dirs for Windows ARM64 compatibility ([#562](https://github.com/ActivityWatch/aw-server-rust/issues/562)) ([`91ccf22`](https://github.com/ActivityWatch/aw-server-rust/commit/91ccf22)) - fix(datastore): preserve event ID in heartbeat cache after merge ([#561](https://github.com/ActivityWatch/aw-server-rust/issues/561)) ([`1c2920d`](https://github.com/ActivityWatch/aw-server-rust/commit/1c2920d)) - fix(aw-sync): add cdylib crate-type for JNI shared library generation ([`8cdeea6`](https://github.com/ActivityWatch/aw-server-rust/commit/8cdeea6)) - fix(aw-sync): make get_server_port conditional for Android ([`d67870f`](https://github.com/ActivityWatch/aw-server-rust/commit/d67870f)) - fix(aw-sync): make env mutable and conditionally compile config functions for Android ([`ef0ad9e`](https://github.com/ActivityWatch/aw-server-rust/commit/ef0ad9e)) - fix(aw-sync): fix type annotations and JNI reference in android.rs ([`cfabb77`](https://github.com/ActivityWatch/aw-server-rust/commit/cfabb77)) - fix(aw-sync): make clap import and ValueEnum derive conditional on cli feature ([`dc2111a`](https://github.com/ActivityWatch/aw-server-rust/commit/dc2111a)) - fix(datastore): use event ID instead of max(endtime) in replace_last_event ([#555](https://github.com/ActivityWatch/aw-server-rust/issues/555)) ([`7ffceb8`](https://github.com/ActivityWatch/aw-server-rust/commit/7ffceb8)) - fix(queries): eliminate double-escaping in regex patterns ([#541](https://github.com/ActivityWatch/aw-server-rust/issues/541)) ([`8289a0f`](https://github.com/ActivityWatch/aw-server-rust/commit/8289a0f)) - fix(android): jstring_to_string function to properly convert Java strings ([#547](https://github.com/ActivityWatch/aw-server-rust/issues/547)) ([`24d3bdf`](https://github.com/ActivityWatch/aw-server-rust/commit/24d3bdf)) - fix(sync): added `client.wait_for_start()` and improve error handling in sync daemon ([#495](https://github.com/ActivityWatch/aw-server-rust/issues/495)) ([`a0cdef9`](https://github.com/ActivityWatch/aw-server-rust/commit/a0cdef9)) - fix(sync): remove bug-causing workaround for spurious small db files (fixes [#466](https://github.com/ActivityWatch/aw-server-rust/issues/466)) ([#492](https://github.com/ActivityWatch/aw-server-rust/issues/492)) ([`5738246`](https://github.com/ActivityWatch/aw-server-rust/commit/5738246)) - fix(linux): add sd-notify for better systemd interop ([#489](https://github.com/ActivityWatch/aw-server-rust/issues/489)) ([`8d7ce89`](https://github.com/ActivityWatch/aw-server-rust/commit/8d7ce89)) - fix: fixed compilation warnings & deprecations ([#479](https://github.com/ActivityWatch/aw-server-rust/issues/479)) ([`14165e1`](https://github.com/ActivityWatch/aw-server-rust/commit/14165e1)) - fix: fix for served paths in new aw-webui build config (no more /static/) ([`f1f63c3`](https://github.com/ActivityWatch/aw-server-rust/commit/f1f63c3)) - fix: added sync dir config via global `--sync-dir` cli param and `AW_SYNC_DIR` env var ([#457](https://github.com/ActivityWatch/aw-server-rust/issues/457)) ([`1b56e03`](https://github.com/ActivityWatch/aw-server-rust/commit/1b56e03)) - fix: replace panics with results & better option types ([#437](https://github.com/ActivityWatch/aw-server-rust/issues/437)) ([`dc70318`](https://github.com/ActivityWatch/aw-server-rust/commit/dc70318)) - fix: set rocket_cors log level to Warn (fixes[[#975](https://github.com/ActivityWatch/aw-server-rust/issues/975)](https://github.com/ActivityWatch/activitywatch/issues/975)) ([`59ee035`](https://github.com/ActivityWatch/aw-server-rust/commit/59ee035)) - fix(datastore): fixed deprecations in chrono (timestamp_nanos and from_utc) ([`88464b5`](https://github.com/ActivityWatch/aw-server-rust/commit/88464b5)) - fix: return null for missing settings without 404 ([`d39f258`](https://github.com/ActivityWatch/aw-server-rust/commit/d39f258)) - fix: rewrote settings logic to mimic aw-server-python behavior ([#428](https://github.com/ActivityWatch/aw-server-rust/issues/428)) ([`728c00e`](https://github.com/ActivityWatch/aw-server-rust/commit/728c00e))
π¨ Misc (17)
Click to expand
- various TODOs, FIXMEs ([#669](https://github.com/ActivityWatch/aw-server-rust/issues/669)) ([`8bb37ad`](https://github.com/ActivityWatch/aw-server-rust/commit/8bb37ad)) - perf(aw-transform): cache categorize results per event data to fix month-view timeout ([#657](https://github.com/ActivityWatch/aw-server-rust/issues/657)) ([`7429039`](https://github.com/ActivityWatch/aw-server-rust/commit/7429039)) - test(aw-query): add property-based fuzz tests for regex compilation ([#651](https://github.com/ActivityWatch/aw-server-rust/issues/651)) ([`4947c03`](https://github.com/ActivityWatch/aw-server-rust/commit/4947c03)) - perf: cache compiled regex in categorization rules ([#634](https://github.com/ActivityWatch/aw-server-rust/issues/634)) ([`d350f42`](https://github.com/ActivityWatch/aw-server-rust/commit/d350f42)) - aw-sync: add --mode to daemon, fix unrespected --start-date ([#620](https://github.com/ActivityWatch/aw-server-rust/issues/620)) ([`9e771ef`](https://github.com/ActivityWatch/aw-server-rust/commit/9e771ef)) - chore: bump webui submodule ([`c665f2d`](https://github.com/ActivityWatch/aw-server-rust/commit/c665f2d)) - perf(datastore): enable WAL journal mode ([#616](https://github.com/ActivityWatch/aw-server-rust/issues/616)) ([`d7349c2`](https://github.com/ActivityWatch/aw-server-rust/commit/d7349c2)) - Performance improvements ([#615](https://github.com/ActivityWatch/aw-server-rust/issues/615)) ([`73ae710`](https://github.com/ActivityWatch/aw-server-rust/commit/73ae710)) - chore: bump aw-server-rust version to v0.14.0 ([`826efce`](https://github.com/ActivityWatch/aw-server-rust/commit/826efce)) - fix(aw-sync): use passed hostname directly instead of client.hostname ([`3202963`](https://github.com/ActivityWatch/aw-server-rust/commit/3202963)) - chore: bumped aw-server version to 0.13.1 ([`b8330f1`](https://github.com/ActivityWatch/aw-server-rust/commit/b8330f1)) - docs(sync): updated README for aw-sync with proper usage instructions ([`41b030a`](https://github.com/ActivityWatch/aw-server-rust/commit/41b030a)) - docs: removed +nightly from example command ([`6a93563`](https://github.com/ActivityWatch/aw-server-rust/commit/6a93563)) - Remove references to nightly rust release ([`01107b6`](https://github.com/ActivityWatch/aw-server-rust/commit/01107b6)) - perf: improve performance of filter_period_intersect ([#436](https://github.com/ActivityWatch/aw-server-rust/issues/436)) ([`55cad4a`](https://github.com/ActivityWatch/aw-server-rust/commit/55cad4a)) - docs: removed old mention of caveats ([`0240dc0`](https://github.com/ActivityWatch/aw-server-rust/commit/0240dc0)) - chore: added dist to gitignore ([`9b8df05`](https://github.com/ActivityWatch/aw-server-rust/commit/9b8df05))
(excluded 67 less relevant commits)
π¦ aw-webui
β¨ Features (43)
- feat(categories): expose category rule priority (#968) (
3e7fb7c) - feat(categories): support field-scoped regex rules on master (#952) (
a2ca625) - feat(i18n): add Swedish translation (#947) (
3eebf68) - feat(header): mark Research Edition builds (#941) (
71087a2) - feat(billing): add BillingView β category-grouped billable hours export (#938) (
d4bfd6f) - feat(categories): let builds ship a preset category set active by default (#936) (
322159b) - feat(ai-summary): add client-side AI activity summary page (#922) (
1be5633) - feat(settings): add aw-notify configuration panel (#923) (
009f484) - feat(home): engagement-gated supporter nudge + route survey/forum links through /go/ (#915) (
464405d) - feat(i18n): add vue-i18n with en, uk, de, ru, zh-CN locales (#896) (
948be8d) - feat(ui): pre-release polish pass β bug fixes, tests, and view-level revamps (#857) (
dc02ac8) - feat(home): add r/activitywatch community links (#854) (
363e1c7) - feat(settings): add privacy filter editor (#830) (
6516230) - feat: add saved query presets to Query Explorer (#829) (
f52008f) - feat(buckets): bulk delete buckets by host (closes #662) (#821) (
b8ec3c0) - feat(categorization): add category sets β named rule profiles with multi-set combining (#804) (
ea1b986) - feat(auth): bootstrap API token from URL/session (#806) (
dd7ae07) - feat(categorization): extract findCommonPhrases util with bigram support and tests (#803) (
5529031) - feat: add work time report view (#775) (
83dc881) - feat(timeline): add 'Merge by app' filter to reduce event flooding (#782) (
38663fb) - feat(timeline): add category filter to Timeline view (#778) (
137ee09) - feat(timeline): add AFK filter toggle to Timeline view (#776) (
ad06461) - feat(timeline): add keyboard and scroll panning support (#777) (
fdd2c4a) - feat: add a dynamic period to the high uncategorized time notification (#745) (
7d43d81) - feat: Add ability to better visualize value of custom events if not using title (#698) (
2cdfe0c) - feat: hide top-window titles vis on android (#737) (
360b1b4) - feat: add top bucket data by column vis (#733) (
7ed6115) - feat: enhance colorisation for Top Window Titles (#654) (
906b005) - feat(timeline): swimlanes, duration filter, and filter desc to timeline (#679) (
052656a) - feat: add Top Stopwatch Events view (#659) (
9259df7) - feat: add number input support for event data editing (#648) (
cb9a7ec) - feat: add top browser titles to activity visualization (#631) (
757f9f4) - feat: detect and set preferred theme based on user settings (#634) (
606112e) - feat(ux): improve timeline usability (#610) (
291da6f) - feat: revert to the default coloring for non-standard watchers (#613) (
85c007e) - feat: use category colors in the timeline view (#609) (
0cf7831) - feat: Add 'app' and 'title' fields to CSV export in Reports (#552) (
7c0761d) - feat: added categoryQuery support on Android, fixing 'Timeline (barchart)' visualization (
0282eec) - feat: improved timeline tooltip, including better time formatting (hide date if same day), fixes #494 (
54be44d) - feat: redesigned timeline filter settings, hid inside
<details>(609a7cc) - feat: filtering clients and hosts on timeline (#502) (
d7c70b4) - feat: added support for query caching in aw-client (#501) (
33784bd) - feat: server-side settings (#493) (
1131f9b)
π Fixes (131)
Click to expand
- fix(categories): switchToSet marks dirty when active set changes, enabling Save ([#965](https://github.com/ActivityWatch/aw-webui/issues/965)) ([`2ddc69f`](https://github.com/ActivityWatch/aw-webui/commit/2ddc69f)) - fix(timeline): handle synced buckets where origin hostname contains underscores ([#970](https://github.com/ActivityWatch/aw-webui/issues/970)) ([`4cfaf0a`](https://github.com/ActivityWatch/aw-webui/commit/4cfaf0a)) - fix(settings): route the notifications settings group ([#972](https://github.com/ActivityWatch/aw-webui/issues/972)) ([`8365c47`](https://github.com/ActivityWatch/aw-webui/commit/8365c47)) - fix(categories): don't let persisted install defaults beat a shipped preset ([#974](https://github.com/ActivityWatch/aw-webui/issues/974)) ([`2618faa`](https://github.com/ActivityWatch/aw-webui/commit/2618faa)) - fix(timeline): prevent mobile horizontal overflow ([#971](https://github.com/ActivityWatch/aw-webui/issues/971)) ([`ec68d20`](https://github.com/ActivityWatch/aw-webui/commit/ec68d20)) - fix(ux): replace prompt() with modals for Android WebView compatibility ([#966](https://github.com/ActivityWatch/aw-webui/issues/966)) ([`2809ee2`](https://github.com/ActivityWatch/aw-webui/commit/2809ee2)) - fix: split week/month desktop queries by day to avoid 30s timeout ([#951](https://github.com/ActivityWatch/aw-webui/issues/951)) ([`ec73005`](https://github.com/ActivityWatch/aw-webui/commit/ec73005)) - fix(android): don't merge on 'title' key for aw-watcher-android buckets ([#960](https://github.com/ActivityWatch/aw-webui/issues/960)) ([`85db7b5`](https://github.com/ActivityWatch/aw-webui/commit/85db7b5)) - fix(categories): import JSON from Android SAF and persist a single save ([#956](https://github.com/ActivityWatch/aw-webui/issues/956)) ([`97891e1`](https://github.com/ActivityWatch/aw-webui/commit/97891e1)) - fix(ci): find server logs under the testing cache root, never fail on absence ([#962](https://github.com/ActivityWatch/aw-webui/issues/962)) ([`7141e39`](https://github.com/ActivityWatch/aw-webui/commit/7141e39)) - fix(queries): match Arc and Dia in the chrome appname patterns ([#928](https://github.com/ActivityWatch/aw-webui/issues/928)) ([`d88a9a5`](https://github.com/ActivityWatch/aw-webui/commit/d88a9a5)) - fix(query): use native date inputs in query options ([#953](https://github.com/ActivityWatch/aw-webui/issues/953)) ([`2e757c5`](https://github.com/ActivityWatch/aw-webui/commit/2e757c5)) - fix(categories): auto-select sole hostname and stop lying about missing watchers ([#950](https://github.com/ActivityWatch/aw-webui/issues/950)) ([`13a9428`](https://github.com/ActivityWatch/aw-webui/commit/13a9428)) - fix: three small dashboard fixes ([#232](https://github.com/ActivityWatch/aw-webui/issues/232), [#935](https://github.com/ActivityWatch/aw-webui/issues/935), [#299](https://github.com/ActivityWatch/aw-webui/issues/299)) ([#942](https://github.com/ActivityWatch/aw-webui/issues/942)) ([`3cbe349`](https://github.com/ActivityWatch/aw-webui/commit/3cbe349)) - fix(layout): preserve bottom margin on small screens ([#946](https://github.com/ActivityWatch/aw-webui/issues/946)) ([`3092e41`](https://github.com/ActivityWatch/aw-webui/commit/3092e41)) - fix(views): guard server info before dereferencing in templates ([#933](https://github.com/ActivityWatch/aw-webui/issues/933)) ([`d9b42c2`](https://github.com/ActivityWatch/aw-webui/commit/d9b42c2)) - fix(category-builder): support hosts with only Android/ScreenTime buckets ([#932](https://github.com/ActivityWatch/aw-webui/issues/932)) ([`7db0598`](https://github.com/ActivityWatch/aw-webui/commit/7db0598)) - fix(settings): unify aw-notify config schema ([#924](https://github.com/ActivityWatch/aw-webui/issues/924)) ([`266a714`](https://github.com/ActivityWatch/aw-webui/commit/266a714)) - fix(categories): prevent saving invalid regex patterns ([#921](https://github.com/ActivityWatch/aw-webui/issues/921)) ([`82407b4`](https://github.com/ActivityWatch/aw-webui/commit/82407b4)) - fix(activity): hide unsupported visualizations instead of showing warning ([#919](https://github.com/ActivityWatch/aw-webui/issues/919)) ([`e304925`](https://github.com/ActivityWatch/aw-webui/commit/e304925)) - fix(queries): don't split on semicolons inside string literals ([#918](https://github.com/ActivityWatch/aw-webui/issues/918)) ([`cefc618`](https://github.com/ActivityWatch/aw-webui/commit/cefc618)) - fix(ci): drop brittle PAT-based dependabot automerge ([#901](https://github.com/ActivityWatch/aw-webui/issues/901)) ([`58173d8`](https://github.com/ActivityWatch/aw-webui/commit/58173d8)) - fix(ios): screentime compatibility patch with Greptile review fixes ([#917](https://github.com/ActivityWatch/aw-webui/issues/917)) ([`bf0fc84`](https://github.com/ActivityWatch/aw-webui/commit/bf0fc84)) - fix(categories): filter null/empty segments before saving class name ([#902](https://github.com/ActivityWatch/aw-webui/issues/902)) ([`a5ec97b`](https://github.com/ActivityWatch/aw-webui/commit/a5ec97b)) - fix(build): allow root git dependencies for npm >= 12 (fixes activitywatch[#1356](https://github.com/ActivityWatch/aw-webui/issues/1356)) ([#913](https://github.com/ActivityWatch/aw-webui/issues/913)) ([`749585f`](https://github.com/ActivityWatch/aw-webui/commit/749585f)) - fix(buckets): show phone icon for Android devices in Raw Data view ([#905](https://github.com/ActivityWatch/aw-webui/issues/905)) ([`5799225`](https://github.com/ActivityWatch/aw-webui/commit/5799225)) - fix(activity): detect Android device at runtime for view selection ([#903](https://github.com/ActivityWatch/aw-webui/issues/903)) ([`de79efe`](https://github.com/ActivityWatch/aw-webui/commit/de79efe)) - fix(categories): allocate safe numeric ID when class list is empty ([#892](https://github.com/ActivityWatch/aw-webui/issues/892)) ([`0c0b846`](https://github.com/ActivityWatch/aw-webui/commit/0c0b846)) - fix(deps): resolve 16 npm audit vulnerabilities via audit fix ([#893](https://github.com/ActivityWatch/aw-webui/issues/893)) ([`122a2ca`](https://github.com/ActivityWatch/aw-webui/commit/122a2ca)) - fix(i18n): use Intl.DateTimeFormat for locale-aware date/time display ([#894](https://github.com/ActivityWatch/aw-webui/issues/894)) ([`17d4a4b`](https://github.com/ActivityWatch/aw-webui/commit/17d4a4b)) - fix(buckets): surface real server error message on import failure ([#890](https://github.com/ActivityWatch/aw-webui/issues/890)) ([`f24f6e9`](https://github.com/ActivityWatch/aw-webui/commit/f24f6e9)) - fix(tests): skip cross-locale assertions when Node lacks full-icu ([#884](https://github.com/ActivityWatch/aw-webui/issues/884)) ([`5b77a78`](https://github.com/ActivityWatch/aw-webui/commit/5b77a78)) - fix(deps): override esbuild to patched version ([#867](https://github.com/ActivityWatch/aw-webui/issues/867)) ([`38fcf69`](https://github.com/ActivityWatch/aw-webui/commit/38fcf69)) - fix(activity): revert timeline_barchart as wide vis β breaks default 3-vis layout ([#863](https://github.com/ActivityWatch/aw-webui/issues/863)) ([`8768475`](https://github.com/ActivityWatch/aw-webui/commit/8768475)) - fix(timeline): keep scroll zoom anchored to cursor ([#860](https://github.com/ActivityWatch/aw-webui/issues/860)) ([`53b1499`](https://github.com/ActivityWatch/aw-webui/commit/53b1499)) - fix(activity): widen timeline barchart card ([`89d8a77`](https://github.com/ActivityWatch/aw-webui/commit/89d8a77)) - fix(deps): override vulnerable d3-color ([#858](https://github.com/ActivityWatch/aw-webui/issues/858)) ([`afa1e61`](https://github.com/ActivityWatch/aw-webui/commit/afa1e61)) - fix(score): show selected period label ([#845](https://github.com/ActivityWatch/aw-webui/issues/845)) ([`5c04d24`](https://github.com/ActivityWatch/aw-webui/commit/5c04d24)) - fix(categories): keep durations readable for long names ([#843](https://github.com/ActivityWatch/aw-webui/issues/843)) ([`c72fffa`](https://github.com/ActivityWatch/aw-webui/commit/c72fffa)) - fix(timeline): localize chart date labels ([#825](https://github.com/ActivityWatch/aw-webui/issues/825)) ([`adbddb4`](https://github.com/ActivityWatch/aw-webui/commit/adbddb4)) - fix(ci): restore PAT for dependabot auto-merge ([#837](https://github.com/ActivityWatch/aw-webui/issues/837)) ([`475442e`](https://github.com/ActivityWatch/aw-webui/commit/475442e)) - fix(query-explorer): solid Rename/Delete buttons for saved queries ([#835](https://github.com/ActivityWatch/aw-webui/issues/835)) ([`0072d36`](https://github.com/ActivityWatch/aw-webui/commit/0072d36)) - fix(ui): replace `<wbr>` with zero-width space in timeline labels, move bulk-delete to dropdown ([#834](https://github.com/ActivityWatch/aw-webui/issues/834)) ([`0db3447`](https://github.com/ActivityWatch/aw-webui/commit/0db3447)) - fix(ci): skip unused setup-cml Vega install ([#832](https://github.com/ActivityWatch/aw-webui/issues/832)) ([`266b20b`](https://github.com/ActivityWatch/aw-webui/commit/266b20b)) - fix(deps): remove obsolete Vue CLI Jest plugin ([#833](https://github.com/ActivityWatch/aw-webui/issues/833)) ([`ddbb4f8`](https://github.com/ActivityWatch/aw-webui/commit/ddbb4f8)) - fix(ci): repair dependabot automation ([#828](https://github.com/ActivityWatch/aw-webui/issues/828)) ([`62ee4ed`](https://github.com/ActivityWatch/aw-webui/commit/62ee4ed)) - fix: remove deprecated keyboard option from vis-timeline ([#826](https://github.com/ActivityWatch/aw-webui/issues/826)) ([`18a3946`](https://github.com/ActivityWatch/aw-webui/commit/18a3946)) - fix(timeline): wrap long bucket labels on narrow screens ([#822](https://github.com/ActivityWatch/aw-webui/issues/822)) ([`af1f3fd`](https://github.com/ActivityWatch/aw-webui/commit/af1f3fd)) - fix(settings): prevent null localStorage values from overriding state defaults ([#815](https://github.com/ActivityWatch/aw-webui/issues/815)) ([`8d9a7f8`](https://github.com/ActivityWatch/aw-webui/commit/8d9a7f8)) - fix(views): use queryOptions.start for +1 week button (closes [#817](https://github.com/ActivityWatch/aw-webui/issues/817)) ([#819](https://github.com/ActivityWatch/aw-webui/issues/819)) ([`907959c`](https://github.com/ActivityWatch/aw-webui/commit/907959c)) - fix(deps): patch Dependabot security blockers ([#812](https://github.com/ActivityWatch/aw-webui/issues/812)) ([`f4b9379`](https://github.com/ActivityWatch/aw-webui/commit/f4b9379)) - fix(query-options): prefer known hosts over unknown defaults ([#809](https://github.com/ActivityWatch/aw-webui/issues/809)) ([`444ed4f`](https://github.com/ActivityWatch/aw-webui/commit/444ed4f)) - fix(categories): keep Top Categories colors when category query contains encoded segments ([#781](https://github.com/ActivityWatch/aw-webui/issues/781)) ([`f2d0396`](https://github.com/ActivityWatch/aw-webui/commit/f2d0396)) - fix(deps): reduce npm vulnerabilities from 37 to 32 via overrides ([#771](https://github.com/ActivityWatch/aw-webui/issues/771)) ([`1db85aa`](https://github.com/ActivityWatch/aw-webui/commit/1db85aa)) - fix(queries): use query_bucket directly when full bucket ID is known ([#760](https://github.com/ActivityWatch/aw-webui/issues/760)) ([`1c7802b`](https://github.com/ActivityWatch/aw-webui/commit/1c7802b)) - fix(timeline): truncate long synced bucket names in sidebar ([#757](https://github.com/ActivityWatch/aw-webui/issues/757)) ([`1393ec6`](https://github.com/ActivityWatch/aw-webui/commit/1393ec6)) - fix(timeline): position tooltip above cursor to prevent overlap ([#758](https://github.com/ActivityWatch/aw-webui/issues/758)) ([`fc5bdd9`](https://github.com/ActivityWatch/aw-webui/commit/fc5bdd9)) - fix: allow single-date selection in timeline date range picker ([#767](https://github.com/ActivityWatch/aw-webui/issues/767)) ([`8d32ea9`](https://github.com/ActivityWatch/aw-webui/commit/8d32ea9)) - fix(timeline): use group.id instead of group.content for bucket ID lookup ([#765](https://github.com/ActivityWatch/aw-webui/issues/765)) ([`0c0368c`](https://github.com/ActivityWatch/aw-webui/commit/0c0368c)) - fix(sunburst-clock): respect startOfDay offset when rendering the clock ([#766](https://github.com/ActivityWatch/aw-webui/issues/766)) ([`86a71c8`](https://github.com/ActivityWatch/aw-webui/commit/86a71c8)) - fix: support file exports in Tauri webview ([#763](https://github.com/ActivityWatch/aw-webui/issues/763)) ([`919e9f3`](https://github.com/ActivityWatch/aw-webui/commit/919e9f3)) - fix(settings): prevent categorization crash when hostname not yet resolved ([#759](https://github.com/ActivityWatch/aw-webui/issues/759)) ([`cd5aafe`](https://github.com/ActivityWatch/aw-webui/commit/cd5aafe)) - fix: add Helium to browser list ([#744](https://github.com/ActivityWatch/aw-webui/issues/744)) ([`c32b635`](https://github.com/ActivityWatch/aw-webui/commit/c32b635)) - fix: resolve npm security vulnerabilities (qs, babel) ([#762](https://github.com/ActivityWatch/aw-webui/issues/762)) ([`cbeca31`](https://github.com/ActivityWatch/aw-webui/commit/cbeca31)) - fix(views): load categories on Query Explorer mount ([#753](https://github.com/ActivityWatch/aw-webui/issues/753)) ([`0cc1e2f`](https://github.com/ActivityWatch/aw-webui/commit/0cc1e2f)) - fix(categories): prevent duplicate names from causing shared edits ([#755](https://github.com/ActivityWatch/aw-webui/issues/755)) ([`a2256c4`](https://github.com/ActivityWatch/aw-webui/commit/a2256c4)) - fix(settings): prevent confirm dialog persisting after leaving settings ([#754](https://github.com/ActivityWatch/aw-webui/issues/754)) ([`5fe4025`](https://github.com/ActivityWatch/aw-webui/commit/5fe4025)) - fix: minor label fixes to TimelineBarChart ([#674](https://github.com/ActivityWatch/aw-webui/issues/674)) ([`345f3ee`](https://github.com/ActivityWatch/aw-webui/commit/345f3ee)) - fix: add uppercase names for some browsers ([#695](https://github.com/ActivityWatch/aw-webui/issues/695)) ([`e2e6abf`](https://github.com/ActivityWatch/aw-webui/commit/e2e6abf)) - fix: fix dark mode timeline colors ([#705](https://github.com/ActivityWatch/aw-webui/issues/705)) ([`ebeb847`](https://github.com/ActivityWatch/aw-webui/commit/ebeb847)) - fix: fix duplicate android hosts in header ([#725](https://github.com/ActivityWatch/aw-webui/issues/725)) ([`61b9f58`](https://github.com/ActivityWatch/aw-webui/commit/61b9f58)) - fix: add Floorp Browser support ([#683](https://github.com/ActivityWatch/aw-webui/issues/683)) ([`076d050`](https://github.com/ActivityWatch/aw-webui/commit/076d050)) - fix: add another name for Zen Browser ([#685](https://github.com/ActivityWatch/aw-webui/issues/685)) ([`afef52e`](https://github.com/ActivityWatch/aw-webui/commit/afef52e)) - fix: handle ^ and $ in rules ([#684](https://github.com/ActivityWatch/aw-webui/issues/684)) ([`34b42ed`](https://github.com/ActivityWatch/aw-webui/commit/34b42ed)) - fix: remove router guard for unsaved category settings ([#664](https://github.com/ActivityWatch/aw-webui/issues/664)) ([`9842d3e`](https://github.com/ActivityWatch/aw-webui/commit/9842d3e)) - fix: add another name for Brave ([#653](https://github.com/ActivityWatch/aw-webui/issues/653)) ([`f64e785`](https://github.com/ActivityWatch/aw-webui/commit/f64e785)) - fix: correct duration formatting logic ([#643](https://github.com/ActivityWatch/aw-webui/issues/643)) ([`2b14364`](https://github.com/ActivityWatch/aw-webui/commit/2b14364)) - fix: add Zen Browser to browser list ([`1860f15`](https://github.com/ActivityWatch/aw-webui/commit/1860f15)) - fix: fix tests ([#642](https://github.com/ActivityWatch/aw-webui/issues/642)) ([`53cbaaa`](https://github.com/ActivityWatch/aw-webui/commit/53cbaaa)) - fix: update upload-artifact action to version 4 ([#641](https://github.com/ActivityWatch/aw-webui/issues/641)) ([`8ec401c`](https://github.com/ActivityWatch/aw-webui/commit/8ec401c)) - fix: add browser names from Flathub ([#623](https://github.com/ActivityWatch/aw-webui/issues/623)) ([`053b8d6`](https://github.com/ActivityWatch/aw-webui/commit/053b8d6)) - fix: add chromium-browser ([#630](https://github.com/ActivityWatch/aw-webui/issues/630)) ([`8f6e767`](https://github.com/ActivityWatch/aw-webui/commit/8f6e767)) - fix: correctly invert colors of alerts in dark mode ([#591](https://github.com/ActivityWatch/aw-webui/issues/591)) ([`e6ad4cd`](https://github.com/ActivityWatch/aw-webui/commit/e6ad4cd)) - fix: add a default color for Media category ([#593](https://github.com/ActivityWatch/aw-webui/issues/593)) ([`6ed3e83`](https://github.com/ActivityWatch/aw-webui/commit/6ed3e83)) - fix: add browser app name `Microsoft Edge Beta` on macOS ([#595](https://github.com/ActivityWatch/aw-webui/issues/595)) ([`ba1305d`](https://github.com/ActivityWatch/aw-webui/commit/ba1305d)) - fix: fixed extra space before punctuation in Home view on desktop ([`2f3d1e8`](https://github.com/ActivityWatch/aw-webui/commit/2f3d1e8)) - fix: fixes issue with migrating category settings to the server ([#583](https://github.com/ActivityWatch/aw-webui/issues/583)) ([`54769b7`](https://github.com/ActivityWatch/aw-webui/commit/54769b7)) - fix: dark mode (Timeline, Activity, Raw Data) ([#575](https://github.com/ActivityWatch/aw-webui/issues/575)) ([`05c25c9`](https://github.com/ActivityWatch/aw-webui/commit/05c25c9)) - fix: add saturday as option for 'start of week' setting ([`80db006`](https://github.com/ActivityWatch/aw-webui/commit/80db006)) - fix: only save updated settings to server, store theme and landingpage in localStorage as well ([#573](https://github.com/ActivityWatch/aw-webui/issues/573)) ([`021acc4`](https://github.com/ActivityWatch/aw-webui/commit/021acc4)) - fix: removed unused guard ([`bf16309`](https://github.com/ActivityWatch/aw-webui/commit/bf16309)) - fix: fixed test needing to await async loading of settings ([`98dee43`](https://github.com/ActivityWatch/aw-webui/commit/98dee43)) - fix: fixed categories and views not being stored/loaded from server-side settings ([`b99efb4`](https://github.com/ActivityWatch/aw-webui/commit/b99efb4)) - fix: correctly convert `words` from map to array ([#569](https://github.com/ActivityWatch/aw-webui/issues/569)) ([`5993db3`](https://github.com/ActivityWatch/aw-webui/commit/5993db3)) - fix: dark mode (Stopwatch, Category Builder) ([#570](https://github.com/ActivityWatch/aw-webui/issues/570)) ([`8245c37`](https://github.com/ActivityWatch/aw-webui/commit/8245c37)) - fix: showing of `UncategorizedNotification` ([#571](https://github.com/ActivityWatch/aw-webui/issues/571)) ([`1b1209d`](https://github.com/ActivityWatch/aw-webui/commit/1b1209d)) - fix: correct URL encoding for category filter query params ([#566](https://github.com/ActivityWatch/aw-webui/issues/566)) ([`d3a22c2`](https://github.com/ActivityWatch/aw-webui/commit/d3a22c2)) - fix: hopefully fixes bug in category builder for 'constructor' word (and other prototype stuff) ([#565](https://github.com/ActivityWatch/aw-webui/issues/565)) ([`9d58554`](https://github.com/ActivityWatch/aw-webui/commit/9d58554)) - fix: fixes bug in category builder when word 'constructor' exists ([#564](https://github.com/ActivityWatch/aw-webui/issues/564)) ([`74b0d31`](https://github.com/ActivityWatch/aw-webui/commit/74b0d31)) - fix: add 'librewolf-default' browser appname ([#541](https://github.com/ActivityWatch/aw-webui/issues/541)) ([`75dc005`](https://github.com/ActivityWatch/aw-webui/commit/75dc005)) - fix: add 'Arc.exe' to browser appnames ([#553](https://github.com/ActivityWatch/aw-webui/issues/553)) ([`ba148a9`](https://github.com/ActivityWatch/aw-webui/commit/ba148a9)) - fix: added librewolf-default browser appname ([`dd37252`](https://github.com/ActivityWatch/aw-webui/commit/dd37252)) - fix: move 'brave browser' browser-to-appname entries ([#283](https://github.com/ActivityWatch/aw-webui/issues/283)) ([`b867e80`](https://github.com/ActivityWatch/aw-webui/commit/b867e80)) - fix: fix URL matching for toggling of dark-mode style element ([#562](https://github.com/ActivityWatch/aw-webui/issues/562)) ([`b54b5cb`](https://github.com/ActivityWatch/aw-webui/commit/b54b5cb)) - fix: fixed dark theme toggle in webpack ([`64bc94d`](https://github.com/ActivityWatch/aw-webui/commit/64bc94d)) - fix: added pwa manifest generation in vite ([`f608a1e`](https://github.com/ActivityWatch/aw-webui/commit/f608a1e)) - fix: make files in ./static serve at root (harmonize webpack and vite) ([`b78ad4f`](https://github.com/ActivityWatch/aw-webui/commit/b78ad4f)) - fix: fix CSP for both vite and webpack ([`8b2d886`](https://github.com/ActivityWatch/aw-webui/commit/8b2d886)) - fix: fixed vite builds! ([`a5a6ea0`](https://github.com/ActivityWatch/aw-webui/commit/a5a6ea0)) - fix: more progress on vite builds ([`b9978e3`](https://github.com/ActivityWatch/aw-webui/commit/b9978e3)) - fix: rename jest.config.js -> jest.config.cjs ([`b62b4c3`](https://github.com/ActivityWatch/aw-webui/commit/b62b4c3)) - fix: fixed broken icons ([`0b032ec`](https://github.com/ActivityWatch/aw-webui/commit/0b032ec)) - fix: changed `require` to `import` ([`c7cdade`](https://github.com/ActivityWatch/aw-webui/commit/c7cdade)) - fix: Handle date clearing in Activity view ([#554](https://github.com/ActivityWatch/aw-webui/issues/554)) ([`97a1089`](https://github.com/ActivityWatch/aw-webui/commit/97a1089)) - fix: converted components to typescript ([#556](https://github.com/ActivityWatch/aw-webui/issues/556)) ([`400ba07`](https://github.com/ActivityWatch/aw-webui/commit/400ba07)) - fix: fixed Search view returning all events unfiltered, and converted component to typescript ([#555](https://github.com/ActivityWatch/aw-webui/issues/555)) ([`3a6a218`](https://github.com/ActivityWatch/aw-webui/commit/3a6a218)) - fix: use settings store to retrieve useColorFallback setting ([#533](https://github.com/ActivityWatch/aw-webui/issues/533)) ([`23df3fb`](https://github.com/ActivityWatch/aw-webui/commit/23df3fb)) - fix: add app name for Vivaldi on macOS ([#520](https://github.com/ActivityWatch/aw-webui/issues/520)) ([`845b12f`](https://github.com/ActivityWatch/aw-webui/commit/845b12f)) - fix: made navbar menu toggler visible in dark mode ([`7de395b`](https://github.com/ActivityWatch/aw-webui/commit/7de395b)) - fix: open edit modal when 'Add Category' clicked (add top-level category) ([`5540cb8`](https://github.com/ActivityWatch/aw-webui/commit/5540cb8)) - fix: fixed Score visualization on Android ([`d0d3682`](https://github.com/ActivityWatch/aw-webui/commit/d0d3682)) - fix: reload buckets when opening Buckets view ([`51330e4`](https://github.com/ActivityWatch/aw-webui/commit/51330e4)) - fix: fixed IBucket.first_seen for aw-server-python ([`8babe10`](https://github.com/ActivityWatch/aw-webui/commit/8babe10)) - fix: never choose 'unknown' host as default for category builder ([`819c4e3`](https://github.com/ActivityWatch/aw-webui/commit/819c4e3)) - fix: sort hosts by last_updated in buckets store, so that the first host is probably the primary one ([`fcbd586`](https://github.com/ActivityWatch/aw-webui/commit/fcbd586)) - fix: made CSP stricter in prod ([#503](https://github.com/ActivityWatch/aw-webui/issues/503)) ([`35ad0ae`](https://github.com/ActivityWatch/aw-webui/commit/35ad0ae)) - fix: respect request timeout setting (https://github.com/ActivityWatch/activitywatch/issues/979) ([`e05e805`](https://github.com/ActivityWatch/aw-webui/commit/e05e805)) - fix: better edge browser support ([`9600814`](https://github.com/ActivityWatch/aw-webui/commit/9600814)) - fix: better librewolf browser support ([#499](https://github.com/ActivityWatch/aw-webui/issues/499)) ([`d1fb86b`](https://github.com/ActivityWatch/aw-webui/commit/d1fb86b)) - fix: correct the regex for GIMP in default category rules ([#483](https://github.com/ActivityWatch/aw-webui/issues/483)) ([`608296f`](https://github.com/ActivityWatch/aw-webui/commit/608296f)) - fix: support Yandex browser on macOS ([#490](https://github.com/ActivityWatch/aw-webui/issues/490)) ([`62043c7`](https://github.com/ActivityWatch/aw-webui/commit/62043c7))
π¨ Misc (16)
Click to expand
- docs(ai-summary): link the published agents-and-ai guide ([#958](https://github.com/ActivityWatch/aw-webui/issues/958)) ([`3ba41f4`](https://github.com/ActivityWatch/aw-webui/commit/3ba41f4)) - docs: add subscribe CTA to the Home Support section ([#914](https://github.com/ActivityWatch/aw-webui/issues/914)) ([`edb7d71`](https://github.com/ActivityWatch/aw-webui/commit/edb7d71)) - chore: bump media submodule ([`0a43547`](https://github.com/ActivityWatch/aw-webui/commit/0a43547)) - test(timeline): add regression tests for cursor-anchored zoom ([#847](https://github.com/ActivityWatch/aw-webui/issues/847)) ([#866](https://github.com/ActivityWatch/aw-webui/issues/866)) ([`9cdc708`](https://github.com/ActivityWatch/aw-webui/commit/9cdc708)) - docs: add --webpath instructions for aw-server-rust ([#764](https://github.com/ActivityWatch/aw-webui/issues/764)) ([`934daca`](https://github.com/ActivityWatch/aw-webui/commit/934daca)) - refactor(queries): simplify browser detection using case-insensitive regex, support Firefox ESR ([#752](https://github.com/ActivityWatch/aw-webui/issues/752)) ([`f3d95d4`](https://github.com/ActivityWatch/aw-webui/commit/f3d95d4)) - chore: add .pre-commit-config.yaml and fix formatting ([`b16d3bb`](https://github.com/ActivityWatch/aw-webui/commit/b16d3bb)) - chore: fix formatting ([`60706f1`](https://github.com/ActivityWatch/aw-webui/commit/60706f1)) - chore: hide API Browser link while running rust servers ([#614](https://github.com/ActivityWatch/aw-webui/issues/614)) ([`a0e70bc`](https://github.com/ActivityWatch/aw-webui/commit/a0e70bc)) - chore: fix some typos in comments ([#720](https://github.com/ActivityWatch/aw-webui/issues/720)) ([`11785df`](https://github.com/ActivityWatch/aw-webui/commit/11785df)) - style: fix Raw JSON visibility in dark mode ([#736](https://github.com/ActivityWatch/aw-webui/issues/736)) ([`691c57b`](https://github.com/ActivityWatch/aw-webui/commit/691c57b)) - chore: add macos browser app name for Zen ([#675](https://github.com/ActivityWatch/aw-webui/issues/675)) ([`ca6fafd`](https://github.com/ActivityWatch/aw-webui/commit/ca6fafd)) - refactor: migrate timeline.js to typescript ([#680](https://github.com/ActivityWatch/aw-webui/issues/680)) ([`52b2360`](https://github.com/ActivityWatch/aw-webui/commit/52b2360)) - test: fixed import errors in tests ([`cc82b3d`](https://github.com/ActivityWatch/aw-webui/commit/cc82b3d)) - refactor: converted the remaining components to typescript ([#558](https://github.com/ActivityWatch/aw-webui/issues/558)) ([`3ae4060`](https://github.com/ActivityWatch/aw-webui/commit/3ae4060)) - Revert "fix: use settings store to retrieve useColorFallback setting ([#533](https://github.com/ActivityWatch/aw-webui/issues/533))" ([`6bffa65`](https://github.com/ActivityWatch/aw-webui/commit/6bffa65))
(excluded 102 less relevant commits)
π¦ media
π¨ Misc (2)
Full Changelog: https://github.com/ActivityWatch/aw-android/compare/v0.12.1...v0.14.0