[Bug]: macOS Accessibility warning persists after permission is enabled
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 半日
- 初心者へのやさしさ
- 50/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- electron, macos, typescript
- 領域
- desktop
調査の方向性
Start in src/hooks/useScreenRecorder.ts, where the darwin editable-overlay preflight calls requestNativeMacCursorAccess and shows recording.cursorAccessibilityUnavailable on a not-determined helper result. The proposed change removes that toast and the System Settings prompt, keeping the position-only fallback. Done means a regression test shows recording starts without the Accessibility toast, and the change is checked on a macOS build.
索引モデルが issue の本文から書いたものです。
説明
Search existing issues
- I have searched the existing issues
- Related: #878 and merged fix #886
Describe the bug
On macOS, OpenScreen can still show the Accessibility warning even after Accessibility is enabled for the OpenScreen app in System Settings.
Observed message:
Accessibility is off. Recording will continue, but cursor effects may be limited. Enable it in System Settings for full cursor effects.
The warning is misleading in this state: the main app is authorized, recording can start, and the warning appears to be based on the result of a separate native cursor helper process rather than the main OpenScreen app's TCC grant.
This was first observed in a local 2.0.1-hans.7 build and reproduced in a local arm64 build based on the official v2.0.0 code line. I have not yet claimed that it reproduces in the unmodified notarized v2.0.0 DMG.
Expected behavior
- Accessibility should be treated as optional for recording.
- If the main app is authorized, no Accessibility warning should be shown.
- If Accessibility is unavailable, recording should still start with position-only cursor telemetry, without repeatedly opening System Settings.
- A warning should only be shown when the app can reliably determine that the main app's permission is missing.
To Reproduce
- On macOS, enable OpenScreen under System Settings → Privacy & Security → Accessibility.
- Restart OpenScreen.
- Use the cursor/editable-overlay recording mode.
- Start a recording.
- Observe that the Accessibility warning can still appear even though the permission is enabled.
- The recording itself can still succeed.
Environment
- OS: macOS 26.6.2
- Architecture: Apple Silicon (arm64)
- Official release line: v2.0.0
- Bundle identifier:
com.etiennelescot.openscreen
Proposed fix
Treat the native cursor-access request as best-effort and do not use its helper-process status as a recording-start gate or as proof that the main app lacks Accessibility.
In src/hooks/useScreenRecorder.ts, the recording preflight can be reduced to:
if (platform === "darwin" && cursorCaptureMode === "editable-overlay") {
await window.electronAPI.requestNativeMacCursorAccess();
}
Remove the recording-start path that:
- tracks
cursorAccessibilityWarningShown; - shows
recording.cursorAccessibilityUnavailablebased on anot-determinedhelper result; - opens System Settings from that toast.
Keep the native cursor session's position-only fallback and add a regression test asserting that recording starts and the misleading Accessibility toast is not shown.
I applied this change locally. Targeted tests passed, and a real 87.9-second H.264/AAC recording completed successfully.
Separate packaging note
During local testing, an ad-hoc package whose main executable identifier was Electron produced SCStream -3805 (application connection interrupted). Restoring the official bundle identifier com.etiennelescot.openscreen and preserving the correct app identity removed that failure. This appears to be a local packaging/signing issue rather than an upstream runtime regression, but the release packaging should continue to preserve the app bundle identity.
- 主要言語
- TypeScript
- スター
- 3.7k
- フォーク
- 231
- 平均マージ
- 16時間 25分
- マージ済み PR(30日)
- 331
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
getopenscreen/openscreen のほかの issue
-
build.yml: macOS arm64 DMG fails, cargo missing on the macos-26 runner image対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
getopenscreen/openscreen#1423 ·
メンテナーはふだん 1 日以内に返信
-
Native review wanted: machine-translated recording bar tooltips (14 locales)再び着手できるかも @auberginewly が 20 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンgood first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
getopenscreen/openscreen#913 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 57/100
getopenscreen/openscreen#1422 ·
メンテナーはふだん 1 日以内に返信
-
macOS: pick the YCbCr matrix per buffer instead of hard-coding BT.709対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
getopenscreen/openscreen#1420 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
getopenscreen/openscreen#1419 ·
メンテナーはふだん 1 日以内に返信
getopenscreen/openscreen の issue をすべて見る
似ている issue
-
area:plugins area:security area:skills bug has repro
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
anthropics/claude-code#105911 ·
メンテナーはふだん 1 日以内に返信
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifactsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Fission-AI/OpenSpec#2165 ·
メンテナーはふだん 1 日以内に返信
-
🐞 bug 🧐 unconfirmed
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
Tencent/tdesign-vue-next#7032 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gnosis/gnosis_vpn#661 ·
メンテナーはふだん 1 日以内に返信
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)オープンtriage:bug-verified
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
メンテナーはふだん 1 日以内に返信