exe-watcher 0.2.69 → 0.2.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -31,7 +31,7 @@ npm install -g exe-watcher
31
31
  exe-watcher report
32
32
  ```
33
33
 
34
- Version 0.2.69 explains that first-time history setup can take 10 minutes or more for large AI histories, with saved progress and recovery details. Large Claude history scans resume within the existing resource limits. Recorded API-equivalent costs and saved totals are preserved through refresh failures, restarts and day changes. AI time and the floating quota display are included. Terminal installs require Node 22.13 or newer; the Mac app includes its own compatible runtime. Download the matching app from [Releases](https://github.com/AskExe/exe-watcher/releases/latest) or [odd.community/watcher](https://odd.community/watcher). To run the current CLI from source:
34
+ Version 0.2.70 adds local active AI app tracking and broader, clearly labeled historical personal-time estimates. It also explains that first-time history setup can take 10 minutes or more for large AI histories, with saved progress and recovery details. Large Claude history scans resume within the existing resource limits. Recorded API-equivalent costs and saved totals are preserved through refresh failures, restarts and day changes. AI time and the floating quota display are included. Terminal installs require Node 22.13 or newer; the Mac app includes its own compatible runtime. Download the matching app from [Releases](https://github.com/AskExe/exe-watcher/releases/latest) or [odd.community/watcher](https://odd.community/watcher). To run the current CLI from source:
35
35
 
36
36
  ```bash
37
37
  git clone https://github.com/AskExe/exe-watcher.git
@@ -45,7 +45,7 @@ node dist/cli.js report
45
45
 
46
46
  ## Built for AI employee teams
47
47
 
