kit 1.14.0
Added
kit healthadds Sentry + Resend sensors (runtime errors + email-delivery). Sentry probes the issues API (GET /api/0/projects/:org/:project/issues/?query=is:unresolved firstSeen:-24h) withSENTRY_AUTH_TOKEN(SENTRY_URLoverrides the region) and goes red on new unresolved issues in the last 24h. Resend probesGET /domainswithRESEND_API_KEYand goes red (classhuman— a DNS/customer action, not a code fix) when any sending domain is notverified. Both reportunknown(never a falsegreen) on missing creds or a non-OK response. These two are selected by connected-service detection (the registry sees@sentry/*/resendin deps), per the sentinel design's "derive from connected services". Live API smoke pending real tokens; parsers fixture-tested.kit healthadds a Vercel sensor (failed production deploys). Probes the Vercel REST API (GET /v6/deployments?target=production) withVERCEL_TOKEN, using theprojectId/teamIdfrom.vercel/project.json; flags the most recent terminal production deployment as red when its state isERROR(CANCELEDis not red), and reportsunknown(never a falsegreen) when the project isn't linked, the token is missing, or the API errors. Reuses thehttpGetprobe path the GitLab/Bitbucket sensors introduced. Live API smoke is pending a real token; the parsers are fixture-tested.
Fixed
kit check(tools) andkit doctornow detect tools installed globally viamise use -g. Both decided tool presence/version withmise current <tool>(project-scoped) plus a bare<tool> --version/which <tool>on PATH — so a tool installed globally withmise use -greported as not installed whenever mise wasn't activated in the shell (its shims aren't on PATH then, and kit's own process doesn't activate it). This made e.g. globally-installedsemgrep/trivyinvisible inkit check's Tools section even though the security scan ran them (the scanners already resolved mise-first viaresolveToolBin). Both now resolve the binary throughresolveToolBin(mise which→ PATH) before reading its version, closing the gap.checkToolstakes the resolver as an injectable parameter (defaultresolveToolBin) so the global-mise path is unit-tested.- Service auth checks/logins and the
pip-audit/license-checkerscans now resolve mise-first too.kit check(service auth) andkit loginexec a service'scheck/loginCLI (stripe,vercel,supabase, …) by bare command name, and thepip-audit+license-checkerdependency scans did the same — so amise use -ginstall was unreachable when mise wasn't activated. All now resolve viaresolveToolBinbefore exec, with a bare-name fallback (npmstays bare — it ships with node and is always on PATH;license-checkerstill falls back tonpx). Completes the mise-first coverage the security scanners (semgrep/trivy/socket/osv/trufflehog) already had.
Full changelog: https://github.com/sandstream/kit/blob/v1.14.0/CHANGELOG.md
Verify this release:
git tag -v v1.14.0
npm audit signatures