Description
The Typist Go Type Consistency Analysis (discussion #53980, 2026-08-19) found three call sites where a field or constant is typed any/bare int/string even though its actual usage is always a single concrete type — verified against call sites, not guessed:
pkg/cli/logs_models.go:358-359 — AwInfo.RunID any / RunNumber any. Every sibling RunID field in the same package (logs_models.go:123,280, audit_cross_run.go, logs_episode.go) is int64 — GitHub Actions run IDs/numbers are always numeric.
pkg/cli/run_workflow_execution.go:25 — const workflowCompletionWaitTimeoutMinutes = 6 * 60 (bare int, ambiguous unit), consumed by WaitForWorkflowCompletion(ctx, repoSlug, runID string, timeoutMinutes int, ...), called from pkg/cli/pr_automerge.go:120. Every sibling timeout in pkg/constants/constants.go (DefaultAgenticWorkflowTimeout, DefaultToolTimeout, DefaultHTTPClientTimeout) is a typed time.Duration.
pkg/workflow/service_ports.go:86 — Ports any, immediately type-asserted to []any at every call site (service_ports.go:144). Declaring the field as []any directly removes a redundant runtime assertion.
Expected Impact
Removes ambiguous "is this seconds or minutes?" risk on fix #2, matches the established time.Duration convention used everywhere else in pkg/constants, and eliminates unnecessary type assertions for #1 and #3. Zero behavior change, low risk.
Suggested Agent
Copilot coding agent (mechanical, well-scoped Go refactor).
Estimated Effort
Quick (< 1 hour)
Data Source
DeepReport analysis 2026-08-19, based on Typist - Go Type Consistency Analysis (discussion #53980, "Priority 1" recommendations).
Generated by 🔬 Deep Report · agent · 174 AIC · ⌖ 12.1 AIC · ⊞ 11.9K · ◷
Description
The Typist Go Type Consistency Analysis (discussion #53980, 2026-08-19) found three call sites where a field or constant is typed
any/bareint/stringeven though its actual usage is always a single concrete type — verified against call sites, not guessed:pkg/cli/logs_models.go:358-359—AwInfo.RunID any/RunNumber any. Every siblingRunIDfield in the same package (logs_models.go:123,280,audit_cross_run.go,logs_episode.go) isint64— GitHub Actions run IDs/numbers are always numeric.pkg/cli/run_workflow_execution.go:25—const workflowCompletionWaitTimeoutMinutes = 6 * 60(bare int, ambiguous unit), consumed byWaitForWorkflowCompletion(ctx, repoSlug, runID string, timeoutMinutes int, ...), called frompkg/cli/pr_automerge.go:120. Every sibling timeout inpkg/constants/constants.go(DefaultAgenticWorkflowTimeout,DefaultToolTimeout,DefaultHTTPClientTimeout) is a typedtime.Duration.pkg/workflow/service_ports.go:86—Ports any, immediately type-asserted to[]anyat every call site (service_ports.go:144). Declaring the field as[]anydirectly removes a redundant runtime assertion.Expected Impact
Removes ambiguous "is this seconds or minutes?" risk on fix #2, matches the established
time.Durationconvention used everywhere else inpkg/constants, and eliminates unnecessary type assertions for #1 and #3. Zero behavior change, low risk.Suggested Agent
Copilot coding agent (mechanical, well-scoped Go refactor).
Estimated Effort
Quick (< 1 hour)
Data Source
DeepReport analysis 2026-08-19, based on Typist - Go Type Consistency Analysis (discussion #53980, "Priority 1" recommendations).