Skip to content

fix issue for undefined sessions in theme commands#6828

Open
EvilGenius13 wants to merge 1 commit intomainfrom
fix-session-setup
Open

fix issue for undefined sessions in theme commands#6828
EvilGenius13 wants to merge 1 commit intomainfrom
fix-session-setup

Conversation

@EvilGenius13
Copy link
Contributor

@EvilGenius13 EvilGenius13 commented Feb 5, 2026

WHY are these changes introduced?

Fixes https://github.com/Shopify/developer-tools-team/issues/1024?reload=1
Follow up from the PR to fix default environments

CLI main is failing on commands that don't need a store flag to run such as theme profile. A few other commands are failing with an error Cannot read properties of undefined such as theme init

WHAT is this pull request doing?

Two parter:

  1. I have reverted some of the logic from the other PR back to checking if a command needs authorization and not checking against store flags
  2. The commands failing with error were missing static multiEnvironmentsFlags: RequiredFlags = null which is our way of telling whether these commands support multi env or not. I have added them where needed.

How to test your changes?

Unfortunately we need to test this in a few configurations to make sure we caught every instance.

Run the commands using regular auth (email / password) login

  • shopify theme dev Should pass
  • shopify theme list Should pass
  • shopify theme package Should pass
  • shopify theme check Should pass
  • shopify theme profile Should pass

Run the commands using a default environment ([environments.default]) in your shopify.theme.toml Note: Using the default environment means you do not need to explicitly pass it as an environment.

  • shopify theme dev Should pass
  • shopify theme list Should pass
  • shopify theme package Should pass
  • shopify theme check Should pass
  • shopify theme profile Should fail (can only run using regular auth)

