← ConvexCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Convex
Snapshot Sep 30, 2026 · 22:46 UTC · version 2.0.1
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "check-updates",
"description": "Check the CURRENT Convex app's pinned components against the latest recommended versions and offer to upgrade them — e.g. the passkey auth component's new email-first sign-in. TRIGGER when the user runs /check-updates or $check-updates, asks 'are my components up to date', 'any updates', 'upgrade auth', 'upgrade my components', or wants the newest features after a quickstart. Applies each upgrade behind a build gate (verify-or-revert) with the user's consent.",
"included_files": [],
"skill_md_contents": "---\nname: check-updates\ndescription: \"Check the CURRENT Convex app's pinned components against the latest recommended versions and offer to upgrade them — e.g. the passkey auth component's new email-first sign-in. TRIGGER when the user runs /check-updates or $check-updates, asks 'are my components up to date', 'any updates', 'upgrade auth', 'upgrade my components', or wants the newest features after a quickstart. Applies each upgrade behind a build gate (verify-or-revert) with the user's consent.\"\nlicense: Apache-2.0\n---\n\n# Check + apply component updates\n\nRun from the app's project root (where `package.json` lives — the `convex-app/`\nsubdir for a quickstart). Detect stale components against the anteater registry:\n\n```bash\ncurl -fsSL https://basic-anteater-667.convex.site/check-updates.mjs -o /tmp/cu.mjs && node /tmp/cu.mjs\n```\n\n- **`COMPONENTS_UP_TO_DATE`** → tell the user everything's current. Done.\n- **`COMPONENTS_STALE=<n>`** + a JSON array → for each entry, summarize for the user:\n the component, `installed → current`, the `summary` (what's new), and whether it's\n `breaking`. Then **ASK before changing anything** — \"Upgrade `<name>` to get\n <summary>? [y/n]\". Never upgrade without an explicit yes.\n\nOn a yes, apply that entry's `migration`:\n1. **Install** the new ref (`migration.install`) with the project's package manager.\n2. **Apply `migration.steps` in order** — the call-site changes. Read the existing code\n first; make the minimal change each step describes. Delegate any `convex/` edits to\n the `convex-expert` skill/subagent.\n3. **GATE — verify or revert.** Run every command in `migration.gate` (e.g.\n `pnpm exec tsc --noEmit`, `pnpm exec next build`). If ANY fails, **revert**\n (`git checkout -- .`, or reinstall the old ref) and tell the user it didn't apply\n cleanly — never leave the app half-migrated.\n4. **Smoke** — give the user the `migration.smoke` check to run (the runtime behavior the\n build gate can't prove), e.g. register → sign out → sign in by the same email.\n\nRules:\n- **`breaking: true`** needs extra care: confirm explicitly, snapshot first (commit/branch),\n and if the steps aren't mechanical, ask the user rather than guessing.\n- **Don't auto-publish.** If the app is already live on `*.convex.app` / a custom domain,\n the upgrade only reaches the live site on re-publish — confirm before re-deploying\n (no surprise downtime on a live domain).\n- One component at a time; gate each before the next.\n"
}SHA-256: a380e88e03a42d36f540917337e90be996bed1815df9137399160fd2a7194745