Skip to content

Fix: initial state handling for env variables in preflight script#7670

Merged
mskorokhodov merged 1 commit into
mainfrom
fix/lab-env-initial-state
Feb 10, 2026
Merged

Fix: initial state handling for env variables in preflight script#7670
mskorokhodov merged 1 commit into
mainfrom
fix/lab-env-initial-state

Conversation

@mskorokhodov

Copy link
Copy Markdown
Collaborator

Background

Description

Checklist

  • Input validation
  • Output encoding
  • Authentication management
  • Session management
  • Access control
  • Cryptographic practices
  • Error handling and logging
  • Data protection
  • Communication security
  • System configuration
  • Database security
  • File management
  • Memory management
  • Testing

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @mskorokhodov, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a bug in the preflight script's environment variable handling. It refines how the env object is constructed, specifically ensuring that env.variables is always an object, even if the incoming env parameter is null or undefined. This change prevents potential runtime errors and improves the stability of the script's execution.

Highlights

  • Environment Variable Initialization: Corrected the initialization of the env object within the runIsolatedLabScript function to properly handle cases where env or env.variables might be undefined, ensuring a robust initial state for environment variables.
Changelog
  • packages/web/app/src/laboratory/lib/preflight.ts
    • Modified the env object initialization to explicitly set variables to an empty object if env?.variables is null or undefined.
Activity
  • No activity has occurred on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mskorokhodov mskorokhodov requested a review from n1ru4l February 10, 2026 11:08
@github-actions

github-actions Bot commented Feb 10, 2026

Copy link
Copy Markdown
Contributor

🚀 Snapshot Release (alpha)

The latest changes of this PR are available as alpha on npm (based on the declared changesets):

Package Version Info
@graphql-hive/yoga 0.47.3-alpha-20260210111259-7f150794eb70b29aabba619c601745efd1dec2d1 npm ↗︎ unpkg ↗︎
hive 9.4.0-alpha-20260210111259-7f150794eb70b29aabba619c601745efd1dec2d1 npm ↗︎ unpkg ↗︎

@github-actions

github-actions Bot commented Feb 10, 2026

Copy link
Copy Markdown
Contributor

🐋 This PR was built and pushed to the following Docker images:

Targets: build

Platforms: linux/amd64

Image Tag: 7f150794eb70b29aabba619c601745efd1dec2d1

@github-actions

Copy link
Copy Markdown
Contributor

💻 Website Preview

The latest changes are available as preview in: https://pr-7670.hive-landing-page.pages.dev

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

The pull request addresses an issue with the initial state handling of environment variables within the preflight script. The change ensures that the env.variables object is properly initialized, preventing potential runtime errors in the worker script when env or env.variables might be null or undefined. The suggested fix correctly handles null and undefined values for env?.variables by using the nullish coalescing operator.

/* javascript */ `
const env = ${JSON.stringify(env)};
const env = {
variables: ${JSON.stringify(env?.variables)} || {},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The current implementation uses || {} after JSON.stringify(env?.variables). If env?.variables is null, JSON.stringify(null) evaluates to the string "null". The expression then becomes "null" || {}, which results in variables: "null" in the worker script. This is incorrect as variables is expected to be an object (Record<string, string>) according to the LaboratoryEnv interface, and will lead to runtime errors when attempting to access properties on it.

To correctly handle both null and undefined values for env?.variables and ensure an empty object is used as a fallback, apply the nullish coalescing operator (??) directly to env?.variables before stringifying.

Suggested change
variables: ${JSON.stringify(env?.variables)} || {},
variables: ${JSON.stringify(env?.variables ?? {})},

@mskorokhodov mskorokhodov merged commit 8138a6c into main Feb 10, 2026
26 checks passed
@mskorokhodov mskorokhodov deleted the fix/lab-env-initial-state branch February 10, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants