Simplify diagnostic report ownership

This commit is contained in:
2026-11-05 14:21:33 +00:00
parent f745b14b71
commit 68668cee56
6 changed files with 36 additions and 176 deletions

View File

@@ -8,6 +8,7 @@ import (
"go.maximumdirect.net/promptkit/internal/domain"
"go.maximumdirect.net/promptkit/internal/generation"
"go.maximumdirect.net/promptkit/internal/jsonvalue"
"go.maximumdirect.net/promptkit/internal/llm"
"go.maximumdirect.net/promptkit/internal/observation"
)
@@ -438,11 +439,11 @@ func httpExecutionFacts(evidence llm.HTTPExecutionEvidence) domain.SmokeTestFact
}
func smokeReportTarget(target domain.SmokeTestTarget) (domain.SmokeTestTarget, error) {
cloned, err := domain.CloneSmokeTestReport(domain.SmokeTestReport{Target: target})
params, err := jsonvalue.CopyMap(target.EffectiveSettings.ExtraParams)
if err != nil {
return domain.SmokeTestTarget{}, fmt.Errorf("clone smoke-test target settings: %w", err)
}
target = cloned.Target
target.EffectiveSettings.ExtraParams = params
target.EffectiveSettings.APIKey = ""
target.Endpoint, err = endpointWithoutUserInfo(target.Endpoint)
if err != nil {

View File

@@ -393,3 +393,27 @@ func (b cancelOnCloseSmokeBody) Close() error {
b.cancel()
return b.ReadCloser.Close()
}
func TestSmokeReportTargetOwnsProviderValuesAndRedactsCredentials(t *testing.T) {
target := domain.SmokeTestTarget{
Endpoint: "https://user:password@example.invalid/key",
EffectiveSettings: domain.ExecutionTarget{
Endpoint: "https://user:password@example.invalid/v1",
APIKey: "secret",
ExtraParams: map[string]any{"nested": map[string]any{"value": "original"}},
},
}
got, err := smokeReportTarget(target)
if err != nil {
t.Fatal(err)
}
got.EffectiveSettings.ExtraParams["nested"].(map[string]any)["value"] = "changed"
if target.EffectiveSettings.ExtraParams["nested"].(map[string]any)["value"] != "original" ||
got.EffectiveSettings.APIKey != "" || got.Endpoint != "https://example.invalid/key" || got.EffectiveSettings.Endpoint != "https://example.invalid/v1" {
t.Fatalf("report target not detached or redacted: %+v", got)
}
target.EffectiveSettings.ExtraParams = map[string]any{"invalid": func() {}}
if _, err := smokeReportTarget(target); err == nil {
t.Fatal("invalid provider values were accepted")
}
}