Security
ShiftOps runs code-changing work across many repositories. This is how it limits what it can touch.
Credentials
- Tokens are stored only in the operating system credential store: macOS Keychain, Windows Credential Manager or the Secret Service on Linux.
- Secrets are read by the native Rust layer. The web view can ask whether a credential exists, never its value.
- Credentials are never written to the SQLite database, log files or browser storage.
Native boundary
- The web view can call only the commands ShiftOps registers. No shell or filesystem plugin is exposed to it.
- Settings writes are restricted to a fixed list of keys and size-limited.
- A strict Content Security Policy blocks remote scripts and network requests from the web view.
- Environment checks run fixed commands with fixed arguments. No user input is passed to a shell.
Agents and verification
An agent's report that a change succeeded is not trusted on its own. ShiftOps re-runs each repository's verification commands against the resulting branch before marking it verified.
Reporting a vulnerability
Report vulnerabilities privately through the repository's GitHub security advisory form. Please do not open a public issue.