fix(macos): disabled Copy menu item; Seatbelt scratch path not canonicalised
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 42/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Dart
- Sterne
- 23
- Forks
- 1
- Ø Merge
- 31 Min.
- Gemergte PRs (30 T.)
- 570
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus QueryaHub/Querya-Desktop
-
enhancement ui
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
QueryaHub/Querya-Desktop#1689 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ui(dialogs): make destructive query and DML preview dialogs adaptive and prevent table name overflowOffenbug frontend
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
QueryaHub/Querya-Desktop#1642 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug error-handling settings
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
QueryaHub/Querya-Desktop#1637 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
QueryaHub/Querya-Desktop#1636 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement marketplace
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
QueryaHub/Querya-Desktop#1635 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in QueryaHub/Querya-Desktop
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
PhoebeSoftware/xrooster#41 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
VeryGoodOpenSource/very_good_templates#665 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
VeryGoodOpenSource/very_good_cli#1783 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug to check
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 1 Tag