From f56ac490aaee71efcbd794d621b9e5c57f5a8890 Mon Sep 17 00:00:00 2001 From: pmaxhogan Date: Wed, 29 Jul 2026 12:03:29 -0500 Subject: [PATCH] feat(ui): guide macOS users to grant Full Disk Access when files are denied A TCC denial is invisible from the user's side: the backup "succeeds", some files just never reach Drive. Add a root-mounted dismissible banner that latches on the first local.permission_denied activity row, counts DISTINCT files (a denial is permanent, so the same file is re-reported every cycle, unbounded), and offers a one-click deep link to the Full Disk Access pane. The deep link needs an explicit opener capability scope: opener:default only permits mailto/tel/http/https, so a custom scheme would throw at runtime while every mocked test still passed. Document in README and DESIGN s5.3.3 that APFS snapshots do NOT bypass TCC, and that an unsigned binary's TCC grant can silently invalidate on update because macOS binds the grant to the code signature. --- README.md | 35 +++- design/DESIGN.md | 55 ++++++ src-tauri/capabilities/default.json | 6 +- ui/src/App.vue | 6 + ui/src/__tests__/app-shell.test.ts | 5 +- ui/src/__tests__/fda-banner.test.ts | 263 ++++++++++++++++++++++++++++ ui/src/components/FdaBanner.vue | 110 ++++++++++++ ui/src/locales/en-US.json | 6 + ui/src/stores/fdaBanner.ts | 89 ++++++++++ 9 files changed, 566 insertions(+), 9 deletions(-) create mode 100644 ui/src/__tests__/fda-banner.test.ts create mode 100644 ui/src/components/FdaBanner.vue create mode 100644 ui/src/stores/fdaBanner.ts diff --git a/README.md b/README.md index f47bda56..01bad98d 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,9 @@ These move: check each project's current docs before relying on a cell. selector. - Anonymous, opt-out telemetry (coarse counts only; never file names, paths, or content). +- Guided Full Disk Access onboarding for macOS: when macOS privacy protection + blocks a file, Driven says so and offers a one-click jump to the right + System Settings pane instead of leaving you to find it. +