Skip to content

Conversation

@waleedlatif1
Copy link
Collaborator

Summary

  • Use direct process.env.NODE_ENV and process.env.LOG_LEVEL access instead of dynamic process.env[key]
  • Fixes client-side debug logs appearing in production (webpack couldn't inline the dynamic access)

Type of Change

  • Bug fix

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Jan 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Review Updated (UTC)
docs Skipped Skipped Jan 21, 2026 5:59pm

Request Review

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 21, 2026

Greptile Summary

Replaced dynamic process.env[key] pattern with direct property access (process.env.NODE_ENV and process.env.LOG_LEVEL) to enable webpack's dead code elimination during bundling.

  • Changed getEnvVar(key) helper to separate getNodeEnv() and getLogLevel() functions with direct env access
  • Removed generic environment variable accessor that prevented webpack from inlining values
  • Webpack can now properly eliminate debug logs in production client bundles
  • Removed redundant comments that simply described code behavior

Confidence Score: 5/5

  • Safe to merge - focused bug fix with correct implementation
  • The changes correctly address the webpack inlining issue by replacing dynamic property access with static property access. The refactoring maintains identical runtime behavior while enabling build-time optimizations. No breaking changes or edge cases introduced.
  • No files require special attention

Important Files Changed

Filename Overview
packages/logger/src/index.ts Replaced dynamic process.env[key] access with direct process.env.NODE_ENV and process.env.LOG_LEVEL access to enable webpack dead code elimination

Sequence Diagram

sequenceDiagram
    participant App as Application Code
    participant Logger as Logger Class
    participant EnvFuncs as Environment Functions
    participant ProcessEnv as process.env
    participant Webpack as Webpack/Bundler

    Note over App,Webpack: Build Time
    Webpack->>ProcessEnv: Check process.env.NODE_ENV (direct access)
    ProcessEnv-->>Webpack: "production"
    Webpack->>Webpack: Inline value & eliminate dead code
    Note over Webpack: Removes debug logs in production build

    Note over App,Webpack: Runtime
    App->>Logger: createLogger("MyModule")
    Logger->>EnvFuncs: getNodeEnv()
    EnvFuncs->>ProcessEnv: process.env.NODE_ENV (direct access)
    ProcessEnv-->>EnvFuncs: "production"
    EnvFuncs-->>Logger: "production"
    
    Logger->>EnvFuncs: getLogLevel()
    EnvFuncs->>ProcessEnv: process.env.LOG_LEVEL (direct access)
    ProcessEnv-->>EnvFuncs: undefined
    EnvFuncs-->>Logger: undefined
    
    Logger->>Logger: getMinLogLevel() -> ERROR
    Logger->>Logger: shouldLog(DEBUG) -> false (client-side)
    Note over Logger: Production client logs blocked
Loading

@waleedlatif1 waleedlatif1 merged commit ea49640 into staging Jan 21, 2026
11 checks passed
@waleedlatif1 waleedlatif1 deleted the fix/xustand branch January 21, 2026 18:14
waleedlatif1 added a commit that referenced this pull request Jan 22, 2026
* fix(zustand): updated to useShallow from deprecated createWithEqualityFn (#2919)

* fix(logger): use direct env access for webpack inlining (#2920)

* fix(notifications): text overflow with line-clamp (#2921)

* chore(helm): add env vars for Vertex AI, orgs, and telemetry (#2922)

* fix(auth): improve reset password flow and consolidate brand detection (#2924)

* fix(auth): improve reset password flow and consolidate brand detection

* fix(auth): set errorHandled for EMAIL_NOT_VERIFIED to prevent duplicate error

* fix(auth): clear success message on login errors

* chore(auth): fix import order per lint

* fix(action-bar): duplicate subflows with children (#2923)

* fix(action-bar): duplicate subflows with children

* fix(action-bar): add validateTriggerPaste for subflow duplicate

* fix(resolver): agent response format, input formats, root level (#2925)

* fix(resolvers): agent response format, input formats, root level

* fix response block initial seeding

* fix tests

* fix(messages-input): fix cursor alignment and auto-resize with overlay (#2926)

* fix(messages-input): fix cursor alignment and auto-resize with overlay

* fixed remaining zustand warnings

* fix(stores): remove dead code causing log spam on startup (#2927)

* fix(stores): remove dead code causing log spam on startup

* fix(stores): replace custom tools zustand store with react query cache

* improvement(ui): use BrandedButton and BrandedLink components (#2930)

- Refactor auth forms to use BrandedButton component
- Add BrandedLink component for changelog page
- Reduce code duplication in login, signup, reset-password forms
- Update star count default value

* fix(custom-tools): remove unsafe title fallback in getCustomTool (#2929)

* fix(custom-tools): remove unsafe title fallback in getCustomTool

* fix(custom-tools): restore title fallback in getCustomTool lookup

Custom tools are referenced by title (custom_${title}), not database ID.
The title fallback is required for client-side tool resolution to work.

* fix(null-bodies): empty bodies handling (#2931)

* fix(null-statuses): empty bodies handling

* address bugbot comment

* fix(token-refresh): microsoft, notion, x, linear (#2933)

* fix(microsoft): proactive refresh needed

* fix(x): missing token refresh flag

* notion and linear missing flag too

* address bugbot comment

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback (#2932)

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback

* refactor(auth): extract redirectToVerify helper to reduce duplication

* fix(workflow-selector): use dedicated selector for workflow dropdown (#2934)

* feat(workflow-block): preview (#2935)

* improvement(copilot): tool configs to show nested props (#2936)

* fix(auth): add genericOAuth providers to trustedProviders (#2937)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
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