{"id":"src_R30eUDS-U7zgCrazPydji","slug":"convex-ship-changelog","name":"Ship Changelog","type":"scrape","url":"https://ship.convex.dev/changelog","orgId":"org_wMWhUVQMC186wzVT1_rIn","productId":null,"productSlug":null,"org":{"id":"org_wMWhUVQMC186wzVT1_rIn","slug":"convex","name":"Convex"},"isPrimary":true,"isHidden":false,"discovery":"curated","metadata":"{\"sourceActor\":{\"nextAlarmAt\":null,\"lastAlarmAt\":\"2026-09-14T03:11:20.558Z\",\"managed\":false}}","notice":null,"kind":null,"stars":null,"starsFetchedAt":null,"releaseCount":20,"releasesLast30Days":0,"avgReleasesPerWeek":1.6,"latestVersion":"1.45.0","latestDate":"2026-08-21T00:00:00.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-09-13T23:15:58.802Z","lastPolledAt":"2026-09-13T23:12:17.090Z","changeDetectedAt":null,"trackingSince":"2026-07-02T00:00:00.000Z","releases":[{"id":"rel_kr-i43nOCoO6d9X4F0KaS","version":"1.45.0","type":"feature","title":"convex 1.45.0","summary":"Local deployments now upgrade to a new backend version in place, bypassing snapshot export and import, so upgrades no longer depend on data size or prompt about transferring it. The Convex MCP server now supports the stateless MCP protocol (2026-07-28 MCP specification), and a new getServiceToken function generates service tokens for first-party Convex services.","titleGenerated":"Convex 1.45.0 upgrades local deployments in place and adds stateless MCP support","titleShort":"Local deployments upgrade in place; stateless MCP supported","breaking":"unknown","importance":3,"content":"Local deployments now upgrade to a new backend version in place, instead of going through a snapshot export and import. Upgrades no longer depend on the size of your local data, and no longer prompt about transferring it. The Convex MCP server (npx convex mcp) now supports the stateless MCP protocol (2026-07-28 MCP specification). Added a new getServiceToken function that generates service tokens for first-party Convex services. This will be used by the upcoming Convex AI gateway. Improved the error message when npx convex export fails because a snapshot export is already in progress.","publishedAt":"2026-08-21T00:00:00.000Z","fetchedAt":"2026-08-26T21:32:38.393Z","url":"https://ship.convex.dev/changelog/convex-1-45-0","media":[],"coverageCount":0},{"id":"rel_Oe41ChBCNnjDFtui9nm_2","version":"v1.45.0","type":"feature","title":"convex v1.45.0","summary":"Local deployments now upgrade to a new backend version in place, skipping the snapshot export and import that previously scaled with data size. The Convex MCP server supports the stateless MCP protocol, and a new getServiceToken function generates service tokens for first-party services.","titleGenerated":"Convex v1.45.0 upgrades local deployments in place, adds getServiceToken","titleShort":"Local deployments upgrade in place; getServiceToken added","breaking":"unknown","importance":3,"content":"Local deployments now upgrade to a new backend version in place, instead of going through a snapshot export and import. Upgrades no longer depend on the size of your local data, and no longer prompt about transferring it.\n\nThe Convex MCP server (npx convex mcp) now supports the stateless MCP protocol (2026-07-28 MCP specification).\n\nAdded a new getServiceToken function that generates service tokens for first-party Convex services. This will be used by the upcoming Convex AI gateway.\n\nImproved the error message when npx convex export fails because a snapshot export is already in progress.","publishedAt":"2026-08-21T00:00:00.000Z","fetchedAt":"2026-08-23T21:14:55.638Z","url":"https://ship.convex.dev/changelog#v1-45-0","media":[],"coverageCount":0},{"id":"rel_8NgWU8XQoPRYWmNdd-4Hu","version":"v4.0.0","type":"feature","title":"ESLint Plugin 4.0.0","summary":"Adds a new @convex-dev/no-schema-import-cycle rule, enabled by default as an error, that detects when schema.ts imports files that themselves depend on the schema.","titleGenerated":"Convex ESLint Plugin 4.0.0 adds schema import cycle rule","titleShort":"New rule flags schema import cycles","breaking":"unknown","importance":3,"content":"Add a new rule @convex-dev/no-schema-import-cycle (enabled by default as an error) that detects cases where schema.ts imports files that themselves depend on the schema.","publishedAt":"2026-08-14T00:00:00.000Z","fetchedAt":"2026-08-14T20:23:11.926Z","url":"https://ship.convex.dev/changelog#v4-0-0","media":[],"coverageCount":0},{"id":"rel_uFqAwTDRbk6xtvAZTn6T5","version":null,"type":"feature","title":"#315 Scoped authorization tokens to prevent agent risk","summary":"Development-environment tokens like npx convex dev can now be scoped to narrower permissions than the full user, preventing agents from pushing to production inadvertently.","titleGenerated":"Ship Changelog #315 adds scoped authorization tokens to prevent agent risk","titleShort":"Scoped auth tokens limit dev-key agent blast radius","breaking":"unknown","importance":3,"content":"Currently, your dev environment (`npx convex dev`) always acts \"as you\" when operating in an authenticated Convex with your Convex Cloud accounts. That means if you're a project administrator, you can push prod. This is a problem when agents \"helpfully\" decide to run `npx convex deploy` before you're ready. The ability to limit the power of development keys to narrower scopes than the full power of the user is important for agentic engineering. (1,255 backers)","publishedAt":"2026-08-13T00:00:00.000Z","fetchedAt":"2026-08-17T20:41:12.556Z","url":"https://ship.convex.dev/changelog/item-315-scoped-authorization-tokens-to-prevent-agent-risk","media":[],"coverageCount":0},{"id":"rel_U7abpC6ylR1MAJY-LqYu1","version":null,"type":"feature","title":"#345 Streaming Export APIs","summary":"Public deployment APIs for continuous streaming export of data are now available.","titleGenerated":"Convex Ship adds public streaming export APIs","titleShort":"Streaming export APIs now public","breaking":"unknown","importance":3,"content":"Public deployment APIs for continuous streaming export of data. (290 backers)","publishedAt":"2026-08-13T00:00:00.000Z","fetchedAt":"2026-08-17T20:41:12.556Z","url":"https://ship.convex.dev/changelog/item-345-streaming-export-apis","media":[],"coverageCount":0},{"id":"rel_1YAakT6rZD-Lx4n3fzJL-","version":null,"type":"feature","title":"#288 HTTP headers in all functions","summary":"All Convex functions can now access HTTP headers, useful for checking IPs or custom client headers like version or agent—a long-requested feature with 48 upvotes.","titleGenerated":"Ship adds HTTP header access to all Convex functions","titleShort":"HTTP headers now accessible in all functions","breaking":"unknown","importance":3,"content":"Feature request: It is useful to have access to HTTP headers to check IP or custom headers from the client like version or agent. Currently there is no way to do it. (48 backers)","publishedAt":"2026-08-13T00:00:00.000Z","fetchedAt":"2026-08-17T20:41:12.556Z","url":"https://ship.convex.dev/changelog/item-288-http-headers-in-all-functions","media":[],"coverageCount":0},{"id":"rel_WhWGgWQ1DWBbI3UxnTxf0","version":"v1.44.0","type":"feature","title":"convex v1.44.0","summary":"schema.doc(tableName) now returns the validator for whole documents of a table, including id and creationTime system fields, with schema.id() and docValidator() added as companions. ConvexSiteUrl and ConvexCloudUrl are available on env by default in generated server types, and fixed a referential stability bug in ConvexProviderWithAuth plus a misleading npx convex login status report.","titleGenerated":"Convex v1.44.0 adds schema.doc() document validators and env URL vars","titleShort":"schema.doc() validators; auth context stability fixed","breaking":"unknown","importance":3,"content":"schema.doc(tableName) returns the validator for whole documents of a table: the table's own validator with the id and creationTime system fields added (to each member, for tables defined with a union). schema.id(tableName) is v.id(tableName) restricted to the table names in the schema. docValidator(tableName, tableDefinition) from convex/server does the same as schema.doc when you only have a table definition. The server-provided environment variables CONVEXSITEURL and CONVEXCLOUDURL are now available on env by default in _generated/server.d.ts, along with other environment variables specified in convex/convex.config.ts. Fixed a bug where the context value provided by ConvexProviderWithAuth was not referentially stable. Fixed a bug where npx convex login status would report misleading results when the user is logged in but does not have access to the current project.","publishedAt":"2026-08-13T00:00:00.000Z","fetchedAt":"2026-08-14T20:23:11.926Z","url":"https://ship.convex.dev/changelog#v1-44-0","media":[],"coverageCount":0},{"id":"rel_NbryKwh3obHLHanPn_Y8m","version":"v3.0.0","type":"feature","title":"ESLint Plugin 3.0.0","summary":"A new @convex-dev/no-top-of-hour-crons rule (enabled by default as a warning) flags cron jobs scheduled exactly on the hour. @convex-dev/no-collect-in-query and @convex-dev/explicit-table-ids now work without type-aware linting, and error messages recommend enabling it when disabled.","titleGenerated":"Convex ESLint Plugin 3.0.0 flags top-of-hour cron jobs by default","titleShort":"New default rule flags top-of-hour cron jobs","breaking":"unknown","importance":3,"content":"Add a new rule @convex-dev/no-top-of-hour-crons (enabled by default as a warning) that flags cron jobs scheduled exactly on the hour. The top of the hour is the busiest time on the clock for most apps, so moving background work off-peak (or omitting minuteUTC to let Convex pick a minute) helps your app scale. This is a major version bump because the new default-enabled rule can surface new warnings in existing codebases. The @convex-dev/no-collect-in-query and @convex-dev/explicit-table-ids rules now work when type-aware linting is disabled. When type-aware linting is disabled, error messages now recommend enabling it.","publishedAt":"2026-08-01T00:00:00.000Z","fetchedAt":"2026-08-14T20:23:11.926Z","url":"https://ship.convex.dev/changelog#v3-0-0","media":[],"coverageCount":0},{"id":"rel_NVebAMf1bI8fvsbJsQK-1","version":"v1.43.0","type":"feature","title":"convex v1.43.0","summary":"New CLI commands `npx convex deployment usage` and `npx convex deployment usage-limits` let you view resource usage and edit limits. Mutations can now reference their upcoming commit timestamp via `ctx.db.vars.commitTs` (with a matching `v.commitTs()` validator), useful for FIFO queues, and hourly cron jobs can omit `minuteUTC` for auto-assigned start times.","titleGenerated":"Convex v1.43.0 adds deployment usage CLI and `ctx.db.vars.commitTs` for FIFO queues","titleShort":"Deployment usage CLI; commit timestamp placeholder for FIFO queues","breaking":"unknown","importance":3,"content":"- Added `npx convex deployment usage` and `npx convex deployment usage-limits` CLI commands to view a deployment's current resource usage, and view or edit deployment usage limits.\n- Hourly cron jobs can now omit the `minuteUTC` parameter; Convex will automatically choose a stable start time within the scheduled hour, avoiding concentrating jobs at the top of the hour.\n- Mutations can now reference their upcoming commit timestamp with `ctx.db.vars.commitTs`, a placeholder replaced with a strictly ordered Int64 value at commit time (useful for FIFO queues).\n- Added a new `v.commitTs()` validator accepting either the placeholder or an Int64 commit timestamp.\n- The Convex CLI can now find the right TypeScript compiler when using side-by-side TypeScript 6 and 7 installations.\n- Deprecated the `typescriptCompiler` parameter in `convex.json` since Convex now automatically picks the right binary with TypeScript 7.\n- Components with only optional environment variables no longer require the `env` argument in `app.use(component, { ... })`.\n- Fixed a bug where `app.use()` failed to require a second argument when a component has required environment variables.\n- Fixed a bug in `usePaginatedQuery_experimental` where page splits were handled incorrectly.","publishedAt":"2026-07-31T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.429Z","url":"https://ship.convex.dev/changelog/convex-v1-43-0","media":[],"coverageCount":0},{"id":"rel_zP0XaHcM9In1ysGbPNYfC","version":null,"type":"feature","title":"Lower Price for Paused Deployments","summary":"Business customers now pay a lower overhead cost for paused deployments, previously charged the same as unpaused ones, better supporting teams with many idle deployments.","titleGenerated":"Convex lowers price for paused deployments for business customers","titleShort":"Paused deployments cost less for business plans","breaking":"unknown","importance":3,"content":"For business customers, paused and unpaused deployments previously had the same overhead cost. Convex lowered the cost of paused deployments to better support teams with large numbers of idle deployments (e.g. app builders).","publishedAt":"2026-07-29T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.429Z","url":"https://ship.convex.dev/changelog/item-346-lower-price-for-paused-deployments","media":[],"coverageCount":0},{"id":"rel_vBnpOKLCffrtbnQP60MF-","version":null,"type":"feature","title":"#382 Quickly search and navigate between projects, deployments, and data on the dashboard","summary":"The Convex dashboard now supports quickly searching and navigating between projects, deployments, and data.","titleGenerated":"Convex dashboard adds quick search and navigation between projects","titleShort":"Dashboard search and navigation added","breaking":"unknown","importance":2,"content":"It would be nice to be able to quickly switch between my projects and deployments on the Convex dashboard","publishedAt":"2026-07-28T00:00:00.000Z","fetchedAt":"2026-08-29T21:49:20.806Z","url":"https://ship.convex.dev/changelog#382-quickly-search-and-navigate-between-projects-deployments","media":[],"coverageCount":0},{"id":"rel_Xgv7zrDMt0zT8sgLBob-n","version":null,"type":"feature","title":"Quickly search and navigate between projects, deployments, and data on the dashboard","summary":"You can now quickly switch between projects and deployments on the Convex dashboard using search and navigation.","titleGenerated":"Ship Changelog: Convex dashboard adds quick search and navigation between projects","titleShort":"Dashboard search lets you quickly switch projects","breaking":"unknown","importance":2,"content":"Added the ability to quickly switch between projects and deployments on the Convex dashboard via search and navigation.","publishedAt":"2026-07-28T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.429Z","url":"https://ship.convex.dev/changelog/item-382-quickly-search-and-navigate-between-projects-deplo","media":[],"coverageCount":0},{"id":"rel_9Uzjd1a4AAx_wmyKPm3K4","version":null,"type":"feature","title":"#379 Data Sync / Streaming Export API","summary":"A public API now enables continuous streaming export of Convex data to other data locations, ideal for grayfield projects spanning multiple stacks.","titleGenerated":"Convex Ship Changelog #379 adds public streaming export API for data sync","titleShort":"Streaming export API for data sync now public","breaking":"unknown","importance":3,"content":"Public API for continuous streaming export - to sync data from convex to other data locations. Good for grayfield projects where your data is in between multiple stacks.","publishedAt":"2026-07-24T00:00:00.000Z","fetchedAt":"2026-08-20T20:57:37.016Z","url":"https://ship.convex.dev/changelog#379-data-sync-streaming-export-api","media":[],"coverageCount":0},{"id":"rel_NkKPmlF7GmVWPj7gtfgOl","version":null,"type":"feature","title":"Data Sync / Streaming Export API","summary":"New public API enables continuous streaming export of Convex data to other data locations, supporting greenfield and brownfield projects where data spans multiple stacks.","titleGenerated":"Convex adds public streaming export API for continuous data sync","titleShort":"Streaming export API syncs Convex data continuously","breaking":"unknown","importance":3,"content":"Added a public API for continuous streaming export, allowing data to be synced from Convex to other data locations. Useful for greenfield/brownfield projects where data spans multiple stacks.","publishedAt":"2026-07-24T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.429Z","url":"https://ship.convex.dev/changelog/item-379-data-sync-streaming-export-api","media":[],"coverageCount":0},{"id":"rel_If9D-osw025SLrlWFjUxA","version":null,"type":"feature","title":"Allow logging into Convex with a Password or Passkey (+MFA)","summary":"Convex Dashboard and CLI now support logging in with a Password or Passkey, in addition to Google and GitHub, along with MFA for more secure access.","titleGenerated":"Convex adds password and passkey login with MFA support","titleShort":"Password, passkey, and MFA login added","breaking":"unknown","importance":3,"content":"The Convex Dashboard and CLI previously only supported authentication via Google or GitHub. Added support for logging in with Password or Passkey, plus MFA, for more convenient and secure logins.","publishedAt":"2026-07-24T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.429Z","url":"https://ship.convex.dev/changelog/item-378-allow-logging-into-convex-with-a-password-or-passk","media":[],"coverageCount":0},{"id":"rel_vBQIPq_ErNJrGLi7--Dh4","version":null,"type":"feature","title":"Longer-running actions","summary":"Actions can now run for substantially longer durations, helping teams handle heavy imports, large batch jobs, and slow third-party integrations more reliably.","titleGenerated":"Ship Changelog: actions now run substantially longer for heavy jobs","titleShort":"Actions run substantially longer for heavy jobs","breaking":"unknown","importance":3,"content":"Actions can now run for substantially longer durations, helping teams handle heavy imports, large batch jobs, and slow third-party integrations more reliably.","publishedAt":"2026-07-17T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.613Z","url":"https://ship.convex.dev/changelog/item-237-longer-running-actions","media":[],"coverageCount":0},{"id":"rel_RfAtk6R1bU7DkEhiXaPdK","version":"v1.42.3","type":"feature","title":"Convex v1.42.3","summary":"Fixed a bug where the codegen did not sort module paths consistently with other platforms on Windows. This completes a fix partially applied in 1.42.2.","titleGenerated":"Convex v1.42.3 completes Windows codegen module path sorting fix","titleShort":"Windows codegen sorts module paths consistently","breaking":"unknown","importance":1,"content":"Fixed a bug where the codegen would not sort module paths in an order consistent with other platforms when running on Windows. This completes a fix that was only partially applied in 1.42.2.","publishedAt":"2026-07-16T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.613Z","url":"https://ship.convex.dev/changelog/convex-v1-42-3","media":[],"coverageCount":0},{"id":"rel_D8bX5dFuANJtkCvDa7Oea","version":null,"type":"feature","title":"Customizable deployment-level usage limits","summary":"You can now configure granular usage limits for individual deployments, such as \"Allow 50 GB of DB I/O per month.\"","titleGenerated":"Convex adds customizable deployment-level usage limits","titleShort":"Deployment-level usage limits now configurable","breaking":"unknown","importance":3,"content":"Added the ability to configure granular usage limits for individual deployments, e.g. \"Allow 50 GB of DB I/O per month.\"","publishedAt":"2026-07-15T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.613Z","url":"https://ship.convex.dev/changelog/item-367-customizable-deployment-level-usage-limits","media":[],"coverageCount":0},{"id":"rel_-qZeKqoktu8MJu5RdydHG","version":"v1.42.2","type":"feature","title":"convex v1.42.2","summary":"Mutations and actions can now read the raw authentication token via `authToken` in `ctx.meta.getRequestMetadata()`. Fixed a circular import in `convex/browser` affecting `ConvexHttpClient`, a `ConvexProviderWithClerk` bug that ignored session changes, and a Windows codegen sorting inconsistency.","titleGenerated":"Convex v1.42.2 exposes raw auth token and fixes ConvexHttpClient import","titleShort":"Mutations can read raw auth token; import and Clerk session bugs fixed","breaking":"unknown","importance":2,"content":"- Mutations and actions can now read the raw authentication token used in the request via `authToken` in `ctx.meta.getRequestMetadata()`.\n- Fixed a circular import in `convex/browser` that caused issues when using `ConvexHttpClient` in some JavaScript environments.\n- Fixed a bug in `ConvexProviderWithClerk` that caused the Convex client to ignore session changes in some situations.\n- Fixed a bug where the codegen would not sort module paths in an order consistent with other platforms when running on Windows.\n- When running `npx convex dev` outside a Convex project, the CLI now returns an error message immediately instead of first asking the user to select a project and then failing later.","publishedAt":"2026-07-14T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.613Z","url":"https://ship.convex.dev/changelog/convex-v1-42-2","media":[],"coverageCount":0},{"id":"rel_Qyk08gB_vFX1yVP3Sf10D","version":null,"type":"feature","title":"Schema visualization on the dashboard","summary":"Convex dashboard now displays a visual diagram of a deployment's schema.","titleGenerated":"Convex dashboard adds visual schema diagram","titleShort":"Dashboard shows visual schema diagram","breaking":"unknown","importance":2,"content":"Added a visual diagram of a deployment's schema on the Convex dashboard.","publishedAt":"2026-07-02T00:00:00.000Z","fetchedAt":"2026-08-11T19:30:26.613Z","url":"https://ship.convex.dev/changelog/item-373-schema-visualization-on-the-dashboard","media":[],"coverageCount":0}],"pagination":{"nextCursor":null,"limit":20},"summaries":{"rolling":null,"monthly":[]}}