This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+10 more
Affected surfaces
Summary
AI summaryAdded interactive kastell init wizard and deep-dive explain command with multiple output formats.
Full changelog
Added
kastell init3-way wizard — interactive setup with three paths: provision a new server, register an existing server, or configure defaults (compliance framework, notification channels)kastell explain <check-id>— deep-dive into any audit check: why it matters, fix command, fix tier (SAFE/GUARDED/FORBIDDEN), CIS/PCI-DSS/HIPAA compliance references. Supports--format terminal|json|mdaudit --ciflag — CI mode with JSON output, no spinner, requires--thresholdfor exit code gatingfleet --categories— shows weakest audit category per server in fleet dashboardaudit --compareenhancements —--freshflag for live audit (skip snapshots),--detailfor check-level diff instead of category summaryserver_compareMCP tool — side-by-side server comparison with snapshot fallback and detail mode (16th MCP tool)- Doctor score —
computeDoctorScorewith severity-weighted findings, wired into CLI and MCP - Regression gating — pre-fix regression check with
--forcebypass, conditional baseline save,kastell regression status/resetcommands - Substring fuzzy match —
kastell explain ssh-passwordresolves toSSH-PASSWORD-AUTH(single match returns result, multiple returns suggestions) defaults.jsonsupport —loadDefaults/saveDefaultswith Zod validation for threshold/framework fallback
Changed
- Regression wiring —
saveBaseline/checkRegressionintegrated into all 4 callers (CLI audit, CLI fix, MCP serverAudit, MCP serverFix) confirmOrCancelhelper — extracted toprompts.tswith DI pattern, replacing inline confirm logic in fix and regression flowshasRegression()helper — single source of truth for regression detection, replaces 3 inline copiesresolveAuditPairextraction — DRY compare logic with exit code bug fixformatRegressionSummary— typed DRY helper for consistent regression display across CLI and MCPrunPostFixReAudit— returns full AuditResult for accurate post-fix baselinescoreRegressedremoved from interface — derived inline viahasRegression(), 8 test fixtures updated- Discriminated union for
AddServerResult— type-safe success/failure branching in init wizard providerConfig.tsrename —utils/defaults.tsrenamed for clarityformatSuggestionsDRY helper — shared between explain command and MCP tool- Index-based
listSnapshots— O(1) read instead of O(N) file parse - Firewall port deduplication — uses
adapter.platformPortsas single source
Security
- Dependency updates — actions/checkout v6, actions/setup-node v6, actions/upload-artifact v7
Tests
- 255 suites, 10265 tests, 12 snapshots (up from 240 suites, 10127 tests in v2.0.0)
- Coverage threshold: 90% global, 95% audit, 90% provider, 90% MCP
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About kastelldev/kastell
Server security auditing and hardening toolkit. 413 security checks across 29 categories (SSH, Firewall, Docker, TLS, HTTP Headers), CIS/PCI-DSS/HIPAA compliance mapping, 19-step production hardening, fleet management, and forensic evidence collection. Supports Hetzner, DigitalOcean, Vultr, and Linode. 13 MCP tools.
Related context
Related tools
Beta — feedback welcome: [email protected]