fix(macos): disabled Copy menu item; Seatbelt scratch path not canonicalised
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 42/100
研究方向
Read lib/features/macos/querya_platform_menu_bar.dart and locate SandboxScratchDirectory and buildMacOsSeatbeltProfile. First check how the menu actions and Seatbelt profile are built, then trace the scratch and extension root paths and inspect related tests, including a test for a /var path. Done means Copy invokes the selection intent, resolved paths match the profile, and the requested policy narrowing and escaping are covered; items 1–2 also need confirmation on a real Mac.
由索引模型根據 Issue 內容生成。
描述
Problems
- Copy menu item is disabled. In
lib/features/macos/querya_platform_menu_bar.dartCopy isconst PlatformMenuItem(label: 'Copy', shortcut: ...)with noonSelected, which Flutter renders as a disabled item. Cut / Paste / Select All callActions.maybeInvoke. Cmd+C may not work reliably while a text field is focused. - Seatbelt scratch path is not canonical.
SandboxScratchDirectoryusesDirectory.systemTemp(/var/folders/...);/varis a symlink to/private/var, and Seatbeltsubpathmatches the resolved path, so(allow file-write* (subpath "<scratch>"))likely never matches and the extension cannot write to its scratch dir. - Seatbelt profile is looser than documented (
buildMacOsSeatbeltProfile):(allow mach-lookup),(allow process*)and(allow file-read*)outside/Users, andscratchPath/extensionRootare interpolated into the profile without escaping quotes (see also #1560).
Tasks
- Copy: add an
onSelectedusingCopySelectionTextIntent. - Resolve symlinks for scratch and extension roots before building the profile; add a test with a
/varpath. - Narrow
mach-lookup/process*, escape profile strings.
Items 1–2 need confirmation on a real Mac.
- 主要語言
- Dart
- 星號
- 23
- 分支
- 1
- 平均合併
- 35 分鐘
- 30 天內合併 PR
- 497
環境準備
在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
QueryaHub/Querya-Desktop 的其他 Issue
-
enhancement ui
難度 2/5 1-3 小時 新手友好度 78/100
QueryaHub/Querya-Desktop#1689 ·
維護者通常 1 天內回覆
-
ui(dialogs): make destructive query and DML preview dialogs adaptive and prevent table name overflow未關閉bug frontend
難度 2/5 1-3 小時 新手友好度 82/100
QueryaHub/Querya-Desktop#1642 ·
維護者通常 1 天內回覆
-
bug error-handling settings
難度 1/5 1-3 小時 新手友好度 78/100
QueryaHub/Querya-Desktop#1637 ·
維護者通常 1 天內回覆
-
enhancement
難度 1/5 1 小時以內 新手友好度 88/100
QueryaHub/Querya-Desktop#1636 ·
維護者通常 1 天內回覆
-
enhancement marketplace
難度 2/5 1-3 小時 新手友好度 78/100
QueryaHub/Querya-Desktop#1635 ·
維護者通常 1 天內回覆
查看 QueryaHub/Querya-Desktop 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 4 天內回覆
-
難度 2/5 1-3 小時 新手友好度 79/100
維護者通常 1 天內回覆
-
[Bug] 附近设备权限未申请未關閉bug
難度 2/5 1-3 小時 新手友好度 67/100
bggRGjQaUbCoE/PiliPlus#3369 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 65/100
-
P1
難度 2/5 1-3 小時 新手友好度 76/100
flutter/flutter-intellij#9177 ·
維護者通常 1 天內回覆