Skip to content

Commit bfa6397

Browse files
authored
Health notification feature (#60)
* feat: implement health notification system with customizable intervals and pause functionality * Add comprehensive test scenarios for time tracking, health notifications, git branch tracking, status bar integration, and database functionality - Created detailed test cases for core time tracking features including start/stop, activity detection, and session management. - Developed test scenarios for health notifications focusing on eye rest, stretch reminders, and break notifications. - Implemented test cases for git branch tracking, covering branch detection, session management, and handling of edge cases. - Added test scenarios for status bar integration, ensuring accurate display of tracking information and user interactions. - Established test cases for database functionality, including data persistence, retrieval accuracy, and error handling. * Remove outdated test scenario documents for Git Branch Tracking, Health Notifications, Status Bar Integration, Time Tracking Core, and consolidate test cases into a single summary table. * feat: enhance health notification system with customizable intervals and improved visibility * feat: update health notification system to version 0.5.0 with enhanced visibility and customizable intervals
1 parent e00b94c commit bfa6397

11 files changed

Lines changed: 776 additions & 282 deletions

.vscode/settings.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"simpleCodingTimeTracker.health.eyeRestInterval": 20,
3+
"simpleCodingTimeTracker.health.stretchInterval": 100,
4+
"simpleCodingTimeTracker.inactivityTimeout": 15000,
5+
"simpleCodingTimeTracker.focusTimeout": 18000
6+
}

README.md

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
**📖 For detailed configuration, advanced features, and complete documentation, see the [Health Notifications Guide](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/Health-Notifications) in our wiki.**
2+
3+
# Simple Coding Time Tracker: A Visual Studio Code Extension
14
<div style="display: flex; align-items: center;">
2-
<img src="icon-sctt.png" alt="Simple Coding Time Tracker Icon" width="100" style="margin-right: 20px;">
3-
<h1>Simple Coding Time Tracker: A Visual Studio Code Extension</h1>
5+
<img src="icon-sctt.png" alt="Simple Coding Time Tracker Icon" width="100" style="margin-right: 20px;">
46
</div>
57

68
Simple Coding Time Tracker is a powerful extension for Visual Studio Code that helps you monitor and analyze your coding time. If you are curious about your coding habits, this extension covers you.
@@ -11,6 +13,7 @@ Simple Coding Time Tracker is a powerful extension for Visual Studio Code that h
1113
- **Project and Branch Tracking**: Organizes time data by project and Git branches for comprehensive analysis.
1214
- **Smart Activity Detection**: Automatically pauses tracking during periods of inactivity.
1315
- **Focused Work Detection**: Intelligently tracks time even when VS Code isn't focused.
16+
- **Health Notification System**: Proactive reminders to promote healthy coding habits with scientifically backed intervals.
1417
- **Interactive Data Visualization**:
1518
- Project Summary Chart: Visual breakdown of time spent on each project
1619
- Daily Activity Timeline: Interactive line chart showing your coding patterns
@@ -22,6 +25,18 @@ Simple Coding Time Tracker is a powerful extension for Visual Studio Code that h
2225
- Quick Reset: One-click reset for search filters
2326
- **Data Persistence**: Safely stores your time data for long-term analysis.
2427

28+
## Health Notification System
29+
30+
The extension includes a comprehensive health notification system to promote healthy coding habits and prevent strain-related issues.
31+
32+
### 🔔 Smart Health Notifications
33+
- **Eye Rest Reminders**: Every 20 minutes, get reminded to follow the 20-20-20 rule (look at something 20 feet away for 20 seconds)
34+
- **Stretch Reminders**: Every 30 minutes, get reminded to stand up and stretch your back and neck - Recommended for posture health
35+
- **Break Suggestions**: Every 90 minutes, get prompted to take a proper break with multiple options - Based on ultradian rhythms
36+
These are default values and designed to help you maintain focus and prevent fatigue during long coding sessions. You can always customize these intervals in the settings.
37+
38+
**📖 For detailed configuration, advanced features, and complete documentation, see the [Health Notifications Guide](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/Health-Notifications) in our wiki.**
39+
2540
## Installation
2641

2742
1. Open Visual Studio Code
@@ -52,11 +67,7 @@ You can customize the extension's behavior through VS Code settings:
5267

