Maintainers note: The tag for this release was accidentally removed, but has been restored. The release created date is therefore invalid, but the commit date is correct.
It's finally here! 🎉
The long-awaited v0.10 release comes with a lot of improvements which you can read about in the changelog below. There will also be more about it the upcoming development update on the forum, so keep an eye out on our Twitter and join our Discord server.
New to ActivityWatch? Check out the website and the README.
Installation
See the getting started guide in the documentation.
Downloads
Honorary mentions
- Johan Bjäreholt (@johan-bjareholt) for his tireless work on aw-server-rust.
- Kerkko Peltari (@xylix) for his amazing work on improving macOS support (among many other things).
- Bill Ang Li (@billangli) for his amazing work on adding an update check to the web UI, and a user engagement poll after a week of use.
- FUUG.fi (Finnish Unix Users Group) for contributing with a €3,000 grant earlier this year.
Changelog
The changelog is written on a per-submodule basis. Look under the Feature subheaders for the most user-affecting changes.
Summary
- ✨ New editable views
- ✨ Timeline (barchart) visualization
- ✨ Update checks
- 🍎 Better support for macOS
- 🪟 Support for Microsoft Edge
- 🐛 Many bug fixes
- 🕸️ The "sunburst clock" vis was removed (temporarily, see #508 (comment))
- And a lot more...
activitywatch (bundle repo)
✨ Features (1)
- feat: improved generation of changelog (
7e6acf2
)
🐛 Fixes (3)
🔨 Misc (12)
- docs: updated screenshot in README (
42bf20c
) - docs: updated FUNDING.yml (
c779d75
) - Use git describe --tags --abbrev=0 to retrieve current activitywatch version in aw.spec (
47cd07e
) - docs: fixed stray end tag in README (
b1a89d7
) - README: Removed outdated statement that import is not supported (
370b073
) - docs: fixed emoji in bug report issue template title (
89d8a4f
) - docs: updated issue templates (#429) (
5c139b9
) - docs: added commit message guidelines to CONTRIBUTING.md (#415) (
29ad429
) - Merge pull request #401 from gwynevans/docTweak (
b1e8934
) - Add explanation of AFK acronym to README (
5193cd1
) - docs: added new script to build changelog (#381) (
8ed9754
) - docs: added GitHub actions badge to README (
b33711a
)
aw-webui
✨ Features (22)
- feat: made timeline view full-width (
bba8b35
) - feat: added stop time to timeline tooltip (fixes[#200](ActivityWatch/aw-webui#200) (
f0e8b4c
) - feat: refactored ActivityEditor into ActivityView, added better info when missing data (
94f0959
) - feat: added new view modal (
a0ec9a5
) - feat: added delete view and restore views to default (
129fdd9
) - feat: implemented save/cancel when editing view (
ef52f1e
) - feat: added buttons to edit/save view, made ActivityView delegate to ActivityEditor if view_id is 'editor' (
1beade2
) - feat: added ability to add new views and visualizations (
6578e7f
) - feat: continued work on customizable views, fixing a few bugs (
783733b
) - feat: started working on customizable views (
382308f
) - feat: poll user satisfaction and calls to action (#229) (
f9e0bbf
) - feat: added options to WIP Calendar visualization (
4e7303a
) - feat: check for new releases (ActivityWatch/activitywatch#114) (
b9fe58b
) - feat: added proper timeline labeling for stopwatch events (
5e1afd8
) - feat: Add custom hovertext for editor summary and project (
437a882
) - feat: Better user experience when importing buckets (
d59cf32
) - feat: Add delete button to EventEditor modal (
a4cd0b0
) - feat: started working on calendar visualization (
2b6f6c3
) - feat: Add first/last event to Bucket view (
915a4cf
) - feat: ported new Activity view to Android (
13777cb
) - feat: added support for Edge browser (
d495f7f
) - feat: added active history data to demomode, removed excessive logging (
107ae4d
)
🐛 Fixes (35)
- fix: added chromium.exe to browser appnames (fixes[#503](#503)) (
541e99c
) - fix: improved border-color of events in timeline visualization (
935354a
) - fix: added (commented out) sunburst_clock to SelectableVisualization.vue (
d4f2b3c
) - fix: fixed missing href, added Discord to links in Home.vue (
6b5a67b
) - fix: minor satisfaction poll fixes (
392cf8c
) - fix: fixed invalid type (
105afdc
) - fix: added linting for tests and fixed lint issues (
fc5cbe9
) - fix: changed sometimes missing unicode character to icon in CategoryTree (
50b3258
) - fix: change button to only show for range (#449 from activitywatch) (
0c36bbe
) - fix: fix timeline updating before new range is selected (#449 from activitywatch) (
444980a
) - fix: fix timeline updating before new range is selected (#449 from activitywatch) (
d2ebb9c
) - fix: Update aw-client-js (
1448792
) - fix: cleaned up queries, unifying more into canonicalQuery (
03a1242
) - fix: Fix incompatibility with aw-server-python (
1d3bfd1
) - fix: Fix VisTimeline errors (
61d2461
) - fix: Fix previously broken ts types (
2902651
) - fix: Fix previously broken ts types (
e356b24
) - fix: Fix linting issues (
ccddac7
) - fix: Fix broken getBucketWithEvents (
554f3f7
) - fix: Set headers on tables where they belong (
f08a43b
) - fix: Fix 'Updated' field in buckets view for aw-server-rust (
490901d
) - fix: reintroduced active events for barchart visualization (
2acb3cb
) - fix: fixed #206, incorrectly escaping backslashes in regex (
554d05a
) - fix: fixed bug where opening Activity view didn't correctly use today as default date (
903ad77
) - fix: added 'Firefox-esr' to browser appnames, fixes #204 (
b6f91e3
) - fix: Merge window and browser queries (
f9bcaed
) - fix: Subview is now kept when changing date in Activity view (
f31c75c
) - fix: fixed filter by category on Android (
80479d2
) - fix: fixed incorrect references to state (
0ded48d
) - fix: Fixed very minor misplacement of button (
a65623f
) - fix: fixed use of wrong bucket (
83d14ca
) - fix: readded active history caching (
035d4cc
) - fix: Add notice to download browser watcher if no buckets exist (
f167565
) - fix: See host if only editor buckets exist (
59197ce
) - fix: Make week start on Monday instead of Sunday (
dd6abc4
)
🔨 Misc (76)
- Merge pull request #233 from ActivityWatch/dev/customizable-views (
8e886b4
) - refactor: split 'settings' Vuex store into 'categories' and 'views' (
2788c14
) - test: fixed e2e screenshot test (
50e2c0d
) - Merge pull request #167 from Mte90/patch-1 (
2c5a934
) - fix linting (
526cfdc
) - remove trailing whitespaces (
49f3e2e
) - fix linting (
894bf64
) - Merge branch 'master' into patch-1 (
2e52832
) - docs: fixed comment in PeriodUsage.vue (#230) (
7912a32
) - Merge pull request #211 from ActivityWatch/dev/calendar (
bfc24c9
) - Merge branch 'master' into dev/calendar (
376e44f
) - Merge pull request #225 from billangli/dev/check-for-new-releases (
707c45a
) - clean up code (
f8b876b
) - add aliasing to jest config (
a8b35d9
) - ignore screenshot.test.js from npm test script (
81a6985
) - Merge pull request #219 from billangli/dev/timeline-input-button (
02a37cc
) - move initial request to be called from InputTimeInterval (
050f700
) - Change select from v-bind to v-model (
435896a
) - lint-fix (
7a39a23
) - Merge branch 'dev/timeline-input-button' of https://github.com/billangli/aw-webui into dev/timeline-input-button (
6e1eedb
) - style: fixed lints, applied prettier v2 style, removed old Log view (
91878ee
) - Merge pull request #218 from ActivityWatch/dev/settings-split (
11245d7
) - Merge pull request #217 from ActivityWatch/dev/summary-custom-hovertext (
e0d26ec
) - refactor: Split Settings into multiple views (
ed37580
) - Merge pull request #210 from ActivityWatch/dev/import-ux-enhancement (
0038e50
) - Merge pull request #214 from ActivityWatch/dev/move-delete-button (
443528f
) - refactor: Move modal into EventEditor (
9319fca
) - Merge pull request #209 from ActivityWatch/dev/lint-fix (
63d23f9
) - Merge pull request #208 from ActivityWatch/dev/vuex-fix (
16e37ae
) - Merge pull request #202 from ActivityWatch/dev/last_updated_buckets_fix (
4b08fbd
) - Merge pull request #203 from ActivityWatch/dev/merge-window-and-browser-queries (
09df952
) - Merge pull request #207 from ActivityWatch/dev/today-bug (
7821419
) - Merge pull request #2 from skuzzymiglet/patch-1 (
4d81a09
) - Merge pull request #201 from ActivityWatch/dev/period-link-subview-fix (
df5a625
) - Fix bug with browser activity not showing "Loading..." when loading (
9247aed
) - Merge pull request #197 from ActivityWatch/dev/small-tweaks (
1a969b3
) - improvement(design): more small design improvements (
7a2693d
) - improvement(design): further fixes to design on small screens, added links to watchers page in the docs whenmissing browser or editor buckets (
3dc3615
) - improvement(design): made improvements to the design of the Activity view, including smaller tabs and placing the periodLength select in between the 'previous' and 'next' buttons (
06ccbbe
) - Merge pull request #196 from ActivityWatch/dependabot/npm_and_yarn/jquery-3.5.0 (
7c9a7d5
) - Merge pull request #194 from ActivityWatch/dev/eslint-fix (
4973c62
) - Merge pull request #195 from ActivityWatch/dev/cleanups (
7242bed
) - refactor: Removed unnecessary prints (
9c616e2
) - style: fixed eslint warnings (
187c7e5
) - Merge pull request #183 from ActivityWatch/dev/android-update (
c535835
) - refactor: cleanup and minor restyling of SelectableVisualization (
b215d50
) - Merge pull request #193 from ActivityWatch/dev/period-length-fix (
51bab94
) - refactor: removed old Android activity view (
afdf0fc
) - refactor: changed buckets.(type)_buckets to simply buckets.(type), added androidBucketsByHost (
f90c0af
) - Merge pull request #192 from NicoWeio/better-errors (
0f9eb0c
) - remove dedupe "feature"; rewrite code for display message (
3b1a22f
) - bugfix: Inconsistency when changing period length (
1704d71
) - display error message from API requests if available (
452ac82
) - Merge pull request #190 from ActivityWatch/dev/selectable-activity-views (
353634b
) - refactor: Rename ActivityDaily to just Activity (
bc4e950
) - feature: Make views in summary selectable (
c366500
) - Merge pull request #189 from ActivityWatch/dev/daily-activity-vuex-refactor2 (
a5a9e70
) - refactor: Made activity_daily vuex more structured and easier to read (
e30bad4
) - Merge pull request #186 from ActivityWatch/dev/make-queries-less-dependent (
6379134
) - Merge pull request #185 from ActivityWatch/dev/monday-start-of-week (
3451196
) - Merge pull request #182 from ActivityWatch/dev/demomode-active-history (
fbcb5ab
) - Merge pull request #181 from ActivityWatch/dev/edge-browser (
91bdb2c
) - Merge pull request #179 from ActivityWatch/github-actions (
ed6bed6
) - Merge pull request #178 from ActivityWatch/dev/better-demomode (
f3fcb20
) - Merge branch 'dev/better-demomode' of github.com:ActivityWatch/aw-webui into dev/better-demomode (
fdd8052
) - docs: added more activities to demomode (
cc5b437
) - added computation of demo data from single list of events (
f0a06dd
) - added computation of demo data from single list of events (
1362f2d
) - Merge pull request #177 from ActivityWatch/dev/prettier (
f9c0b40
) - ran
make lint-fix
(a1428a4
) - Merge pull request #176 from ActivityWatch/dev/demomode (
553cceb
) - added fully covered examples of data for demomode (
5a47ebe
) - added lint-fix to Makefile (eslint --fix), now also lints typescript files (
3ea66bb
) - started working on demo mode (
8f9af1c
) - Combine aw-webui PR #173 (
0b9da98
) - More software to categorize (
755c6f0
)
aw-qt
✨ Features (1)
- feat: switched to using click for the CLI, fixed bugs (
682a73f
)
🐛 Fixes (8)
- fix: fixed assumption about pathsep (
b7da7c3
) - fix: improved module detection, added comments (
1924e3b
) - fix: fixed module detection and naming (
063a00c
) - fix: fixed bugs in bundled/system modules (
83cc4db
) - fix: fixed typing checks (
01378f1
) - fix: minor cleanup (
f6d26c7
) - fix: made sip an explicit dependency (see[#433](#433)) (
56cc28c
) - fix: replace webbrowser.open with xdg-open with original LD_LIBRARY_PATH (
bcd27a0
)
🔨 Misc (32)
- manager: Fix issue with bundled modules not being detected (
d887ca5
) - manager: Make matching of executables more accurate (
1d421ba
) - Merge pull request #64 from ActivityWatch/dev/fix-module-name-and-filtering (
9a569fa
) - docs: updated README with badges and minimal build instructions (
3db74cd
) - Merge pull request #56 from xylix/dev/improved-module-detection (
839c9fd
) - style: removed unused imports (
157a546
) - Merge branch 'master' into dev/improved-module-detection (
0a359bd
) - Merge pull request #59 from ActivityWatch/dev/fix-buggy-webbrowser-open (
707b75b
) - Get PATH using python's os module instead of getting environment variable and manually splitting (
68314f0
) - Merge pull request #57 from xylix/dev/trayicon-color-fix (
eadf39d
) - Let trayicon owning program handle coloring it with filters (
5385d8b
) - Add some informative pydoc comments (
2a6a8da
) - Recursively find submodules in subdirectories (
9a849ca
) - Remove unnecessary possible_modules config option (
9e4b15e
) - Add pip cache for macOS, should make pyobjc etc. installation significantly faster (
b14b1be
) - Improve autostart() input typing (
8808f7c
) - Add pyqt type stubs to dev dependencies, nicer mypy output by default (
a7c098c
) - Fix lambda parameter amount to allow termination on sigint / sigkill (
ea9d196
) - Improve type safety and add some info logs / comments (
d4e33cf
) - Improve mypy typing (
4403d19
) - Merge remote-tracking branch 'xylix/dev/autodetect-modules' into dev/improved-module-detection (
2a05ba1
) - remove 1 unused import, don't treat aw-server as a special case in creating module menu (
7a67423
) - Add type hints to new code (
94dc1df
) - rename QTSettings to AwQtSettings and add aw-server-rust (
9dfea4b
) - Store available and autostart modules lists as configuration. See #47 (
a974e2c
) - actually check for module existence in manager (
b7ed55a
) - fixed typechecking and enabled on Travis (
6db5435
) - categorized module menu by location of module (
70cca98
) - fixed issue when location in PATH does not exist (
4078647
) - fixed crash when module couldn't be started (
ba88995
) - fixed bundled modules (
fbe3519
) - added basic module autodetection (
53f7dd0
)
aw-server
aw-server-rust
🐛 Fixes (13)
- fix: corrected non-standard log dir on macOS (fixes #187) (
623dfb4
) - fix: correct lookup of asset_path for .app bundles on macOS (
9be9962
) - fix: Drop single events if corrupted instead of failing whole import (
96cbc9d
) - fix: Replace serde_derive with serdes derive feature for all crates (
5c68853
) - fix: Set allocator to jemalloc (
eabf9a1
) - fix: Allow floods to merge same event multiple times (
f5bf3cc
) - fix: Remove unnecessary clones (
db720bf
) - fix: Fix clippy issues in aw-transform (
158cf60
) - fix: dependency update needed for new Rust nightly (see ActivityWatch/aw-android#40 (comment)) (
ca905a8
) - fix: added limit parameter to the JNI wrapper for get_events (
147a2d0
) - fix: fixed issue in compile-android.sh script (
c101a87
) - fix: removed stale .cargo/config and added to .gitignore (
d7bfc23
) - fix: changed cfg(debug_assertions) to is_testing for runtime checks (
96bbb0e
)
🔨 Misc (60)
- chore: bumped version number to v0.10.0 (
f1f5095
) - aw-transform: Optimize filter_period_intersect by pre-calculating endtimes (
ebb1fdd
) - aw-transform: Add benchmark for filter_period_intersect (
4f00b19
) - aw-query: Refactor benchmark code (
eabcf74
) - Cargo.lock: Update dependencies (
2fc85f3
) - aw-server: Test key_value of different types (
70968e4
) - Make settings value possibly any json type (
6ecb206
) - aw-models: Add custom schema for tryparse (
03fd9cd
) - Cargo.lock: Update dependencies (
7f2bf15
) - aw-models: Add schemars support (
e1131d6
) - aw-datastore: Add bucket_id to errors (
5bdd6f3
) - aw-server: Add Into trait for DatastoreError to HttpErrorJson (
7a19f34
) - aw-server: Fix compilation on android (
d985c51
) - aw-server: Replace all errors with HttpErrorJson (
b14a173
) - aw-server: Improve HTTP error handling (
3b126cc
) - tests: Add more asserts of HTTP body (
a5cbb0d
) - aw-server: Make UUID part of ServerState (
7f6f63d
) - aw-transform: Add documentation to transforms (
b04d38b
) - Update aw-webui (
cc437ea
) - Update Cargo.lock (
f3c2ede
) - aw-transform: fix: If events merge during flood, choose the longest endtime (
091362f
) - tests: Added another heartbeat test (
2102597
) - query: Add VarEnv type alias (
420d691
) - Merge pull request #137 from ActivityWatch/dev/get_events-limit-jni (
4c6dd98
) - Merge pull request #135 from ActivityWatch/dev/android-vendored-openssl (
9e796b4
) - aw-webui: Update submodule (
b3aa756
) - aw-query: Add function filter_keyvals_regex (
132370b
) - aw-transform: Avoid cloning in filter_keyvals (
5185b5d
) - aw-transform: Add filter_keyvals_regex (
fa842f6
) - README: Fix broken build status badge (
0dbd57f
) - aw-server: Refactor dirs, add tests do dirs and logging (
9b406fc
) - aw-query: Fix unnecessary lifetime parameter and references (
826b78a
) - aw-query: Add simple benchmarks (
edc9b3f
) - aw-query: Removed cloning from assigns (
39cccb3
) - Cargo.lock: Update dependencies (
9184a35
) - aw-query: fix clippy error (
882385f
) - chore: updated aw-webui (
7ede519
) - aw-server: rustfmt fix (
c6cd1d5
) - aw-server: Remove unused catchers (
0b75663
) - aw-server: Set content type for more endpoints (
00c001b
) - codecov.yml: Set diff target to a low value (
e15fe1c
) - codecov.yml: Disable coverage requirement (
7f98e25
) - Fix database location when running with --testing (
642a531
) - cargo: Update dependencies (
335417e
) - cargo: Remove some features from multipart to get fewer dependencies (
ccff0e4
) - aw-server: Clippy fixes (
4ceb9c2
) - aw-client-rust: Clippy fixes (
718ebfd
) - aw-datastore: Clippy fix and refactoring of worker (
6f5200d
) - aw-datastore: Make reload test force commit (
34d2dec
) - aw-datastore: Guarantee DB commit every 15 seconds (
17dff67
) - aw-server: Increase default log levels further (
afbb70c
) - aw-server: Added option parsing and --testing option (
c34b7f6
) - aw-server: Pass AWConfig as a Rocket state (
cd00f31
) - aw-query: Fix clippy issues (
6f69b8b
) - cleaned up testing/production detection (
5b52961
) - moved log directory to make it aw-qt compatible (
6024d7d
) - reduced logging and simplified logging pipeline (
d456981
) - Merge pull request #105 from ActivityWatch/dev/github-actions (
f2afa99
) - docs: updated README (
62be9f4
) - Create rust.yml (
d7e75dd
)
aw-watcher-afk
🔨 Misc (2)
aw-watcher-window
🔨 Misc (14)
- Merge pull request #41 from xylix/dev/macos-ask-for-permission (
48491bc
) - Merge branch 'master' into dev/macos-ask-for-permission (
724a3e2
) - Merge pull request #44 from ActivityWatch/doc/readme-update (
fbec7ed
) - doc: Add install instructions to README.md (
bc33438
) - remove execution blocking from macos.py, move macos permission check in main.py after logging has bene initialized (
b829e04
) - Fix types in Process args, remove hardcoded development False (
3ad2af6
) - Update lockfile post merge (
04d8269
) - Merge branch 'master' into dev/macos-ask-for-permission (
aa841c2
) - Use multiprocessing for background perm check execution. (
0943007
) - Merge pull request #42 from ActivityWatch/dev/github-actions (
620b52c
) - Start running perm dialog in a background thread (
f032ed1
) - Add accessibility settings link button (
890b6d6
) - Platform restrict pyobjc deps (
6c2c1e5
) - Use AppKit to figure if we have accessbility perms and pyobjc to ask for them (
82e90b2
)
aw-client
✨ Features (2)
- feat: added better output when overlapping events found (
52937c4
) - feat: added merge_buckets.py example (
5b9977f
)
🐛 Fixes (1)
- fix: fixed minor things (docs, wrongly commented out code) in examples/merge_buckets.py (
839e1ba
)
🔨 Misc (2)
aw-core
✨ Features (1)
- feat: log unhandled exceptions (
6ba8f97
)
🐛 Fixes (2)
🔨 Misc (10)
- style: fixed code formatting (
8775e04
) - refactor: extracted TimePeriod class to timeslot repo (
e4a2b53
) - test: added test for intersecting eventpairs (
5f75f65
) - test: changed categorization test to include backslash-metacharacter (\w) (
e83f3f8
) - docs: fixed CI badge, added better summary of contained modules (
c38b814
) - style: formatted everything with Black (
eda4ff6
) - tests: Add test for heartbeats with same timestamp (
296647e
) - Merge pull request #90 from ActivityWatch/doc/readme-update (
a6a9a9e
) - doc: Add install instructions to README.md (
e7e1b5b
) - Merge pull request #89 from ActivityWatch/dev/github-actions (
b2d9179
)