From 5ae9212869f9694b05e1f9cf3ae25c18df2cdb9f Mon Sep 17 00:00:00 2001 From: Mathias Date: Fri, 2 Oct 2026 16:38:30 +0200 Subject: [PATCH] feat(cmd): uploadChatModels -- the chat switcher for a private recording is local models only (review F1) Co-Authored-By: Claude Sonnet 5.5 --- cmd/tapir/processor.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/tapir/processor.go b/cmd/tapir/processor.go index dc5b483..c815262 100644 --- a/cmd/tapir/processor.go +++ b/cmd/tapir/processor.go @@ -137,6 +137,20 @@ func chatModels(cfg config.Config) []string { return models } +// uploadChatModels is the chat switcher for a PRIVATE uploaded recording: the same +// ordered set as chatModels, local models only. The whole transcript (up to 90,000 +// characters) is sent to the one chosen, so a cloud model the video chat offers must not +// be offered here; with none local, none is offered (ADR-035 review). +func uploadChatModels(cfg config.Config) []string { + var local []string + for _, m := range chatModels(cfg) { + if config.IsLocalModel(m) { + local = append(local, m) + } + } + return local +} + // buildChat wires the per-video chat service (ADR-027): a Completer factory over // the SAME LiteLLM gateway the summarizer uses (a different alias per model, not a // second client config) and the same transcript-truncation budget. It returns nil