5368
1. Open VS Code Settings (Ctrl+, or Cmd+, on macOS)
5469
2. Search for "Simple Coding Time Tracker"
55-
3. Available settings:
56-
- **Save Interval**: How often to save your coding time data (in seconds)
57-
- Default: 5 seconds
58-
- Lower values provide more frequent updates but may impact performance
59-
- Higher values are more efficient but update less frequently
70+
3. Available settings:
6071
- **Inactivity Timeout**: How long to wait before stopping the timer when no activity is detected but you are focused on VS Code (in seconds)
6172
- Default: 150 seconds (2.5 minutes)
6273
- Lower values will stop tracking sooner when you're not actively coding
@@ -65,6 +76,12 @@ You can customize the extension's behavior through VS Code settings:
6576
- Default: 180 seconds (3 minutes)
6677
- Determines how long to keep tracking when you switch to other applications
6778
- Useful for when you're referencing documentation or testing your application
79+
- **Health Notifications**: Configure health reminder settings
80+
- **Modal Notifications**: Enable/disable modal behavior for health notifications (default: true)
81+
- **Enable Notifications**: Enable/disable all health notifications (default: true)
82+
- **Eye Rest Interval**: Frequency of eye rest reminders in minutes (default: 20) - Based on 20-20-20 rule
83+
- **Stretch Interval**: Frequency of stretch reminders in minutes (default: 30) - Recommended for posture health
84+
- **Break Threshold**: Coding duration before suggesting a break in minutes (default: 90) - Based on ultradian rhythms
6885

6986

7087
## Screenshots
@@ -91,20 +108,38 @@ Status bar resets to zero at midnight each day and hence shows the coding time f
91108
Tooltip shows the total coding time weekly, monthly and all time basis.
92109
![Tooltip](https://raw.githubusercontent.com/twentyTwo/static-file-hosting/main/vsc-ext-coding-time-tracker-files/tooltip.png)
93110

94-
#### Automatic Pause/Resume
95-
When the user is inactive for a period of time, the timer automatically pauses and resumes when the user starts typing again coding again.
96-
![Pause/Resume icon](https://raw.githubusercontent.com/twentyTwo/static-file-hosting/main/vsc-ext-coding-time-tracker-files/paused_time.png)
97111

98112
#### Settings
99113
![Settings](https://raw.githubusercontent.com/twentyTwo/static-file-hosting/main/vsc-ext-coding-time-tracker-files/settings.png)
100114

101115

116+
## 📚 Documentation
117+
118+
For comprehensive documentation, guides, and testing information, visit our **[Documentation Wiki](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki)**:
119+
120+
- **[Health Notifications Guide](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/Health-Notifications)** - Complete health notification configuration and features
121+
- **[Time Tracking Guide](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/Time-Tracking)** - How time tracking works internally
122+
- **[Test Scenarios](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/Test-Scenarios)** - Comprehensive testing documentation
123+
- **[Development Roadmap](https://github.com/twentyTwo/vsc-ext-coding-time-tracker/wiki/TODO)** - Current tasks and future plans
124+
102125
## Technical Documentation
103126

104127
For technical details about development, release process, and internal architecture, please see [TECHNICAL.md](TECHNICAL.md).
105128

106129
## Changelog
107130

131+
132+
### [0.5.0] - 2025-08-02
133+
- Added comprehensive health notification system with customizable intervals
134+
- Implemented **prominent, persistent notifications** that don't auto-dismiss:
135+
- Eye rest reminders (20-20-20 rule) every 20 minutes
136+
- Stretch reminders every 30 minutes (Recommended for posture health)
137+
- Break suggestions every 90 minutes using (ultradian rhythms)
138+
139+
- Implemented toggle command for quick enable/disable of health notifications
140+
- Health notifications automatically start/stop with time tracking
141+
- All health notification intervals are fully configurable through VS Code settings
142+
108143
### [0.4.1] - 2025-07-26
109144
- Fixed issue with excessive git processes being spawned
110145
- Optimized git branch monitoring to reduce CPU load

TIME_TRACKING.md

Lines changed: 0 additions & 229 deletions
This file was deleted.

TODO.md

Lines changed: 0 additions & 36 deletions
This file was deleted.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)