← VercelCONTENT HISTORY

Update to Vercel

Snapshot Sep 30, 2026 · 23:18 UTC · version 0.21.4

Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Supporting file metadata differs

Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Supporting files

Before

[]

After

[{"relative_path":"agents/openai.yaml","size_in_bytes":112}]

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /included_files

BEFORE
[]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 112
  }
]
Full snapshot data
{
  "name": "cron-jobs",
  "description": "Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 112
    }
  ],
  "skill_md_contents": "---\nname: cron-jobs\ndescription: Vercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.\nmetadata:\n  priority: 6\n  docs:\n    - \"https://vercel.com/docs/cron-jobs\"\n  sitemap: \"https://vercel.com/sitemap/docs.xml\"\n  pathPatterns:\n    - 'vercel.json'\n    - 'apps/*/vercel.json'\n  bashPatterns: []\n---\n\n# Vercel Cron Jobs\n\nYou are an expert in Vercel Cron Jobs — scheduled serverless function invocations configured in `vercel.json`.\n\n## Configuration\n\nCron jobs are defined in the `crons` array of `vercel.json`:\n\n```json\n{\n  \"crons\": [\n    {\n      \"path\": \"/api/cron/daily-digest\",\n      \"schedule\": \"0 8 * * *\"\n    }\n  ]\n}\n```\n\n## Key Rules\n\n1. **Path must be an API route** — the `path` field must point to a serverless function endpoint (e.g., `/api/cron/...`)\n2. **Schedule uses standard cron syntax** — five-field format: `minute hour day-of-month month day-of-week`\n3. **Verify the request origin** — always check the `Authorization` header matches `CRON_SECRET`:\n\n```ts\n// app/api/cron/route.ts\nexport async function GET(request: Request) {\n  const authHeader = request.headers.get(\"authorization\");\n  if (authHeader !== `Bearer ${process.env.CRON_SECRET}`) {\n    return new Response(\"Unauthorized\", { status: 401 });\n  }\n  // ... your scheduled logic\n  return Response.json({ ok: true });\n}\n```\n\n4. **Hobby plan limits** — max 2 cron jobs, minimum interval of once per day\n5. **Pro plan** — up to 40 cron jobs, minimum interval of once per minute\n6. **Max duration** — cron-triggered functions follow normal function duration limits\n\n## Common Patterns\n\n- **Daily digest**: `\"0 8 * * *\"` (8:00 AM UTC daily)\n- **Every hour**: `\"0 * * * *\"`\n- **Every 5 minutes** (Pro): `\"*/5 * * * *\"`\n- **Weekdays only**: `\"0 9 * * 1-5\"`\n\n## Debugging\n\n- Check deployment logs for cron execution results\n- Use `vercel logs --follow` to watch cron invocations in real time\n- Cron jobs only run on production deployments, not preview deployments\n\n## References\n\n- [Cron Jobs documentation](https://vercel.com/docs/cron-jobs)\n"
}

SHA-256: e6f1688944f96a3a7c435180a993d2adf4a0b10057a01d3b93a0f269e808d10f