# DeskCapsule security policy

## Supported versions

No public production version exists as of 21 August 2026. Only the current repository revision and explicitly supplied pre-release build are in scope. Unsigned loose binaries and DEV PRO builds are not production distributions.

## Report a vulnerability

Use private [SOVREST support](https://sovrest.com/profile/support) and put `DeskCapsule security` in the subject. Include version, Windows version, reproduction steps, expected and actual behavior, and a minimal redacted proof. Do not send license keys, bearer or refresh tokens, signing material, user databases, screenshots, audio or personal content in the initial report.

## Security baseline

- Production distribution is a signed self-contained x64 MSIX with a reviewed AppInstaller update chain.
- Desktop code contains only public SOVREST identifiers and RSA verification keys. Partner HMAC secrets, provider keys and client secrets are prohibited.
- Cloud access requires an active verified `Licensed` state. `Trial` and `Grace` are denied for translation, AI Chat and cloud voice.
- Paid entitlement is enforced server-side for every cloud request. UI gating is only presentation.
- SOVREST bearer tokens are never logged, formatted into exceptions or reused as license keys.
- HTTPS redirects are disabled for cloud API clients. Response sizes, timeouts, accepted media types and error bodies are bounded.
- Clipboard, screenshots, notes, local models and local voice are protected by current-user ACLs. License credentials use DPAPI CurrentUser.
- Model artifacts require an allowlisted catalog entry and exact size/hash verification before atomic installation and before use.
- Global keyboard and mouse features are opt-in, bounded and fail closed when the target changes or cannot be verified.
- Diagnostics exclude user content, secrets, raw network bodies, audio and transcripts.

## Trust boundaries

The primary boundaries are the Windows user profile, SQLite and managed files, the foreground input target, downloaded model artifacts, SOVREST license APIs, SOVREST AI APIs and the signed update channel. Same-user processes and administrators remain able to inspect unencrypted local user data.

DeskCapsule never calls Groq directly and never stores a personal Groq key. Cloud provider credentials remain behind SOVREST.

## Production blockers

Release is blocked until all of the following are resolved:

- final SOVREST app ID, SKU, endpoint allowlist and RSA public key;
- Translate, AI Chat and STT are enabled for the final DeskCapsule application and approved paid plan;
- `/api/ai/chat` rejects Free, Trial and Grace server-side;
- cloud processing region, retention, deletion and subprocessor disclosures are approved;
- signed local translation catalog and engine benchmark are approved;
- signed MSIX, timestamp and update rollback drill pass;
- clean-VM functional, privacy and security matrices pass.

## Research rules

Use only systems and data you own or have permission to test. Avoid availability impact, high-volume requests and attempts to obtain other users' data. Stop and report if testing exposes secrets or personal data. Do not publish a working exploit before a fix and coordinated disclosure window are agreed.

See [THREAT_MODEL.md](docs/THREAT_MODEL.md) and [RELEASE_CHECKLIST.md](docs/RELEASE_CHECKLIST.md).
