Skip to content

fix(cli): honor quiet settings loaded from .env - #1071

Merged
motdotla merged 1 commit into
motdotla:masterfrom
himanshu748:fix-cli-env-quiet
Oct 9, 2026
Merged

motdotla merged 1 commit into
motdotla:masterfrom
himanshu748:fix-cli-env-quiet

Conversation

@himanshu748

Copy link
Copy Markdown
Contributor

Summary

dotenv run resolves its options before loading .env. Coercing an unspecified quiet option to false at that point prevents DOTENV_QUIET=true (and the legacy name) in the file from suppressing the first startup message.

Keep the unset value until loading finishes, then use the loaded quiet setting only when neither a CLI flag nor a startup environment setting supplied one. Explicit shell false still wins, including with --override.

This covers the CLI counterpart of #1057, whose config/preload behavior is already fixed.

Tests

  • Added subprocess regressions for current and legacy quiet settings in .env, false/unset values, shell precedence, --override, and --quiet.
  • Before the fix, both .env quiet regressions fail because the startup message is emitted.
  • npm test on Node 24: 1,189 passing assertions, one Windows-only skip (build, standard lint, and TypeScript checks included).
  • npm run test:perf: passed the existing 1.5x gate for Buffer and string input.

Windows execution was not available locally.

@motdotla

motdotla commented Oct 9, 2026

Copy link
Copy Markdown
Owner

thanks @himanshu748, good catch!

@motdotla
motdotla merged commit 9af8c28 into motdotla:master Oct 9, 2026
8 checks passed
renovate Bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Oct 9, 2026
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | dotenv  | 17.4.2 | 18.0.7 |


## [v18.0.7](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1807-2026-10-09)

##### Changed

