Description
GitHubMCPDockerOptions and GitHubMCPRemoteOptions (pkg/workflow/mcp_renderer_types.go:67 and :101) still redeclare 8 identical fields verbatim — ReadOnly, Lockdown, LockdownFromStep, GuardPoliciesFromStep, Toolsets, Features, AllowedTools []string, GuardPolicies map[string]any — with only the transport-specific fields (CustomArgs/DockerImageVersion vs AuthorizationValue) differing. This is a re-occurrence: issue #51076 ("Consolidate GitHubMCPDockerOptions/GitHubMCPRemoteOptions shared fields into common struct") was already closed, but verified live in the current tree (2026-08-20) the duplication is still present — the closure did not stick, or the fix was reverted/never merged.
Expected Impact
One shared GitHubMCPCommonOptions struct embedded by both transport-specific structs removes 8 duplicated field declarations and prevents the two transports' shared behavior (read-only/lockdown/guard-policy semantics) from silently drifting apart.
Suggested Agent
Existing Go engineering / code-quality refactor agent.
Estimated Effort
Quick (~1 hour) — factor the 8 shared fields into GitHubMCPCommonOptions, embed in both structs, update construction call sites.
Data Source
DeepReport analysis, 2026-08-20 ~12:30Z cycle, sourced from discussion #54213 (Typist - Go Type Consistency Analysis), Cluster 5. Re-filing note: prior closure #51076 did not resolve this — verify the fix actually lands and stays in the codebase this time.
Generated by 🔬 Deep Report · agent · 153.5 AIC · ⌖ 12.9 AIC · ⊞ 11.9K · ◷
Description
GitHubMCPDockerOptionsandGitHubMCPRemoteOptions(pkg/workflow/mcp_renderer_types.go:67and:101) still redeclare 8 identical fields verbatim —ReadOnly,Lockdown,LockdownFromStep,GuardPoliciesFromStep,Toolsets,Features,AllowedTools []string,GuardPolicies map[string]any— with only the transport-specific fields (CustomArgs/DockerImageVersionvsAuthorizationValue) differing. This is a re-occurrence: issue #51076 ("Consolidate GitHubMCPDockerOptions/GitHubMCPRemoteOptions shared fields into common struct") was already closed, but verified live in the current tree (2026-08-20) the duplication is still present — the closure did not stick, or the fix was reverted/never merged.Expected Impact
One shared
GitHubMCPCommonOptionsstruct embedded by both transport-specific structs removes 8 duplicated field declarations and prevents the two transports' shared behavior (read-only/lockdown/guard-policy semantics) from silently drifting apart.Suggested Agent
Existing Go engineering / code-quality refactor agent.
Estimated Effort
Quick (~1 hour) — factor the 8 shared fields into
GitHubMCPCommonOptions, embed in both structs, update construction call sites.Data Source
DeepReport analysis, 2026-08-20 ~12:30Z cycle, sourced from discussion #54213 (Typist - Go Type Consistency Analysis), Cluster 5. Re-filing note: prior closure #51076 did not resolve this — verify the fix actually lands and stays in the codebase this time.