Conversation
|
We detected some changes at Caution DO NOT create changesets for features which you do not wish to be included in the public changelog of the next CLI release. |
Add supported_features.runs_offline configuration option for UI extensions that enables offline mode. The TOML config uses `runs_offline` but it is transformed to `offline_mode` when sent to the backend API. - Add runs_offline to SupportedFeaturesSchema - Transform runs_offline -> offline_mode in deployConfig for backend - Add offlineMode to dev server payload for local development - Add comprehensive tests for all scenarios Co-authored-by: Cursor <cursoragent@cursor.com>
Update remaining test fixtures to use the new runs_offline field name in the configuration schema. Co-authored-by: Cursor <cursoragent@cursor.com>
dbd1a35 to
b31410f
Compare
Coverage report
Test suite run success3768 tests passing in 1448 suites. Report generated by 🧪jest coverage report action from 631a24e |
|
@aaronschubert0 I'll merge this once the backend PR hits prod, that way we can tophat this full flow against core |
| }, | ||
| supportedFeatures: { | ||
| offlineMode: extension.configuration.supported_features?.offline_mode ?? false, | ||
| offlineMode: extension.configuration.supported_features?.runs_offline ?? false, |
There was a problem hiding this comment.
@js-goupil should offlineMode be adjusted here?
Backend now accepts runs_offline directly, no need to transform to offline_mode. Pass supported_features through as-is. Co-authored-by: Cursor <cursoragent@cursor.com>
b31410f to
631a24e
Compare
|
|
||
| const SupportedFeaturesSchema = zod.object({ | ||
| offline_mode: zod.boolean().optional(), | ||
| runs_offline: zod.boolean().optional(), |
There was a problem hiding this comment.
Backwards-incompatible config rename with no compatibility layer (silent behavior change)
The schema rename from offline_mode → runs_offline removes support for the legacy key entirely. Any existing extension using:
[extensions.supported_features]
offline_mode = truewill now have that value ignored by Zod parsing (unknown key), meaning supported_features will not contain the flag and downstream code will default it to false. This is a silent behavioral regression: extensions that previously ran with offline mode enabled will now be treated as not running offline.
User impact: Merchants/devs upgrading CLI with existing extensions won’t get the expected “offline mode” behavior during dev/deploy without any clear error; could cause features to malfunction in offline scenarios.
Scale: Potentially all existing extensions relying on the old key.
|
🤖 Code Review · #projects-dev-ai for questions ✅ Complete - 1 findings 📋 History✅ 1 findings |


WHY are these changes introduced?
We are renaming offline_mode to runs_offline after some feedback from a GSD review. All of the internal API is left as offline_mode in order to ship this and reduce the amount of friction for now. We can migrate/refactor later if we decide it's worthwhile.
WHAT is this pull request doing?
Just a rename for the developer facing toml
How to test your changes?
supported_features.runs_offlineset totrueorfalsepnpm shopify app dev --path {Path to extension}to run this app locally and deploy the draft to your dev shopMeasuring impact
How do we know this change was effective? Please choose one:
Checklist