Requirements
How it runs
1
Startup
The app initialises its dependency-injection host, enforces a single instance using a named mutex, starts a named-pipe server for intra-process signalling, and shows the system tray icon.
2
Authentication
The user signs in through Auth0 in a WebView2 window. Tokens are written to Windows Credential Manager.
3
Monitoring
Once the user activates monitoring,
UIAutomationManager polls for the focused text field at 100 ms intervals.4
Detection
TextFieldDetector identifies editable elements and raises focus and selection-change events.5
Suggestion
SuggestionService sends the selected text to the PromptShields API for analysis.6
Overlay
OverlayWindowManager displays the result in a floating window near the active field.7
Application
On accept,
TextInjector writes the revised text back into the target element.Configuration
Configuration is environment-specific and selected at build time:
Each settings file controls:
AppSettings.BaseUrl— the PromptShields API endpointAuth0— domain, client ID, audience, and redirect URI- Analytics — enable or disable Google Analytics, PostHog, and Firebase
- Logging — log level
If your organisation prohibits third-party analytics on managed endpoints, request a production build with the analytics providers disabled. This is a settings-file change, not a code change.
Custom URI scheme
The installer registers a protocol handler used for deep links:prompt-shields:// or sign-in will fail to complete.
What it stores on the device
Roaming-profile environments should be aware that
%LocalAppData% does not roam; a user moving between machines will see empty local history on each new device. Server-side history is unaffected.
Technology stack
For your application-inventory and change-approval records:Troubleshooting
Sign-in window is blank or never opens
Sign-in window is blank or never opens
The WebView2 Runtime is missing or blocked. Install the Evergreen Runtime and retry. This is by far the most common Windows deployment failure.
Sign-in completes in the browser but the app never returns
Sign-in completes in the browser but the app never returns
The
prompt-shields:// protocol handler was not registered, or is blocked by policy. Confirm the registration survived your packaging and deployment method.A second instance won't start
A second instance won't start
That is intended. The app enforces a single instance with a named mutex; launching again signals the existing instance rather than starting a new one. If the app appears to be gone but will not relaunch, check for an orphaned process in Task Manager.
No suggestions appear in a specific application
No suggestions appear in a specific application
Some applications draw custom text controls that do not expose a proper UI Automation text pattern. Report the specific application and version so coverage can be assessed.