Observed behavior
On non-Windows platforms, lib/shell.js calls an undefined userInfo() inside an empty catch, so the intended account-shell lookup can never succeed and the defect is silently hidden. The module has no focused shell-selection tests. Separately, the core find and parse suites contain seven pending Mocha specifications: three finder contracts and four parser contracts.
Expected behavior
Shell selection follows an explicit, tested precedence on Windows, macOS, and other Unix platforms without swallowing implementation errors. Every retained core finder and parser specification is executable and asserts its documented contract; obsolete placeholders are removed only with evidence that equivalent coverage already exists.
Reproduction or evidence
On current main, inspect lib/shell.js: line 19 calls userInfo() although only lodash and path are imported, and lines 18-23 swallow the resulting ReferenceError. test/find.spec.js lines 49-51 declare three tests without callbacks, while test/parse.spec.js lines 55-58 declare four more. Mocha reports these declarations as pending rather than validating the named behavior.
Environment
Current main before Leia 2.0. The repository's existing Linux, macOS, and Windows GitHub Actions matrix is the authoritative cross-platform execution environment.
Impact
Leia currently ignores the user's configured account shell on Unix through a hidden implementation error, while seven named contracts in core discovery and parsing code provide no regression protection. This weakens platform behavior and the safety net needed before 2.0 work proceeds.
Delivery and verification
Open one linked draft completion pull request. Start with a focused shell-selection regression that demonstrates the broken account-shell path against the current baseline, then repair or intentionally remove that path and make shell precedence deterministic. Convert each pending finder and parser specification into an executable assertion, or remove an individual placeholder only when the pull request documents existing equivalent coverage. Show the focused baseline failure and fixed pass plus the full unit, lint, and operating-system matrix results.
Acceptance criteria
Task metadata
schema: tanaab/task-metadata/v2
mode: fallback
fallback:
work-size: 5
complexity: medium
impact: medium
Observed behavior
On non-Windows platforms,
lib/shell.jscalls an undefineduserInfo()inside an emptycatch, so the intended account-shell lookup can never succeed and the defect is silently hidden. The module has no focused shell-selection tests. Separately, the corefindandparsesuites contain seven pending Mocha specifications: three finder contracts and four parser contracts.Expected behavior
Shell selection follows an explicit, tested precedence on Windows, macOS, and other Unix platforms without swallowing implementation errors. Every retained core finder and parser specification is executable and asserts its documented contract; obsolete placeholders are removed only with evidence that equivalent coverage already exists.
Reproduction or evidence
On current
main, inspectlib/shell.js: line 19 callsuserInfo()although only lodash and path are imported, and lines 18-23 swallow the resultingReferenceError.test/find.spec.jslines 49-51 declare three tests without callbacks, whiletest/parse.spec.jslines 55-58 declare four more. Mocha reports these declarations as pending rather than validating the named behavior.Environment
Current
mainbefore Leia 2.0. The repository's existing Linux, macOS, and Windows GitHub Actions matrix is the authoritative cross-platform execution environment.Impact
Leia currently ignores the user's configured account shell on Unix through a hidden implementation error, while seven named contracts in core discovery and parsing code provide no regression protection. This weakens platform behavior and the safety net needed before 2.0 work proceeds.
Delivery and verification
Open one linked draft completion pull request. Start with a focused shell-selection regression that demonstrates the broken account-shell path against the current baseline, then repair or intentionally remove that path and make shell precedence deterministic. Convert each pending finder and parser specification into an executable assertion, or remove an individual placeholder only when the pull request documents existing equivalent coverage. Show the focused baseline failure and fixed pass plus the full unit, lint, and operating-system matrix results.
Acceptance criteria
os.userInfo()correctly or is intentionally removed with documented precedence and rationaleSHELL, MINGW,COMSPEC, and default behavior plus Unix account-shell, environment, and platform-default behaviorTask metadata