48
- - **Floating display** — a compact on-screen quota display for Claude, Codex, Kimi, Cursor, GitHub Copilot and Gemini, with **You + AI ≈** (your estimated interaction time) and **AI Time** (work time added across all agents). Quota rings show **quota left**, default to **Weekly**, and have a **Weekly / 5h** toggle. Click either time button for its explanation. Time totals default to Today; switch to Week, Month or All Time. Enable it from the menu bar footer’s **Display settings → Floating quota display**. [Details](mac/README.md#floating-display).
48
+ - **Floating display** — a compact on-screen quota display for Claude, Codex, Kimi, Cursor, GitHub Copilot and Gemini, with **You + AI ≈** (historical sessions plus tracked app activity) and **AI Time** (work time added across all agents). Quota rings show **quota left**, default to **Weekly**, and have a **Weekly / 5h** toggle. Click either time button for its explanation. Time totals default to Today; switch to Week, Month or All Time. Enable it from the menu bar footer’s **Display settings → Floating quota display**. [Details](mac/README.md#floating-display).
49
49
  - **AI running time** — adds recorded work across agents, so parallel work is counted as agent-hours.
50
50
  - **Elapsed busy time** — merges overlapping runs to show how long at least one agent was working.
51
51
  - **Your time ≈** — estimates interaction from short reply-to-next-prompt gaps, with known subagents excluded. It is not an attention or productivity measurement.
@@ -123,7 +123,11 @@ The menu bar dashboard and full terminal report show three times beneath the spe
123
123
 
124
124
  - **AI running:** recorded run time added across agents. Two agents running for one hour add two hours. Duplicate run IDs copied into forks count once.
125
125
  - **Elapsed busy:** time when at least one agent was running. Those two parallel agents count as one elapsed hour.
126
- - **Your time ≈:** an interaction estimate from reply-to-next-prompt gaps of up to five minutes, merged across chats. Known subagents and longer idle gaps are excluded. This does not measure attention, typing or time reading while an agent runs; unidentified automation may be included.
126
+ - **Your time ≈:** historical conversation sessions plus foreground app activity tracked on this Mac. Historical sessions join nearby main-chat turn starts with a 15-minute gap; the displayed sensitivity range uses 10–30 minutes. It includes some AI waiting, excludes known subagents and long unattended gaps, and may include main-chat automation. Isolated turns get no invented padding. This is an estimate of engagement, not attention or typing. The older five-minute reply-gap estimate remains available in JSON as `userActiveMs` and in CLI details.
127
+
128
+ **Track active AI app time on this Mac** can be switched off in the AI time section. It counts foreground Codex, Hansel, Claude and ChatGPT app activity, with a two-minute idle cutoff. Cursor, supported editors and terminals count only alongside a recent matching AI turn; these ambiguous intervals are marked as contextual estimates. Browsers and unsupported apps remain unknown. No keyboard contents, window titles, screenshots, accessibility access or Terminal control are needed. App switching, sleep and console-session notifications drive tracking; a single 30-second idle check runs only while an eligible app is in front. Late checks never fill sleep or scheduler gaps. Daily totals are saved privately, at most every five minutes while continuously active and on app switch/exit; a crash can lose the unsaved tail. No usage scan or extra CLI process is triggered. A writer lock prevents two Watcher copies counting the same foreground activity.
129
+
130
+ The historical estimate stops when app tracking first begins, so it is never added over the same time as app activity. Period and provider views use the same boundaries. App tracking gaps while Watcher is closed or tracking is off stay unknown. Daily app totals have no project attribution; project-filtered CLI reports show historical sessions only. The stored tracking timezone is fixed to avoid overlapping days after travel. Custom partial-day CLI queries omit daily app totals they cannot precisely locate.
127
131
 
128
132
  Timing recovery starts July 1, 2025 and uses retained local evidence. **Partial history** stays visible; missing timing is **Unknown**, never zero. Recorded durations may include tool execution and waiting, rather than only time generating tokens. Open runs are not extended to the present.
129
133
 
@@ -399,6 +403,28 @@ For unfiltered All Time Claude totals, Watcher also reconciles `stats-cache.json
399
403
  | `XDG_CONFIG_HOME` | Base directory for Watcher configuration (default: `~/.config`) |
400
404
  | `EXE_WATCHER_CACHE_DIR` | Override cache directory (default: `~/.cache/exe-watcher`) |
401
405
 
406
+ ### Optional analytics and error reporting
407
+
408
+ Watcher uses our self-hosted PostHog and Sentry through `https://data.odd.community`.
409
+ Basic usage statistics default on after a first-run disclosure. Sanitized error
410
+ diagnostics are a separate, optional choice and default off. Existing opt-outs
411
+ are preserved. In the Mac app, find both controls under the Settings gear. In the CLI:
412
+
413
+ ```sh
414
+ exe-watcher telemetry --usage on --errors on
415
+ exe-watcher telemetry --usage off --errors off
416
+ ```
417
+
418
+ Usage counts participating installations, foreground feature use, active Mac menu
419
+ time, and fixed success/failure outcomes, with numeric app version and coarse
420
+ platform metadata. Recording time is N/A. Errors include only category, class and app version.
421
+ No prompts, usage logs, project names, paths, spend, raw error text, native crash
422
+ dumps, screenshots or replay are sent. Background CLI scans do not count as use.
423
+ `DO_NOT_TRACK=1` or `EXE_WATCHER_TELEMETRY=0` disables collection. Turning a control
424
+ off clears its unsent queue; received reports remain. Our collector receives your
425
+ connection IP but does not forward it to PostHog/Sentry. No project keys are needed.
426
+ See [privacy, retry behavior and operator setup](docs/analytics/README.md).
427
+
402
428
  ---
403
429
 
404
430
  ## Contributing
@@ -35,3 +35,10 @@ SOFTWARE.
35
35
  ```
36
36
 
37
37
  Runtime dependencies and other bundled assets retain their own licenses. This CodeBurn notice does not replace them. Check the applicable upstream notices before importing further code or assets; current CodeBurn includes components with additional third-party terms.
38
+
39
+ ## Odd Core Analytics
40
+
41
+ The CLI bundles the MIT-licensed `@odd-core/analytics/privacy` implementation.
42
+ The pinned source and artifact hashes are in `vendor/odd-core-analytics/PROVENANCE.json`;
43
+ its full license is included at `vendor/odd-core-analytics/LICENSE`. The native
44
+ Swift adapter follows the same restricted collection protocol.