ActivityWatch / ActivityWatch/activitywatch

Mac OS Menu Bar Button Crashes aw-qt

Ouverte
#1,324 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
type: bug
Langage dominant
Python
Étoiles
18.9k
Forks
1k
Merge moyen
1 j 4 h
PR mergées (30 j)
28

Description

* **OS name and version**: macOS 27.0 beta, build 26A5353q

* **ActivityWatch version**: v0.13.2

## Describe the bug

On macOS 27.0 beta, clicking the ActivityWatch menu bar icon crashes `aw-qt`.

When `aw-qt` crashes, `aw-watcher-afk` exits with:

```text
afkwatcher stopped because parent process died
```

After this, `aw-server` and `aw-watcher-window` continue running, and `aw-watcher-window` continues producing current window events. However, `aw-watcher-afk` no longer produces AFK events.

This leaves ActivityWatch with current `currentwindow` data but stale `afkstatus` data.

## To Reproduce

1. Launch `ActivityWatch.app`.

2. Confirm that `aw-qt`, `aw-server`, `aw-watcher-window`, and `aw-watcher-afk` are running.

3. Click the ActivityWatch menu bar icon.

4. The menu bar icon disappears.

5. `aw-qt` exits/crashes.

6. `aw-watcher-afk` exits with:

```text
afkwatcher stopped because parent process died
```

7. `aw-server` and `aw-watcher-window` remain running.

After reproduction, process state looked like this:

```text
/Applications/ActivityWatch.app/Contents/MacOS/aw-server
/Applications/ActivityWatch.app/Contents/MacOS/aw-watcher-window
/Applications/ActivityWatch.app/Contents/Frameworks/aw_watcher_window/aw-watcher-window-macos http://127.0.0.1:5600 aw-watcher-window_BergBook-Air.local BergBook-Air.local aw-watcher-window
```

No `aw-qt` and no `aw-watcher-afk` processes were running.

## Expected behavior

Clicking the ActivityWatch menu bar icon should open the ActivityWatch menu and should not crash `aw-qt`.

Also, if `aw-qt` exits or crashes, ActivityWatch should either keep the default watchers alive, restart them, or visibly report that they stopped. In particular, `aw-watcher-afk` should not silently stop producing `afkstatus` events.

## Logs and crash report

Relevant `aw-qt` log:

```text
2026-06-22 15:04:51 [INFO ]: Started aw-qt... (aw_qt.main:53)
2026-06-22 15:04:52 [INFO ]: Found 7 bundled modules (aw_qt.manager:85)
2026-06-22 15:04:52 [INFO ]: Found 0 system modules (aw_qt.manager:119)
2026-06-22 15:04:52 [INFO ]: Starting module aw-server (aw_qt.manager:148)
2026-06-22 15:04:52 [INFO ]: Starting module aw-watcher-afk (aw_qt.manager:148)
2026-06-22 15:04:52 [INFO ]: Starting module aw-watcher-window (aw_qt.manager:148)
2026-06-22 15:04:52 [INFO ]: Creating trayicon... (aw_qt.trayicon:208)
2026-06-22 15:04:53 [INFO ]: Initialized aw-qt and trayicon successfully (aw_qt.trayicon:264)
2026-06-22 15:04:55 [WARNING]: Tried to stop module aw-watcher-window, but it wasn't running (aw_qt.manager:185)
2026-06-22 15:04:55 [WARNING]: Tried to stop module aw-server, but it wasn't running (aw_qt.manager:185)
```

Relevant `aw-watcher-afk` log:

```text
2026-06-22 15:04:53 [INFO ]: aw-watcher-afk started (aw_watcher_afk.afk:62)
2026-06-22 15:04:54 [INFO ]: Connection to aw-server established by aw-watcher-afk (aw_client.client:447)
2026-06-22 15:26:05 [INFO ]: afkwatcher stopped because parent process died (aw_watcher_afk.afk:82)
```

A new macOS crash report was created at the same time:

```text
~/Library/Logs/DiagnosticReports/aw-qt-2026-06-22-152605.ips
```

Crash report summary:

```text
app_name: aw-qt
timestamp: 2026-06-22 15:26:05.00 -0400
app_version: 0.13.2
bundleID: net.activitywatch.ActivityWatch
os_version: macOS 27.0 (26A5353q)
procPath: /Applications/ActivityWatch.app/Contents/MacOS/aw-qt
translated: true
cpuType: X86-64
parentProc: launchd
sip: enabled
exception: EXC_BAD_ACCESS / SIGSEGV
subtype: KERN_INVALID_ADDRESS, possible pointer authentication failure
termination: Segmentation fault: 11
```

Relevant stack frames from the crash report:

```text
-[NSEvent clickCount]
-[NSMenuTrackingSession sendBeginTrackingNotifications]
-[NSMenuTrackingSession beginTrackingSession:]
+[NSContextMenuImpl presentPopup:fromView:withContext:animated:async:completionBlock:]
_NSPopUpMenu
-[NSStatusBarButtonCell popUpStatusBarMenu:ofItem:ofBar:inRect:ofView:withEvent:]
-[NSStatusItem popUpStatusItemMenu:]
-[NSStatusItem _beginExpandedInterfaceSession:]
-[NSSceneStatusItem _beginExpandedInterfaceSession:]
-[NSApplication run]
QEventLoop::exec(QFlags)
QCoreApplication::exec()
meth_QApplication_exec(_object*, _object*)
```

Historical `aw-watcher-afk` logs show the same parent-death pattern on earlier launches:

```text
2026-06-16 20:00:03 [INFO ]: afkwatcher stopped because parent process died
2026-06-18 18:00:59 [INFO ]: afkwatcher stopped because parent process died
2026-06-18 18:01:47 [INFO ]: afkwatcher stopped because parent process died
2026-06-18 18:02:00 [INFO ]: afkwatcher stopped because parent process died
2026-06-20 13:06:02 [INFO ]: afkwatcher stopped because parent process died
2026-06-22 14:54:23 [INFO ]: afkwatcher stopped because parent process died
2026-06-22 15:26:05 [INFO ]: afkwatcher stopped because parent process died
```

## Additional context

This is on an Apple Silicon Mac. The ActivityWatch crash report shows `translated: true`, so ActivityWatch v0.13.2 is running as `x86_64` under Rosetta.

This appears to be an `aw-qt` menu bar/status item crash rather than an AFK input-permission problem. `aw-watcher-afk` can start, connect to `aw-server`, and write AFK events until `aw-qt` crashes.

Observed bucket behavior after the crash:

```text
aw-watcher-window_.local continues updating
aw-watcher-afk_.local stops updating
```

I did not find ActivityWatch logs indicating an Input Monitoring, Accessibility, or TCC permission denial.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.