Description
Three aggregation structs in pkg/cli/logs_models.go are ~85% identical, differing only in their leading identity field:
MissingToolSummary (:153) — identity field Tool string
MissingDataSummary (:173) — identity field DataType string
MCPFailureSummary (:164) — subset sibling
The remaining fields (Count, Workflows, WorkflowsDisplay, FirstReason, FirstReasonDisplay, RunIDs) carry byte-identical json:/console: tags. Extract the shared tail into an embedded base struct, keeping only the identity field distinct per type.
Expected Impact
Removes copy-paste drift risk across three aggregated-report structs; one source of truth for the shared columns.
Suggested Agent
Typist / Copilot SWE Agent.
Estimated Effort
Quick (< 1 hour) — mechanical embed extraction + tests.
Data Source
DeepReport 2026-06-30; typist report #42475.
Generated by 🔬 Deep Report · 204.7 AIC · ⌖ 16.9 AIC · ⊞ 10.2K · ◷
Description
Three aggregation structs in
pkg/cli/logs_models.goare ~85% identical, differing only in their leading identity field:MissingToolSummary(:153) — identity fieldTool stringMissingDataSummary(:173) — identity fieldDataType stringMCPFailureSummary(:164) — subset siblingThe remaining fields (
Count,Workflows,WorkflowsDisplay,FirstReason,FirstReasonDisplay,RunIDs) carry byte-identicaljson:/console:tags. Extract the shared tail into an embedded base struct, keeping only the identity field distinct per type.Expected Impact
Removes copy-paste drift risk across three aggregated-report structs; one source of truth for the shared columns.
Suggested Agent
Typist / Copilot SWE Agent.
Estimated Effort
Quick (< 1 hour) — mechanical embed extraction + tests.
Data Source
DeepReport 2026-06-30; typist report #42475.