ActivityWatch / ActivityWatch/aw-android

aw-notify: achievements / streaks / trophies (split from #200)

Đang mở
#205 13 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Kotlin
Star
265
Fork
57
Merge trung bình
2 ngày 21 giờ
Pull request đã merge (30 ngày)
19

Mô tả

Splitting this out from ActivityWatch/aw-android#200, per @ErikBjare's suggestion — the achievements/streaks/trophies direction is a distinct enough feature to track on its own rather than living inside the broader "smarter-than-thresholds" notifications thread.

## Background

In #200 we compared anomaly-detection notifications (percentile/sigma above baseline) against a "coaching"/reward angle, and landed on achievements as a promising first step:

- Works with minimal history (a first occurrence is still a valid achievement) — unlike anomaly detection, which needs ~30 days of baseline before it's useful.
- Framing is additive/positive rather than corrective.
- "Trophy for best focus day this month" is more shareable/engaging than "you're 2σ above baseline."
- Fits the existing notification infrastructure (per-category historical time from aw-server) either way.

References:
- https://dl.acm.org/doi/10.1145/2858036.2858428 (ACM CHI — self-quantification + gamification, solid UX evidence)
- https://forum.activitywatch.net/t/achievements-progress-bars-streaks-and/1630 (existing community appetite)
- https://activitywatch.net/blog/future-of-time-tracking/ ("meaningful milestones" framing)

## Open design questions (from @ErikBjare, carried over from #200)

- **Storage**: how do achievements get stored once conditions are met? Need references to which data sources were used, the time-range covered, and the source devices/buckets involved — not just a flat "achievement unlocked" flag.
- **Multi-device**: should each device have its own achievement store that overlays locally, or should achievements sync across devices?
- Sync as part of "settings"? Is settings-sync even supported yet?
- Or should achievements live in their own dedicated bucket (e.g. an `achievements` bucket)? Is that a good fit for the existing bucket/event model, or a bad one?
- Trophies should be collectable multiple times (e.g. per time-period — "best focus day this month" can recur), not one-shot unlocks.

## Scope (not yet decided)

This issue is for continuing the design discussion — no implementation approach is locked in yet. Candidate shape: define achievement conditions declaratively, evaluate them against aw-server query results, surface via aw-notify, with the storage/sync model above still open.

cc @ErikBjare

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.