Repository navigation
CI rehearsal only (do not merge) - #16
michael-moffett wants to merge 14 commits into
Conversation
…matrix A Gradle stdin/stdout runner over the Kotlin SDK's protocol functions, plus `harness/protocol-runners/kotlin.json`, so the spawned-runner block drives Kotlin. No protocol-layer vector reaches Kotlin today. Milestone 1 of our harness proposal puts Kotlin in the divergence matrix.
…-run steps in the kotlin harness job, and asserted Kotlin divergences in the spawned-runner matrix
…cratch (--rerun-tasks); 5/5 MainTest cases pass, the vitest suite is still unrun
…l as a must-pass case (TS reference re-parses Kotlin's header) and lists receipt.format as a known unsupported divergence
…lDist test) and Main.kt gains its 3-line header comment
|
| private fun formatCredential(input: JsonElement): JsonObject { | ||
| val credential = input.jsonObject | ||
| val challenge = credential.getValue("challenge").jsonObject | ||
| val request = (challenge["request"] ?: JsonObject(emptyMap())).toString().encodeToByteArray() |
There was a problem hiding this comment.
Missing request becomes valid If a
credential.format input omits the required challenge.request, the runner inserts an empty request and can return a successful Authorization header. This hides an invalid input and produces a header that does not represent the supplied challenge.
| val request = (challenge["request"] ?: JsonObject(emptyMap())).toString().encodeToByteArray() | |
| val request = challenge.getValue("request").toString().encodeToByteArray() |
| "challenge.id" to "generation_error", | ||
| ) | ||
|
|
||
| private val sdkGaps = families.keys - setOf("challenge.parse", "credential.format") |
There was a problem hiding this comment.
Conformance skips recognized operations Seven recognized operations always return fixed errors, and the Kotlin divergence tests assert those responses instead of exercising protocol behavior. A green Kotlin protocol job therefore does not verify encoding, challenge generation, or those header operations. Implement them or separate these gap checks from conformance coverage.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
…ned-runner block, with Kotlin's SDK gaps asserted by exact response
…elds after whole-object serialization (Go omitempty), with its unit test asserting the omission
Fork CI only. Do not merge.