fix(cli): honor OS_LOG_LEVEL / --log-level instead of hardcoding silent (#1533)#1539
Merged
Conversation
…#1533) `os serve` / `os start` constructed the runtime kernel with a hardcoded `{ level: 'silent' }` logger, suppressing every plugin `logger.warn` / `logger.error`. As a result a record-change flow whose condition or node faulted produced zero operator-visible output — the flow simply had no effect — directly undercutting ADR-0032's "fail loudly" promise when running via the CLI (the silent logger is even called out by name in ADR-0032's incident write-up). Resolve the kernel logger level from, in precedence order: 1. `--verbose` → debug 2. `--log-level <level>` → explicit level 3. `$OS_LOG_LEVEL` / `$LOG_LEVEL` 4. default → `warn` Defaulting to `warn` (rather than `silent`) surfaces flow/hook execution-failure warnings and automation-engine errors out of the box, while the existing boot-quiet window still suppresses the noisier info-level startup chatter. `--log-level silent` restores the old fully-quiet behavior. The resolution lives in a small pure helper (`utils/log-level.ts`) so it is unit-testable without importing the whole runtime. `start` and `dev` gain a matching `--log-level` flag and forward it (plus the existing `--verbose`) to the spawned `serve` — which also fixes a latent bug where both already passed `--verbose` to `serve`, a flag it never declared.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
xuyushun441-sys
pushed a commit
that referenced
this pull request
Jun 6, 2026
feat(detail): derive related lists from relationships (read-side mirror of inlineEdit) (#1539) objectui@c657e9b180a8c7aa56938d22d7baaee5dc8fc765
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #1533.
os serve/os startconstructed the runtime kernel with a hardcoded{ level: 'silent' }logger and no override, suppressing every pluginlogger.warn/logger.error. A record-change flow whose condition or node faulted (logged vialogger.warninplugin-trigger-record-change) produced zero operator-visible output — the flow simply had no effect — directly undercutting ADR-0032's "fail loudly" promise when running via the CLI. (ADR-0032's own incident write-up calls out "the CLI forces the kernel logger tolevel:'silent'" as why the reporter "could not see any logs".)What changed
The kernel logger level is now resolved (precedence order):
--verbose→debug--log-level <level>→ explicit level$OS_LOG_LEVEL/$LOG_LEVELwarnDefaulting to
warn(instead ofsilent) surfaces flow/hook execution-failure warnings and automation-engine errors out of the box, while the existing boot-quiet window still suppresses the noisier info-level startup chatter. Pass--log-level silent(orOS_LOG_LEVEL=silent) to restore the old fully-quiet behavior.Details
packages/cli/src/utils/log-level.ts(LOG_LEVELS,resolveLogLevel,readLogLevelEnv,DEFAULT_LOG_LEVEL) — unit-testable without importing the whole runtime.servegains--log-leveland--verboseflags; replaces the hardcodedsilent.startanddevgain a matching--log-levelflag and forward it (plus the existing--verbose) to the spawnedserve.startanddevalready passed--verbosetoserve, a flagservenever declared (oclif strict parsing would reject it).Tests
packages/cli/test/serve-log-level.test.ts— covers thewarndefault (the #1533 regression guard), env honoring, flag-over-env precedence,--verbose→debug, case-insensitivity/trimming, unknown-level fallback, and round-trips every documented level. All 8 pass locally.Compatibility
--log-level silent/OS_LOG_LEVEL=silent.https://claude.ai/code/session_01Sn5oqHMikzQMbzfzVbfVNi
Generated by Claude Code