chore(cli): surface ingest Failure message in harness log

The interop harness prints `[cli] ingest <kind>/<id> via <relay> -> Failure`
for any commit/proposal/app message that quartz can't process. Without
the error string it's impossible to tell `confirmation_tag mismatch` from
`parent_hash invalid` from `commit references unknown proposal` without
reading the Kotlin stack. Append `result.message` for Failure outcomes so
the harness log is self-contained when diagnosing quartz→quartz errors
(the openmls side already has `{e:?}` via the mdk-core patch).

https://claude.ai/code/session_016kAxdp6ubB5CnF9URhCEzP
This commit is contained in:
Claude
2026-04-22 03:40:14 +00:00
parent 9ae07894c7
commit 94c5e0e833
@@ -277,7 +277,12 @@ class Context(
// All the MLS/NIP-59 decryption + persistence lives in MarmotIngest —
// we only care about bookkeeping (since-cursors, logging) here.
val result = marmot.ingest(event)
System.err.println("[cli] ingest ${event.kind}/${event.id.take(8)} via $relay${result::class.simpleName}")
val detail =
when (result) {
is com.vitorpamplona.amethyst.commons.marmot.MarmotIngestResult.Failure -> " ${result.message}"
else -> ""
}
System.err.println("[cli] ingest ${event.kind}/${event.id.take(8)} via $relay${result::class.simpleName}$detail")
when (event.kind) {
GiftWrapEvent.KIND -> {