Some checks failed
ci/woodpecker/pr/ci Pipeline failed
Independent review of PR #870 found defaultCapabilityProbe() resolved the installed CLI via req.resolve('@mosaicstack/mosaic/package.json') — a subpath NOT present in package.json's `exports` map. Node throws ERR_PACKAGE_PATH_NOT_EXPORTED for that on every real install, which the catch-all silently turned into an always-null probe: leaseEnforcementActivatable() could never return true anywhere, defeating the card's purpose. Fix: resolve via the already-exported "." entry instead (require.resolve('@mosaicstack/mosaic') -> dist/index.js), then take cli.js as its sibling in the same built dist/ directory — matching package.json's bin.mosaic mapping. No change to the exports map itself (that would mask a separate, out-of-scope pre-existing issue in resolveTool()/launch.ts per review guidance). Adds a positive-path test that stages a realistic fake dist/index.js + dist/cli.js at the package's real resolved location and asserts defaultCapabilityProbe() returns the actual {name, version} capability object with zero mocking of the resolver. Verified red against the prior (reverted-and-restored) buggy resolution before landing the fix, and green after — the previous only-unmocked test asserted null for the wrong reason (masking this bug) and is left in place alongside the new one. Re-verified: launch.spec.ts (30), fail-closed-regression.spec.ts (2), and runtime_tools_unittest.py (25, including both C-REGRESS-locked fail-closed cases) all still green. typecheck/lint/format:check pass via `turbo run ... --filter=@mosaicstack/mosaic`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>