feat(wizard): pre-emptive macOS App-Data prompt forewarning in connect step (Spec 078 US4)#910
Merged
Merged
Conversation
…t step (Spec 078 US4 / FR-011) The per-client preview read behind 'Review & connect' is the first access that can fire the macOS privacy prompt, and only for configs under another app's protected data (~/Library/Application Support/…). ClientRow now shows a plain-language note — naming the 'access data from other apps' prompt and telling the user to choose Allow — exactly where the action is offered, before it can fire. Keyed off config_path, so it is inherently macOS-only and scoped to affected clients; dropped once a preview is open (the read already succeeded) and for connected rows. Spec 075 post-denial remediation is untouched. Verification: 5 unit tests + live Playwright sweep report in specs/078-connect-trust-preview/verification/tcc-note-report.html
Deploying mcpproxy-docs with
|
| Latest commit: |
8b0b0b4
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2773f6c0.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://feat-078-connect-trust-tcc-c.mcpproxy-docs.pages.dev |
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 30102681284 --repo smart-mcp-proxy/mcpproxy-go
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Dumbris
added a commit
that referenced
this pull request
Jul 24, 2026
Dumbris
added a commit
that referenced
this pull request
Jul 25, 2026
…sion (Spec 079 US3) (#911) * feat(updatecheck): daily check cap + failure backoff + CI nudge suppression (Spec 079 US3) FR-018: DefaultCheckInterval 4h -> 24h (at most a daily check against the rate-limited GitHub API); consecutive failures back the periodic loop off exponentially (2x/4x/8x the interval, capped). CheckNow (user refresh via /api/v1/info?refresh=true) bypasses the window — explicit intent. FR-019: CI=true/1 (same convention as the telemetry env-filter) marks the process non-interactive: the 'Update available' announcement drops to Debug (no per-run CI log nag) and every VersionInfo carries an additive nudges_suppressed field (FR-021-safe) that the Web UI banner honors while status/doctor/info keep reporting the facts. * docs+oas: update_check cadence/backoff/CI-quiet (Spec 079 US3) * chore(roadmap): connect-trust done (#910); upgrade-nudge-quiet in_review (#911) * fix(updatecheck): propagate nudge suppression to tray + sidebar; gen-guard backoff; soften refresh-failure toast (Codex round 1) - nudges_suppressed added to the generate-types template (contracts.ts is generated; the hand-edit would have been wiped and TestContractsInSync would fail) and regenerated. - Go tray decodes nudges_suppressed and hides the menu nudge / demotes the log when set; Web UI sidebar 'update' badge honors the shared updateNudgesSuppressed store computed (FR-019 covers every nudge surface, not just the banner). - Backoff mutations are generation-guarded and SetConfig clears the window on an effective change, so a pre-change failure cannot swallow the prompt re-enable/channel-switch check (new test). - Manual-refresh check failure toast demoted from error to info with non-alarming copy (FR-020). * fix(test): pin CI='' in announce-dedupe test so FR-019 suppression doesn't fire in CI TestChecker_UpdateAvailableLoggedOncePerVersion asserts the interactive Info-level 'Update available' announcement — under the CI runner's own CI=true the new nudge suppression demoted that log to debug and the test failed in every CI job while passing locally. Verified with CI=true go test ./internal/... locally (clean sweep).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the last open task on the P0
connect-trustepic (roadmap:connect-trust-tcc-copy). Implements Spec 078 US4 / FR-011.What
The per-client preview read behind Review & connect is the first access that can fire the macOS App-Data privacy prompt — and an unexplained “mcpproxy” wants to access data from other apps dialog is itself a reason to abandon the step (Spec 078). The wizard's
ClientRownow shows a plain-language forewarning before that action can fire:Design
config_path(~/Library/Application Support/…), not OS sniffing: the prompt fires on the daemon's machine for exactly the protected-app-data set (Claude Desktop, VS Code), and those paths only occur on darwin — no new API call, inherently macOS-only, scoped to precisely the clients the spec's acceptance scenario 2 describes.Verification
frontend/tests/unit/onboarding-wizard-tcc-note.spec.ts(watched failing first); full frontend suite 302/302,vue-tscclean.specs/078-connect-trust-preview/verification/tcc-note-report.html(committed) — VS Code (protected, unconnected) carries the note; connected and dot-directory clients never do.