- Treat undefined settings like `quiet: true` as null rather than falsey ([#1070](motdotla/dotenv#1070))
- CLI should honor `DOTENV_QUIET` setting in `.env` file ([#1071](motdotla/dotenv#1071))


## [v18.0.6](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1806-2026-10-06)

##### Changed

- Use smarter `parseBoolean` not Boolean() to fix override ([#1069](motdotla/dotenv#1069))


## [v18.0.5](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1805-2026-09-30)

##### Changed

- Fix missing typescript module declaration ([#1068](motdotla/dotenv#1068))
- Improve performance for large .env files ([#1066](motdotla/dotenv#1066))


## [v18.0.4](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1804-2026-09-25)

##### Changed

- `import dotenv/config` should default quiet: true ([#1063](motdotla/dotenv#1063))


## [v18.0.3](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1803-2026-09-22)

##### Changed

- Patch `DOTENV_QUIET` setting when inside .env file ([#1059](motdotla/dotenv#1059))


## [v18.0.2](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1802-2026-09-21)

##### Changed

- Patch additional edge cases for the fast parser ([#1056](motdotla/dotenv#1056))


## [v18.0.1](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1801-2026-09-18)

##### Changed

- Handle file urls in config logging ([#1054](motdotla/dotenv#1054))


## [v18.0.0](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1800-2026-09-17)

##### Added

- NEW: Dotenv now has a CLI. ([#1022](motdotla/dotenv#1022))

```sh
$ dotenv run -- node index.js
◇ injected env (2) from .env
Hello Dotenv
```

- NEW: Dotenv now has a fast parser thanks to [@homanp](https://github.com/homanp) of [superagent.sh](https://superagent.sh). Pass `config({ fast: true })`, flag `--fast`, or set `DOTENV_FAST=true` to opt-in to \~2x faster character-scanner parser. ([#1010](motdotla/dotenv#1010))

```sh
$ dotenv run --fast -- node index.js
◇ injected env (2) from .env
Hello Dotenv
```

[faster than Node native parseEnv!](https://dotenvx.com/blog/2026/09/28/dotenv-fast.html)

##### Changed

- Injecting message sent to stderr rather than stdout and tips removed ([#1037](motdotla/dotenv#1037))

##### Removed

- Remove tips ([#1031](motdotla/dotenv#1031))
- Remove skill files ([#1032](motdotla/dotenv#1032))
- Remove Spanish README ([#1034](motdotla/dotenv#1034))
- Remove .env.vault support ([#1033](motdotla/dotenv#1033))
- Remove preloading. Instead use cli `dotenv run -- your-command` ([#1035](motdotla/dotenv#1035))
renovate Bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Oct 10, 2026
| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | dotenv  | 17.4.2 | 18.0.7 |


## [v18.0.7](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1807-2026-10-09)

##### Changed

- Treat undefined settings like `quiet: true` as null rather than falsey ([#1070](motdotla/dotenv#1070))
- CLI should honor `DOTENV_QUIET` setting in `.env` file ([#1071](motdotla/dotenv#1071))


## [v18.0.6](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1806-2026-10-06)

##### Changed

- Use smarter `parseBoolean` not Boolean() to fix override ([#1069](motdotla/dotenv#1069))


## [v18.0.5](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1805-2026-09-30)

##### Changed

- Fix missing typescript module declaration ([#1068](motdotla/dotenv#1068))
- Improve performance for large .env files ([#1066](motdotla/dotenv#1066))


## [v18.0.4](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1804-2026-09-25)

##### Changed

- `import dotenv/config` should default quiet: true ([#1063](motdotla/dotenv#1063))


## [v18.0.3](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1803-2026-09-22)

##### Changed

- Patch `DOTENV_QUIET` setting when inside .env file ([#1059](motdotla/dotenv#1059))


## [v18.0.2](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1802-2026-09-21)

##### Changed

- Patch additional edge cases for the fast parser ([#1056](motdotla/dotenv#1056))


## [v18.0.1](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1801-2026-09-18)

##### Changed

- Handle file urls in config logging ([#1054](motdotla/dotenv#1054))


## [v18.0.0](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1800-2026-09-17)

##### Added

- NEW: Dotenv now has a CLI. ([#1022](motdotla/dotenv#1022))

```sh
$ dotenv run -- node index.js
◇ injected env (2) from .env
Hello Dotenv
```

- NEW: Dotenv now has a fast parser thanks to [@homanp](https://github.com/homanp) of [superagent.sh](https://superagent.sh). Pass `config({ fast: true })`, flag `--fast`, or set `DOTENV_FAST=true` to opt-in to \~2x faster character-scanner parser. ([#1010](motdotla/dotenv#1010))

```sh
$ dotenv run --fast -- node index.js
◇ injected env (2) from .env
Hello Dotenv
```

[faster than Node native parseEnv!](https://dotenvx.com/blog/2026/09/28/dotenv-fast.html)

##### Changed

- Injecting message sent to stderr rather than stdout and tips removed ([#1037](motdotla/dotenv#1037))

##### Removed

- Remove tips ([#1031](motdotla/dotenv#1031))
- Remove skill files ([#1032](motdotla/dotenv#1032))
- Remove Spanish README ([#1034](motdotla/dotenv#1034))
- Remove .env.vault support ([#1033](motdotla/dotenv#1033))
- Remove preloading. Instead use cli `dotenv run -- your-command` ([#1035](motdotla/dotenv#1035))
ofri-peretz added a commit to ofri-peretz/burgee that referenced this pull request Oct 11, 2026
dotenv 18.0.7 (#946) changed two rules, and its three new cases grade both:

- config() drops options given as undefined before laying them over the
  DOTENV_* defaults (motdotla/dotenv#1070), so { path: undefined,
  quiet: undefined } keeps DOTENV_CONFIG_PATH and DOTENV_CONFIG_QUIET.
- dotenv run reads a DOTENV_QUIET the loaded .env sets when neither a flag
  nor the starting environment said (motdotla/dotenv#1071).

Re-vendored at v18.0.7 (commit 29532075); suiteDeps pins dotenv@18.0.7.
Control 191 / 191; seniority read 188 / 191 and now reads 191 / 191.
GRADED, GRADED_VERSIONS, the baseline, the compatibility page, the
seniority README/docs and the foundation weight band follow.

Decision: D-20261011-revendor-dotenv-18-0-7.

Closes #946

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Server that referenced this pull request Oct 16, 2026
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [dotenv](https://github.com/motdotla/dotenv) | imports | patch | [`18.0.6` -> `18.0.7`](https://renovatebot.com/diffs/npm/dotenv/18.0.6/18.0.7) | `18.0.8` |

---

### Release Notes

<details>
<summary>motdotla/dotenv (dotenv)</summary>

### [`v18.0.7`](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1807-2026-10-09)

[Compare Source](motdotla/dotenv@v18.0.6...v18.0.7)

##### Changed

- Treat undefined settings like `quiet: true` as null rather than falsey ([#&#8203;1070](motdotla/dotenv#1070))
- CLI should honor `DOTENV_QUIET` setting in `.env` file ([#&#8203;1071](motdotla/dotenv#1071))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTEuNSIsInVwZGF0ZWRJblZlciI6IjQ0LjE1MS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Server/pulls/54
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