Run the commands using an environment variable (-e my_store) from your shopify.theme.toml

  • shopify theme dev Should pass
  • shopify theme list Should pass
  • shopify theme package Should fail (package doesn't have an environment flag)
  • shopify theme check Should pass
  • shopify theme profile Should fail (can only run using regular auth)

Run the commands using two environment variables (-e my_store, -e my_other_store ) from your shopify.theme.toml

  • shopify theme dev Should fail (can't run in multi env mode)
  • shopify theme list Should pass
    I shortened this one since only a few commands run in multi env mode

Post-release steps

Measuring impact

How do we know this change was effective? Please choose one:

  • n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
  • Existing analytics will cater for this addition
  • PR includes analytics changes to measure impact

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes

@EvilGenius13 EvilGenius13 marked this pull request as ready for review February 5, 2026 21:12
@EvilGenius13 EvilGenius13 requested review from a team as code owners February 5, 2026 21:12
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Coverage report

St.
Category Percentage Covered / Total
🟡 Statements
79.63% (+0.4% 🔼)
14468/18169
🟡 Branches
73.94% (+0.83% 🔼)
7174/9702
🟡 Functions
79.8% (+0.43% 🔼)
3689/4623
🟡 Lines
79.98% (+0.4% 🔼)
13678/17101
Show new covered files 🐣
St.
File Statements Branches Functions Lines
🟢
... / admin-as-app.ts
100% 100% 100% 100%
🟢
... / metafield_definitions.ts
100% 100% 100% 100%
🟢
... / metaobject_definitions.ts
100% 100% 100% 100%
🟢
... / bulk-operation-cancel.ts
100% 100% 100% 100%
🟢
... / bulk-operation-run-mutation.ts
100% 100% 100% 100%
🟢
... / bulk-operation-run-query.ts
100% 100% 100% 100%
🟢
... / get-bulk-operation-by-id.ts
100% 100% 100% 100%
🟢
... / list-bulk-operations.ts
100% 100% 100% 100%
🟢
... / staged-uploads-create.ts
100% 100% 100% 100%
🟢
... / fetch_store_by_domain.ts
100% 100% 100% 100%
🟢
... / organization_exp_flags.ts
100% 100% 100% 100%
🔴
... / import-custom-data-definitions.ts
0% 100% 0% 0%
🔴
... / cancel.ts
0% 100% 0% 0%
🔴
... / execute.ts
0% 0% 0% 0%
🔴
... / status.ts
0% 0% 0% 0%
🔴
... / pull.ts
0% 100% 0% 0%
🟡
... / execute-operation.ts
75.68% 50% 100% 75.68%
🔴
... / pull.ts
0% 0% 0% 0%
🟢
... / bulk-operation-status.ts
96.55% 92.11% 100% 100%
🟢
... / cancel-bulk-operation.ts
100% 100% 100% 100%
🟢
... / constants.ts
100% 100% 100% 100%
🟢
... / download-bulk-operation-results.ts
100% 100% 100% 100%
🟢
... / execute-bulk-operation.ts
87.14% 83.67% 100% 88.41%
🟢
... / format-bulk-operation-status.ts
100% 100% 100% 100%
🟢
... / run-mutation.ts
100% 100% 100% 100%
🟢
... / run-query.ts
100% 100% 100% 100%
🟡
... / stage-file.ts
73.53% 62.5% 85.71% 72.73%
🟢
... / watch-bulk-operation.ts
100% 94.74% 100% 100%
🟢
... / utilities.ts
100% 100% 100% 100%
🟢
... / declarative-definitions.ts
98.54% 93.18% 100% 98.51%
🟢
... / common.ts
97.62% 95% 100% 97.06%
🟢
... / execute-command-helpers.ts
100% 100% 100% 100%
🟢
... / file-formatter.ts
100% 100% 100% 100%
🔴
... / promiseWithResolvers.ts
33.33% 50% 50% 33.33%
🟢
... / theme-listing.ts
100% 100% 100% 100%
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🔴
... / execute.ts
0%
0% (-100% 🔻)
0% 0%
🟢
... / loader.ts
94.06% (+0.2% 🔼)
86.41% (-0.42% 🔻)
97.17% (+0.11% 🔼)
94.85% (+0.18% 🔼)
🟢
... / extension-instance.ts
84.8% (+0.23% 🔼)
77.6% (-0.91% 🔻)
92.06% (+0.13% 🔼)
85.11% (+0.24% 🔼)
🟡
... / specification.ts
69.64% (+0.55% 🔼)
75.61% (+2.44% 🔼)
76.47% (-1.31% 🔻)
69.39% (+0.64% 🔼)
🟢
... / ui_extension.ts
88.61% (-6.22% 🔻)
78.57% (-2.68% 🔻)
85.19% (-14.81% 🔻)
90.79% (-5.67% 🔻)
🟡
... / dev.ts
80% (-1.97% 🔻)
70% (-1.43% 🔻)
76.19% (-3.81% 🔻)
77.97% (-2.03% 🔻)
🟢
... / store-context.ts
100%
82.35% (-0.98% 🔻)
100% 100%
🟢
... / Logs.tsx
90%
90.91% (-5.97% 🔻)
100% 90%
🟢
... / fetch.ts
84.21% (+0.88% 🔼)
82.35% (-0.98% 🔻)
75%
85.29% (+1.42% 🔼)
🟡
... / select-app.ts
63.33% (-24.17% 🔻)
50% (-20% 🔻)
100%
64.29% (-29.05% 🔻)
🟢
... / app-event-watcher-handler.ts
86.36% (-4.11% 🔻)
75% 86.67%
85.71% (-5.19% 🔻)
🟡
... / middlewares.ts
77.33% (-0.87% 🔻)
75%
68.42% (-1.58% 🔻)
76.39% (-0.94% 🔻)
🔴
... / server.ts
1.23% (-0.02% 🔻)
0% 0%
1.3% (-0.02% 🔻)
🟢
... / setup-dev-processes.ts
93.62% (+0.14% 🔼)
66.67% (-4.76% 🔻)
90%
92.86% (+0.17% 🔼)
🟢
... / bundle.ts
93.22%
63.33% (-3.33% 🔻)
94.12% (+5.88% 🔼)
96.3%
🟢
... / developer-platform-client.ts
84.62% (-1.5% 🔻)
71.43% (+0.84% 🔼)
81.82% (+1.82% 🔼)
93.75% (+0.42% 🔼)
🔴
... / http-reverse-proxy.ts
58.97% (-4.91% 🔻)
37.04% (-2.96% 🔻)
58.33% (-5.3% 🔻)
59.46% (-5.25% 🔻)
🟢
... / api.ts
87.07% (-0.43% 🔻)
76.71% (-0.1% 🔻)
100%
86.49% (-0.43% 🔻)
🟢
... / device-authorization.ts
88.24% (-0.83% 🔻)
76.47% (-2.94% 🔻)
100%
88.24% (-0.83% 🔻)
🟢
... / SingleTask.tsx
84.21% (-15.79% 🔻)
50% (-50% 🔻)
80% (-20% 🔻)
84.21% (-15.79% 🔻)
🔴
... / environment.ts
35% (-5% 🔻)
41.18%
40% (-10% 🔻)
36.84% (-5.26% 🔻)
🔴
... / ui.tsx
49.21% (-2.41% 🔻)
40% (-8.39% 🔻)
54.55% (+1.42% 🔼)
48.39% (-2.43% 🔻)
🟢
... / fqdn.ts
93.62% (-1.94% 🔻)
88% (-3.3% 🔻)
100%
93.62% (-1.94% 🔻)
🟢
... / console.ts
81.82% (+15.15% 🔼)
75% (-25% 🔻)
100% (+33.33% 🔼)
81.82% (+15.15% 🔼)
🟢
... / init.ts
88% (-0.89% 🔻)
71.43% (+4.76% 🔼)
86.67% (+4.85% 🔼)
88% (-0.89% 🔻)
🟢
... / storefront-renderer.ts
90.2% (-0.54% 🔻)
78.95%
81.82% (-1.52% 🔻)
90.2% (-0.54% 🔻)
🟡
... / theme-polling.ts
67.57% (-0.49% 🔻)
68.75% 78.57%
66.18% (-1.47% 🔻)

Test suite run success

3718 tests passing in 1438 suites.

Report generated by 🧪jest coverage report action from 5e925f9

Copy link
Contributor

@aswamy aswamy left a comment

Choose a reason for hiding this comment

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

Amazing stuff! 🥇

Tophatted and everything looks great.

✅ Run commands with email/password
✅ Run commands with default environment
✅ Run commands with -e flag
✅ Run commands with multiple -e flags

Question: theme check doesn't need you to be logged in - but does take environment as a flag? What kind of configuration can you have when you pass in an env?

@EvilGenius13
Copy link
Contributor Author

Question: theme check doesn't need you to be logged in - but does take environment as a flag? What kind of configuration can you have when you pass in an env?

It lets you set a path to the theme folder you want to check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants