Detail: personality picker beside Re-summarize

Chips: Neutral / Sarcastic / Funny / Dry wit. The chosen voice rides
the reprocess call and the button echoes it ('Re-summarize · Sarcastic');
an existing summary shows '· in a sarcastic voice' next to its heading.
compileKotlin + 39 unit tests green.
This commit is contained in:
avi 2026-09-15 14:24:36 -05:00
commit 994dbc3690
4 changed files with 61 additions and 10 deletions

View file

@ -311,11 +311,16 @@ class CustomShonarProvider(
* per-recording override). 409 = stage already running or nothing to
* summarize; surfaced as ProviderError.Transient with the server's
* detail message. */
suspend fun reprocess(recordingId: String, job: String, model: String? = null): String =
suspend fun reprocess(recordingId: String, job: String, model: String? = null,
tone: String? = null): String =
withContext(Dispatchers.IO) {
ensureConnected()
val base = currentOrigin()
val q = if (model != null) "&model=$model" else ""
val q = buildString {
if (model != null) append("&model=$model")
if (tone != null)
append("&tone=").append(java.net.URLEncoder.encode(tone, "UTF-8"))
}
executeAuthed(base) { token ->
post(base, "/api/v1/recordings/$recordingId/reprocess?job=$job$q", token, "{}")
}.use { resp ->