Repository navigation
Conversation
mshanemc
force-pushed
the
sm/W-22711959-shadowrepo-effect
branch
from
November 2, 2026 17:46
c9accca to
f7f686d
Compare
mshanemc
force-pushed
the
sm/W-22711959-central-effect-config
branch
from
November 2, 2026 18:22
7bdcc77 to
2b6f0fa
Compare
mshanemc
force-pushed
the
sm/W-22711959-central-effect-config
branch
from
November 2, 2026 18:24
2b6f0fa to
8416a5b
Compare
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.
What does this PR do?
Config.Booleanparsing, stricter numeric validation, fallback warnings, and legacy aliases.ConfigProvideror explicit config service instead of mutating global environment.Configuration compatibility inventory
Compared against the installed Kit
Env.getNumber/Env.getBooleanimplementation and the previous source-tracking call sites. This PR is stacked on #888, which already migrated several reads to Effect; differences specific to that base are called out below.Numeric input: stricter than Kit
Kit uses Lodash
toNumber, without field-specific range/integer validation. The new config rejects the following inputs and uses the setting's default:0x10), binary (0b10), octal (0o10)16,2,8Infinity,-Infinity, or overflow such as1e309NaNor malformed text such asbadNaN, or the supplied default if one was passed togetNumber" ")0" 12 ")12"")Decimal forms such as
+12,01, and1e2remain accepted when their decoded value satisfies the field's constraints. We are not restricting all numbers to digit-only strings.Field-specific validation and defaults
SF_SOURCE_TRACKING_FD_PERMITS1throughNumber.MAX_SAFE_INTEGER)64on Windows;256elsewhereSF_SOURCE_TRACKING_LOCK_TIMEOUT_SECONDS600secondsSF_SOURCE_TRACKING_LOCK_AUTOCLEAR_SECONDS300secondsSF_SOURCE_MEMBER_POLLING_TIMEOUTMath.ceil(memberCount * 0.05) + 5seconds; empty-result limit120SF_SOURCE_TRACKING_FILE_VERSION0NaN. Config now rejects the override consistently for both settings.1selects the v1 format; other accepted values continue to select the legacy format. Rejecting negative/fractional values normally changes the warning/defaulting, not the selected format.Legacy aliases and batching
SFDX_DISABLE_SOURCE_MEMBER_POLLINGandSFDX_SOURCE_MEMBER_POLLING_TIMEOUTas deprecated aliases for theirSF_equivalents. These were supported by Core's Kit-based environment handling; this PR restores explicit alias handling relative to feat(git): replace isomorphic-git with Effect Git - W-22711959 #888's base.SF_SOURCE_TRACKING_BATCH_SIZE, thenSFDX_SOURCE_TRACKING_BATCH_SIZE, are deprecated aliases forSF_SOURCE_TRACKING_FD_PERMITS. They now limit concurrent file descriptors rather than isomorphic-git batch length. Alias values are validated as positive safe integers and capped at64on Windows /256elsewhere. Smaller values remain effective; an explicit validSF_SOURCE_TRACKING_FD_PERMITSis not capped.8000on Windows /15000elsewhere. The FD-permit setting and its64/256defaults already exist in feat(git): replace isomorphic-git with Effect Git - W-22711959 #888; this PR adds the legacy aliases and their cap, rather than introducing the new Git engine/concurrency model.Booleans, warnings, and evaluation timing
Config.Boolean: lowercasetrue/false,yes/no,on/off,y/n, and1/0. Compared with Kit, mixed-case words such asTRUEno longer parse (they warn and default tofalse);yes/on/ynow meantrue, andno/off/nare accepted asfalse. Invalid non-empty values warn and default tofalse.SF_SOURCE_TRACKING_INTEGRITY_CHECKnow uses the sameConfig.Booleanliterals instead of enabling only for exact lowercasetrue: lowercaseyes/on/y/1also enable it. UppercaseTRUEis invalid and defaults tofalsewith a warning.Lifecycle.emitWarning, not Effect's console logger. Core may emit a Node process warning when no lifecycle warning listener is installed.What was already enforced on #888's base
Effect.orDie; this PR warns and uses version0instead.120consecutive empty results after some results arrive, or a limit derived from a valid configured timeout. These decisions now live in config rather than in consumers.Verification: exercised the installed Kit and current config loader with radix-prefixed numbers, infinities,
NaN, malformed text, empty/whitespace strings, signed/leading-zero/scientific decimal forms, fractions, negatives, zero, unsafe integers, and boolean spellings.What issues does this PR fix or reference?
@W-22711959@