fix(worker): sanitize report model arg, fix multi-repo summary attribution and standup-weekday sentinel

This commit is contained in:
mika kuns
2026-06-03 10:22:06 +02:00
parent 0bc3d2a6c4
commit a8d8a8bd65
5 changed files with 31 additions and 3 deletions
@@ -65,7 +65,11 @@ public sealed class WeekReportService : IWeekReportService
else
{
var prompt = WeekReportPromptBuilder.Build(start, end, activity, notesByDay);
var args = $"-p --output-format stream-json --verbose --permission-mode auto --model {model}";
// Guard against argument injection via the model setting: model aliases/ids are
// alphanumerics, dashes and dots only.
var safeModel = new string(model.Where(c => char.IsLetterOrDigit(c) || c is '-' or '.').ToArray());
if (safeModel.Length == 0) safeModel = "sonnet";
var args = $"-p --output-format stream-json --verbose --permission-mode auto --model {safeModel}";
var result = await _claude.RunAsync(args, prompt, Path.GetTempPath(), _ => Task.CompletedTask, ct);
if (!result.IsSuccess)
throw new InvalidOperationException(result.ErrorMarkdown ?? "Claude konnte den Bericht nicht erzeugen.");