refactor: Harden detekt setup, address some issues (#507)

# Detekt setup hardeing; address some issues

- Address some detekt findings: missing KDocs, formatting, use `check*`
& `orEmpty()``
- Remove unnecessary KDoc comments from deprecated classes in `types.kt`
- Add Detekt baseline XML files for all modules
- Enforce stricter Detekt rules by setting `failOnSeverity` from `None`
to `Error`

## Motivation and Context

Detekt is not actually failing the build on violations. This PR is
enabling Detekt to fail on errors. Baseline fines added for historical
issues. Follow-up for #501

## How Has This Been Tested?
Regressions

## Breaking Changes

No breaking changes.

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Refactoring
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [x] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [ ] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
This commit is contained in:
Konstantin Pavlov 2026-02-13 22:17:27 +02:00 • committed by GitHub
commit ed9ad83290
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 478 additions and 122 deletions

View file

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>CyclomaticComplexMethod:Retry.kt:RetryExtension$private fun executeWithRetry</ID>
<ID>ReturnCount:TypeScriptRunner.kt:TypeScriptRunner$public fun installDependencies</ID>
<ID>ThrowsCount:Retry.kt:RetryExtension$private fun executeWithRetry</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -1,5 +1,6 @@
package io.modelcontextprotocol.kotlin.test.utils
import org.junit.jupiter.api.fail
import java.io.File
/**
@ -83,7 +84,7 @@ public object TypeScriptRunner {
patchPackageJsonRecursively(typescriptDir, patchProtocols = true)
if (tryCommand(listOf("npm", "install"), typescriptDir)) return
throw RuntimeException("Failed to install TypeScript dependencies in ${typescriptDir.absolutePath}")
fail("Failed to install TypeScript dependencies in ${typescriptDir.absolutePath}")
}
private fun tryCommand(command: List<String>, workingDir: File): Boolean {

View file

@ -14,6 +14,7 @@ import kotlin.time.Duration.Companion.seconds
*/
public fun killProcessOnPort(port: Int) {
val killCommand = if (isWindows) {
@Suppress("MaxLineLength")
listOf(
"cmd.exe",
"/c",