Cookie Policy
Last updated: October 25, 2026
This policy explains storage on your device. Our Privacy Policy explains how information is processed and shared.
Optional measurement is off unless it is available and you separately choose to allow it. Signing in or accepting our terms does not grant that permission. We do not use advertising cookies or session replay.
Open privacy choices to choose or withdraw optional measurement without signing in. The same controls are available in the app's Privacy & data settings.
Storage that supports the service
We use storage to maintain sign-in, protect the service and remember choices or features you request. These purposes remain separate from optional measurement.
| Storage | Purpose | Lifetime |
|---|---|---|
Clerk-managed sign-in cookies, including __session and __client_uat | Authentication and session security. Names may include an instance suffix; development environments can also use __clerk_db_jwt. | Managed by Clerk and the sign-in session. See Clerk's privacy information. |
ds_visitor | A signed random identifier for the public assistant's abuse and usage limits. It is not an optional-measurement identifier. | Up to one year. |
ds_measurement_preferences | Remembers and enforces your purpose-specific choices after you make one. The matching server record stores choices, notice version and timing, not a browsing history. | Up to one year from an explicit choice; reading a page does not renew it. |
ds_measurement_denial | Remembers which optional purposes you decline, so an older response cannot undo a newer choice. It contains no unique identifier and cannot grant permission. | Up to one year from an explicit choice. |
analytics_consent | An older choice used during migration. A previous decline remains respected; an older acceptance is not permission for newly separated purposes. | The older cookie lasted up to one year. It is removed when you make a new choice. |
devspec_last_project, sidebar_collapsed | Reopen your chosen project and remember navigation layout. | Up to one year. |
sidebar_state, sidebar_pinned | Remember sidebar choices. | Up to seven days. |
Blocking necessary storage may prevent sign-in or other requested features from working. It does not give us permission to turn on optional measurement.
Optional purposes are separate
Page performance
When available and allowed, performance measurement sends page-load and responsiveness metrics through our server to Axiom. Measurements use coarse page categories, not raw project/session URLs, visit identifiers, conversation text or an individual browsing history. The server checks permission again, including for a delayed browser message after withdrawal.
Website and signup measurement
When available and allowed, a separate ds_measurement_cohort cookie associates a limited public-site observation with successful assistant use, signup intent and a completed new account. The window is fixed at 30 days and is not extended by return visits. We do not use the assistant's security cookie for this purpose.
Temporary correlation is deleted within 24 hours after the window expires. Withdrawing permission deletes the still-identifiable observation; account closure also removes its remaining temporary account association. Aggregate totals are retained for 24 months. Reports do not identify individual visitors, and small counts and revealing breakdowns are withheld. A browser observation is not a unique person.
These controls do not subscribe you to product-update emails. Email preferences are separate, and essential security, billing and account-lifecycle messages are not disabled by declining measurement.
Browser local and session storage
Browser storage also supports requested features. Most localStorage entries have no automatic browser expiry; they remain until replaced, reset or removed with your site data. Session storage normally ends with the tab session. Storage being local does not mean its contents are never sent to the server.
| Key or family | Use |
|---|---|
devspec-sales-chat | Remembers the public chat's recent messages and state when you use it. Recent history is sent with later chat requests to provide continuity. New chat clears the saved conversation. |
devspec-help-session | A pointer to your help conversation. Clearing the pointer does not itself erase the server-side conversation. |
theme, devspec-audio-input-device, devspec-enter-to-send | Your appearance, microphone and input preferences. |
devspec:selected-project-id, task and session filter preferences | Navigation, sorting and filtering you choose. |
| Per-session send targets, agent preferences, drafts and panel state | Restore the controls and unfinished work you requested. Drafts or selected targets can be sent when you perform the related action. |
| Onboarding hints, dismissed notices and deployment-notice state | Avoid repeatedly showing notices you have already seen or dismissed. |
Clerk may use its own authentication storage. Optional Clerk SDK product telemetry is disabled in the application; necessary sign-in and security requests continue.
Changing or withdrawing a choice
Use Privacy choices or Privacy & data in app settings. We confirm a saved choice only after the browser can read it back. If storage or the connection prevents saving, the page explains the problem and keeps optional measurement off locally; it does not pretend server-side deletion succeeded.
Choices apply to this browser and can be shared between our controlled website and app hosts. Other browsers and devices keep separate choices, even when signed into the same account. An older conflicting decline is not silently changed into acceptance. If your browser sends a Global Privacy Control or Do Not Track opt-out signal, we keep optional measurement off.
Clearing site data can remove the identifier needed to find your browser's temporary measurement record. It does not itself erase server data or extend its lifetime: scheduled expiry still applies. We do not fingerprint you to reconstruct a lost identifier. You can contact us about a privacy request.
Other providers
Clerk handles authentication, and Stripe may use its own storage during hosted payment flows. If you book a demo from our website, Calendly's booking page opens inside it and may set its own cookies; see Calendly's privacy notice. Our databases and operational logs are server-side services, not a reason to place advertising cookies in your browser. See the Privacy Policy for the processing and provider details.
Contact
Questions or privacy requests: [email protected].