Halfspace ("we") makes Facet, which builds a specialist for each task you describe. This page says how we protect what you put into Facet. Our privacy policy has the full detail and wins if the two ever differ.
Report a vulnerability
Write to security@halfspacelabs.com, or report it privately on GitHub. Please don't open a public issue. We answer within two working days and credit reporters who want it. If you test in good faith, stay within your own workspace and stop as soon as you reach someone else's data, we won't take action against you. Our security.txt has the same contacts.
Your data stays yours
- We use what you put into Facet only to build, check and run your specialists.
- We never use it to train models for anyone else, and we don't sell it.
- When your app calls a specialist, we keep only the call's metadata (which version, which key, token counts, latency and a request ID), never the inputs or outputs.
- You can export a task (its specialist, instructions, examples and Expectations) from the app or through your agent at any time.
Zero data retention
Open-weight models write training examples, check answers and screen what you send in against our acceptable use policy. Every one of those requests goes through OpenRouter, only to a host with zero data retention, which keeps nothing once it answers. Facet's agent runs on Anthropic, which doesn't train on what it reads.
What we keep, and for how long
| Data | Kept |
|---|---|
| Account and task data | While your account is open |
| Call inputs and outputs | Not stored by us; Modal, which runs the call, deletes them within 7 days |
| Call metadata | 90 days |
| Examples sent for training, checks and screening | Not kept |
| Database backups | 7 days |
Retention is fixed, the same for every workspace.
Deleting your data
A workspace owner can delete the workspace, and anyone can delete their account, from the app. You have 7 days to undo it. After that we delete its data from our database, file storage and GPU provider, and the last backups expire within 7 more days, so it is gone within 14 days. To delete a single task, write to privacy@halfspacelabs.com.
Held-out examples are sealed
Some examples are held out to check each specialist honestly. Facet's agent never reads them, they never train a specialist, and they never leave in an export. The checks run with their own credentials in a separate GPU environment. A task's owners can see what a check missed, and each look is recorded.
Access to your workspace
- Sign-in goes through WorkOS, with Google, GitHub or your company's single sign-on. We never see your password.
- The app keeps you signed in with a secure, HTTP-only cookie that lasts at most 30 days. Signing out ends the session on our side too.
- We store only a hash of each API key. Revoking a key stops it within a few seconds, everywhere.
- Agents connect over OAuth and act only as you, within your workspace's policy.
- Every change in your workspace is recorded with who made it, and you can see that record in the app.
- Limits on requests and spending keep a leaked key or a runaway script from running up a bill.
How we run Facet
- Facet runs on Google Cloud in the United States, with Neon for the database, Cloudflare R2 for files and Modal for GPUs. The privacy policy lists every provider and what each sees.
- Data is encrypted in transit and at rest.
- Secrets live in one managed secret store, never in code.
- Inside Halfspace, only the people who run Facet have access, and they read your content only to enforce our acceptable use policy, investigate a report, fix a problem you raised, or as the law requires.
Contact
Security reports: security@halfspacelabs.com. Privacy questions and data requests: privacy@halfspacelabs.com.