Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .agents/skills/incident-triage/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: incident-triage
description: First-pass triage of a possible production incident for Paradev's hosted services. Gathers signals (recent deploys, Sentry spikes, health checks), proposes a severity and a status.superset.sh message, then stops for human approval. Use when someone reports an outage, errors spike, or asks "is something down?".
description: First-pass triage of a possible production incident for Paradev's hosted services. Gathers signals (recent deploys, Sentry spikes, health checks), proposes a severity and a status.paradev.com message, then stops for human approval. Use when someone reports an outage, errors spike, or asks "is something down?".
---

# Incident triage
Expand All @@ -13,7 +13,7 @@ start.

- Read-only. Do not deploy, roll back, disable workflows, change flags, resolve Sentry issues,
or run SQL that writes.
- Do not post to status.superset.sh, Slack, Discord, Plain, X, or any other channel. Do not declare
- Do not post to status.paradev.com, Slack, Discord, Plain, X, or any other channel. Do not declare
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
Resolved
an incident. Your output is a draft in this conversation.
- If a tool is not connected or a check fails, write "not checked" and the reason. Do not guess.
- Use UTC times everywhere.
Expand Down Expand Up @@ -54,7 +54,7 @@ Run the checks that can run in parallel at the same time. Record each result wit
Expected: relay `{"ok":true,"proto":2}` 200, realtime `{"ok":true}` 200, API
`{"ok":true,"database":"ok"}` 200. A 503 from the API names the database state.
Any other 5xx or a timeout is a failure.
Also read `https://status.superset.sh/api/v2/summary.json` to see what the page shows now.
Also read `https://status.paradev.com/api/v2/summary.json` to see what the page shows now.
4. **Vercel** (if the CLI is linked): `vercel ls` for recent production deploys, and
`vercel logs <deployment-url>` for errors around the start time.
5. **Upstream status.** Name the upstream provider that the signals point to (Vercel, Cloudflare,
Expand All @@ -78,7 +78,7 @@ Signals

Proposed severity: SEV<1|2|3> — <one-line reason from the runbook table>

Proposed status.superset.sh update (<Investigating|Identified|Monitoring|Resolved>):
Proposed status.paradev.com update (<Investigating|Identified|Monitoring|Resolved>):
> <message from the runbook template, filled in>

Suggested next steps for the lead:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ Paradev has completed its SOC 2 Type II audit. An independent auditor watched ou

Security has shaped Paradev from the start. Your repos, terminal output, and agent sessions stay on your machine. Cloud sync carries account and organization metadata only, and the full source is on GitHub to audit. The Type II report adds independent, ongoing verification of the controls behind all that, from access reviews to change management and monitoring.

Request the report and review our security documentation at [trust.superset.sh](https://trust.superset.sh). If your security team is evaluating Paradev, [talk to us](/enterprise).
Request the report and review our security documentation at [trust.paradev.com](https://trust.paradev.com). If your security team is evaluating Paradev, [talk to us](/enterprise).
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
Resolved
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
2 changes: 1 addition & 1 deletion apps/marketing/content/legal/security.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ If you believe you have found a security vulnerability in Paradev (the desktop a

Please do not open public issues for security reports.

Our compliance posture, certifications, and security documentation live in the [Paradev Trust Center](https://trust.superset.sh).
Our compliance posture, certifications, and security documentation live in the [Paradev Trust Center](https://trust.paradev.com).

## Reporting abusive content

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import type { MessageDescriptor } from "@lingui/core";
import { msg } from "@lingui/core/macro";
import { COMPANY } from "@superset/shared/constants";

const trustHost = new URL(COMPANY.TRUST_URL).host;

export interface EnterpriseFAQItem {
id: string;
Expand Down Expand Up @@ -44,8 +47,7 @@ export const ENTERPRISE_FAQ_ITEMS: EnterpriseFAQItem[] = [
message: "Is my data secure?",
}),
answer: msg({
message:
"Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at trust.superset.sh.",
message: `Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at ${trustHost}.`,
}),
},
];
2 changes: 1 addition & 1 deletion apps/marketing/src/app/[lang]/pricing/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,7 @@ export const PRICING_FAQ_ITEMS: PricingFAQItem[] = [
}),
answer: msg({
message:
"Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at trust.superset.sh.",
"Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at {trustHost}.",
}),
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
type PlanFamily,
seatPricePerMonth,
} from "@superset/shared/billing";
import { COMPANY } from "@superset/shared/constants";

export interface FamilyPriceSet {
family: string;
Expand Down Expand Up @@ -174,6 +175,7 @@ export function faqValues(values: PlanPriceValues) {
planPrices: values.planPrices,
overagePrice: values.overagePrice,
packPrice: values.packPrice,
trustHost: new URL(COMPANY.TRUST_URL).host,
};
}

Expand Down
6 changes: 3 additions & 3 deletions docs/runbooks/incidents.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ How to run an incident for Paradev's hosted services, and how to keep status.par
while it happens. Agents: `.agents/skills/incident-triage/SKILL.md` does the first pass of the
"Where to look first" section and drafts the status message. A human posts it.

## status.superset.sh
## status.paradev.com

| | |
|---|---|
| Provider | **incident.io** status page "Superset" (standalone page, created 24 March 2026). Confirmed 30 September 2026: the page CSP names `status-page-*-incident-io-team.vercel.app`. Nothing in this repo configures it. |
| DNS | `superset.sh` is on Cloudflare. `status` has its own **DNS-only** CNAME to `cname.vercel-dns-016.com` (added 30 September 2026), so the page does not go through the Cloudflare proxy that relay and realtime also use. Vercel holds its own certificate for the name. To undo, delete the record; the proxied `*.superset.sh` wildcard then serves it again. |
| DNS | Custom domain `status.paradev.com` (moved from `status.superset.sh` on 1 November 2026). `paradev.com` DNS is on Vercel: incident.io serves the page from their own Vercel account, which we allowed with the `_vercel` TXT record on `paradev.com`, and the wildcard record already points the name at Vercel. `status.superset.sh` is a proxied Cloudflare record with a 301 redirect rule to `status.paradev.com` that keeps the path and query. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The DNS row drops the rollback instruction that was here before. Add the steps to undo the move, such as which Cloudflare redirect rule and Vercel domain to restore, so on-call can revert a broken status page during an incident.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/runbooks/incidents.md, line 12:

<comment>The DNS row drops the rollback instruction that was here before. Add the steps to undo the move, such as which Cloudflare redirect rule and Vercel domain to restore, so on-call can revert a broken status page during an incident.</comment>

<file context>
@@ -4,12 +4,12 @@ How to run an incident for Paradev's hosted services, and how to keep status.par
 |---|---|
 | Provider | **incident.io** status page "Superset" (standalone page, created 24 March 2026). Confirmed 30 September 2026: the page CSP names `status-page-*-incident-io-team.vercel.app`. Nothing in this repo configures it. |
-| DNS | `superset.sh` is on Cloudflare. `status` has its own **DNS-only** CNAME to `cname.vercel-dns-016.com` (added 30 September 2026), so the page does not go through the Cloudflare proxy that relay and realtime also use. Vercel holds its own certificate for the name. To undo, delete the record; the proxied `*.superset.sh` wildcard then serves it again. |
+| DNS | Custom domain `status.paradev.com` (moved from `status.superset.sh` on 1 November 2026). `paradev.com` DNS is on Vercel: incident.io serves the page from their own Vercel account, which we allowed with the `_vercel` TXT record on `paradev.com`, and the wildcard record already points the name at Vercel. `status.superset.sh` is a proxied Cloudflare record with a 301 redirect rule to `status.paradev.com` that keeps the path and query. |
 | Components | Desktop App, Web App, General API, Integrations, Marketing Site, Remote Access (relay), Sign-in. |
 | Link in the product | `COMPANY.STATUS_URL` in `packages/shared/src/constants.ts`, used by the marketing footer, the contact page and `index.md`. |
</file context>

| Components | Desktop App, Web App, General API, Integrations, Marketing Site, Remote Access (relay), Sign-in. |
| Link in the product | `COMPANY.STATUS_URL` in `packages/shared/src/constants.ts`, used by the marketing footer, the contact page and `index.md`. |
| Monitoring | Sentry uptime monitors (org `superset-sh`) check the web app, API, sign-in route, API health with a database check, relay, relay v2, realtime, marketing, docs and usercontent every 1 to 5 minutes. The Sentry alert "Uptime failures to incident.io" sends their failures to the incident.io alert source "Sentry uptime monitors". incident.io does not run checks itself. A person still changes the status page. |
Expand Down Expand Up @@ -42,7 +42,7 @@ Setup still open in incident.io (org `superset-sh`):
- [ ] Publish the past incidents of 17 September 2026 (API outage) and 23 September 2026 (desktop workspace screens) on the status page, with their real times.
- [ ] Each person in the rotation: set a phone number or the incident.io mobile app in your notification preferences. Without one, a page can arrive only as an email or a Slack message.

To check the page again: `curl -sS https://status.superset.sh/proxy/status.superset.sh` returns
To check the page again: `curl -sS https://status.paradev.com/proxy/status.paradev.com` returns
the components and ongoing incidents as JSON.

## Severity
Expand Down
8 changes: 4 additions & 4 deletions packages/i18n/locales/cs/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -13987,8 +13987,8 @@ msgstr "Ukázka Paradev Stránky"
msgid "Paradev Plugins"
msgstr "Pluginy Paradev"

msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at trust.superset.sh."
msgstr "Paradev běží lokálně na počítačích vašich vývojářů. Neukládáme váš kód ani konverzace s AI a Paradev prošel auditem SOC 2 Type II u nezávislého auditora. Vyžádejte si zprávu a projděte si dokumentaci k bezpečnosti na trust.superset.sh."
msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at {trustHost}."
msgstr "Paradev běží lokálně na počítačích vašich vývojářů. Neukládáme váš kód ani konverzace s AI a Paradev prošel auditem SOC 2 Type II u nezávislého auditora. Vyžádejte si zprávu a projděte si dokumentaci k bezpečnosti na {trustHost}."

msgid "Paradev started as a hackathon project in November 2025. It was a simple desktop app for managing worktrees."
msgstr "Paradev vznikl jako projekt na hackathonu v listopadu 2025. Byla to jednoduchá desktopová aplikace na správu worktree."
Expand Down Expand Up @@ -21487,8 +21487,8 @@ msgstr "Ano. Free pokrývá jednotlivce s 1 uživatelem, lokální pracovní pro
msgid "Yes. On plans with cloud workspaces, owners can buy any amount of extra GB-hours at {packPrice} per GB-hour in Settings, Billing. Bought GB-hours are used after the monthly pool and never expire, and auto top-up can buy more when they run low."
msgstr "Ano. U plánů s cloudovými pracovními prostory mohou vlastníci v Nastavení, Fakturace koupit libovolné množství dalších GB-hodin za {packPrice} za GB-hodinu. Koupené GB-hodiny se čerpají po měsíčním fondu a nikdy nevyprší, a automatické dobití může koupit další, když docházejí."

msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at trust.superset.sh."
msgstr "Ano. Paradev prošel auditem SOC 2 Type II u nezávislého auditora, který pokrývá naše bezpečnostní kontroly v provozu v čase. Vyžádejte si zprávu a projděte si dokumentaci k bezpečnosti na trust.superset.sh."
msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at {trustHost}."
msgstr "Ano. Paradev prošel auditem SOC 2 Type II u nezávislého auditora, který pokrývá naše bezpečnostní kontroly v provozu v čase. Vyžádejte si zprávu a projděte si dokumentaci k bezpečnosti na {trustHost}."

msgid "Yes. Paradev is the workspace your agents run in, not a model provider. Bring Claude Code, Codex, OpenCode, or any CLI agent, and use your existing accounts or API keys on every plan."
msgstr "Ano. Paradev je pracovní prostor, ve kterém vaši agenti běží, ne poskytovatel modelů. Přineste si Claude Code, Codex, OpenCode nebo libovolného CLI agenta a používejte své stávající účty či API klíče v každém tarifu."
Expand Down
8 changes: 4 additions & 4 deletions packages/i18n/locales/de/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -13987,8 +13987,8 @@ msgstr "Paradev Seiten Demo"
msgid "Paradev Plugins"
msgstr "Paradev-Plugins"

msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at trust.superset.sh."
msgstr "Paradev läuft lokal auf den Rechnern deiner Entwickler. Wir speichern weder deinen Code noch deine KI-Unterhaltungen, und Paradev hat ein SOC-2-Type-II-Audit bei einem unabhängigen Prüfer abgeschlossen. Fordere den Bericht an und sieh dir unsere Sicherheitsdokumentation unter trust.superset.sh an."
msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at {trustHost}."
msgstr "Paradev läuft lokal auf den Rechnern deiner Entwickler. Wir speichern weder deinen Code noch deine KI-Unterhaltungen, und Paradev hat ein SOC-2-Type-II-Audit bei einem unabhängigen Prüfer abgeschlossen. Fordere den Bericht an und sieh dir unsere Sicherheitsdokumentation unter {trustHost} an."

msgid "Paradev started as a hackathon project in November 2025. It was a simple desktop app for managing worktrees."
msgstr "Paradev begann im November 2025 als Hackathon-Projekt. Es war eine simple Desktop-App zum Verwalten von Worktrees."
Expand Down Expand Up @@ -21487,8 +21487,8 @@ msgstr "Ja. Free deckt Einzelpersonen mit 1 Nutzer ab, dazu lokale Arbeitsbereic
msgid "Yes. On plans with cloud workspaces, owners can buy any amount of extra GB-hours at {packPrice} per GB-hour in Settings, Billing. Bought GB-hours are used after the monthly pool and never expire, and auto top-up can buy more when they run low."
msgstr "Ja. Bei Plänen mit Cloud-Workspaces können Owner in Einstellungen, Abrechnung beliebig viele zusätzliche GB-Stunden zu {packPrice} pro GB-Stunde kaufen. Gekaufte GB-Stunden werden nach dem monatlichen Pool genutzt und verfallen nie, und automatisches Nachkaufen kann mehr kaufen, wenn sie knapp werden."

msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at trust.superset.sh."
msgstr "Ja. Paradev hat ein SOC-2-Type-II-Audit bei einem unabhängigen Prüfer abgeschlossen, das unsere Sicherheitskontrollen im laufenden Betrieb über einen Zeitraum abdeckt. Fordere den Bericht an und sieh dir unsere Sicherheitsdokumentation unter trust.superset.sh an."
msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at {trustHost}."
msgstr "Ja. Paradev hat ein SOC-2-Type-II-Audit bei einem unabhängigen Prüfer abgeschlossen, das unsere Sicherheitskontrollen im laufenden Betrieb über einen Zeitraum abdeckt. Fordere den Bericht an und sieh dir unsere Sicherheitsdokumentation unter {trustHost} an."

msgid "Yes. Paradev is the workspace your agents run in, not a model provider. Bring Claude Code, Codex, OpenCode, or any CLI agent, and use your existing accounts or API keys on every plan."
msgstr "Ja. Paradev ist der Arbeitsbereich, in dem deine Agenten laufen, kein Modellanbieter. Bring Claude Code, Codex, OpenCode oder einen beliebigen CLI-Agenten mit und nutze in jedem Tarif deine bestehenden Konten oder API-Schlüssel."
Expand Down
8 changes: 4 additions & 4 deletions packages/i18n/locales/en/messages.po
Original file line number Diff line number Diff line change
Expand Up @@ -13987,8 +13987,8 @@ msgstr "Paradev Pages demo"
msgid "Paradev Plugins"
msgstr "Paradev Plugins"

msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at trust.superset.sh."
msgstr "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at trust.superset.sh."
msgid "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at {trustHost}."
msgstr "Paradev runs locally on your developers' machines. We don't store your code or AI conversations, and Paradev has completed a SOC 2 Type II audit with an independent auditor. Request the report and review our security documentation at {trustHost}."

msgid "Paradev started as a hackathon project in November 2025. It was a simple desktop app for managing worktrees."
msgstr "Paradev started as a hackathon project in November 2025. It was a simple desktop app for managing worktrees."
Expand Down Expand Up @@ -21487,8 +21487,8 @@ msgstr "Yes. Free covers individuals with 1 user, local workspaces, the desktop
msgid "Yes. On plans with cloud workspaces, owners can buy any amount of extra GB-hours at {packPrice} per GB-hour in Settings, Billing. Bought GB-hours are used after the monthly pool and never expire, and auto top-up can buy more when they run low."
msgstr "Yes. On plans with cloud workspaces, owners can buy any amount of extra GB-hours at {packPrice} per GB-hour in Settings, Billing. Bought GB-hours are used after the monthly pool and never expire, and auto top-up can buy more when they run low."

msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at trust.superset.sh."
msgstr "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at trust.superset.sh."
msgid "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at {trustHost}."
msgstr "Yes. Paradev has completed a SOC 2 Type II audit with an independent auditor, covering our security controls in operation over time. Request the report and review our security documentation at {trustHost}."

msgid "Yes. Paradev is the workspace your agents run in, not a model provider. Bring Claude Code, Codex, OpenCode, or any CLI agent, and use your existing accounts or API keys on every plan."
msgstr "Yes. Paradev is the workspace your agents run in, not a model provider. Bring Claude Code, Codex, OpenCode, or any CLI agent, and use your existing accounts or API keys on every plan."
Expand Down
Loading
Loading