Repository Quality Report: Gemini Engine Feature Parity (2026-03-19) #21807
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Repository Quality Improvement Agent. A newer discussion is available at Discussion #21966. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🎯 Repository Quality Improvement Report — Gemini Engine Feature Parity
Analysis Date: 2026-03-19
Focus Area: Gemini Engine Feature Parity
Strategy Type: Custom
Custom Area: Yes — Gemini is a recently-added engine (
pkg/workflow/gemini_engine.go) with dedicated infrastructure, but several engine-dispatch switch statements in the compiler were not updated to include it, causing silent fallback to wrong defaults.Executive Summary
The Gemini engine has excellent dedicated infrastructure: its own engine type (
GeminiEngine), log parser, tool configuration, and domain allowlists. However, three compiler-level switch statements that route per-engine behaviour still lack acase "gemini"branch, causing:""instead of"latest"—getDefaultEngineVersion()incompiler_yaml_helpers.goGH_AW_MODEL_AGENT_CUSTOMused instead ofGH_AW_MODEL_AGENT_GEMINIwhen generating the agent job incompiler_yaml.gocase "gemini"inplugin_installation.goThese are low-risk bugs today (the fallbacks are mostly harmless) but they will silently produce incorrect compiled workflow YAML for Gemini users. All fixes are small, surgical changes adding a single
caseline each.Test/source ratio: 311 801 test LOC / 137 022 source LOC = 227 % — excellent overall coverage.
TODO count (non-test Go): only 9 items, two of which are in
plugin_installation.goand are directly related to this analysis.Full Analysis Report
Focus Area: Gemini Engine Feature Parity
Current State Assessment
AgenticEnginesDefaultGeminiVersiondefined"latest"inconstants.goEnvVarModelAgentGeminidefinedGH_AW_MODEL_AGENT_GEMINIinconstants.goGeminiEnginestructpkg/workflow/gemini_engine.godomains.goGemini casecompiler_yaml_helpers.goversion dispatchcase "gemini"compiler_yaml.gomodel env-var dispatchcase "gemini"plugin_installation.goinstall commandcase "gemini"Findings
Strengths
gemini_engine.go,gemini_logs.go,gemini_tools.godomains.gocorrectly handlescase "gemini"for network allowlist generationDefaultGeminiVersion,EnvVarModelAgentGemini,GeminiCLIModelEnvVar)Areas for Improvement
compiler_yaml_helpers.goL161-172:getDefaultEngineVersion()returns""for gemini instead ofstring(constants.DefaultGeminiVersion). This means compiled Gemini workflows pin no version (could use wrong or latest unpinned binary).compiler_yaml.goL556-567: Model env-var dispatch usesEnvVarModelAgentCustom(GH_AW_MODEL_AGENT_CUSTOM) for gemini instead ofEnvVarModelAgentGemini(GH_AW_MODEL_AGENT_GEMINI). Users configuringGH_AW_MODEL_AGENT_GEMINIwon't see it applied.plugin_installation.goL66-74: No explicit gemini case — currently falls to genericgemini plugin install (name)which may or may not be the correct CLI syntax. The TODO comments forclaudeandcodexindicate all three non-copilot commands need verification.Detailed Analysis
getDefaultEngineVersionincompiler_yaml_helpers.go:Model env-var dispatch in
compiler_yaml.go:Plugin install in
plugin_installation.go:🤖 Tasks for Copilot Agent
NOTE TO PLANNER AGENT: The following tasks target three small, specific code regions. Each is independently actionable by the Copilot coding agent.
Task 1: Add Gemini case to
getDefaultEngineVersionPriority: High
Estimated Effort: Small
Focus Area: Gemini Engine Feature Parity
Description:
getDefaultEngineVersion()inpkg/workflow/compiler_yaml_helpers.gohas a switch statement for copilot, claude, and codex but is missing gemini. It should returnstring(constants.DefaultGeminiVersion)for the gemini engine, just like the other engines return their respective default versions.Acceptance Criteria:
case "gemini": return string(constants.DefaultGeminiVersion)added to the switch ingetDefaultEngineVersionmake buildpassesmake test-unitpasses (or at minimum:go test -v -run "TestGetDefaultEngineVersion\|TestCompile.*[Gg]emini" ./pkg/workflow/)make fmtappliedCode Region:
pkg/workflow/compiler_yaml_helpers.golines ~161-172Task 2: Add Gemini case to model env-var dispatch in
compiler_yaml.goPriority: High
Estimated Effort: Small
Focus Area: Gemini Engine Feature Parity
Description:
In
pkg/workflow/compiler_yaml.go, the model environment variable switch (around line 556) routes each engine to its dedicatedGH_AW_MODEL_AGENT_*env var. The"gemini"engine is missing and silently falls toEnvVarModelAgentCustom(GH_AW_MODEL_AGENT_CUSTOM). It should useconstants.EnvVarModelAgentGemini(GH_AW_MODEL_AGENT_GEMINI).Acceptance Criteria:
case "gemini": modelEnvVar = constants.EnvVarModelAgentGeminiadded to the switchGH_AW_MODEL_AGENT_GEMINIinstead ofGH_AW_MODEL_AGENT_CUSTOMmake buildandmake fmtpassmake test-unitpassesCode Region:
pkg/workflow/compiler_yaml.golines ~556-567Task 3: Add explicit Gemini case to
generatePluginInstallStepPriority: Medium
Estimated Effort: Small
Focus Area: Gemini Engine Feature Parity
Description:
generatePluginInstallStepinpkg/workflow/plugin_installation.gohandles copilot, claude, and codex, but Gemini falls to the generic default. Add an explicitcase "gemini"with the best-known plugin install syntax for the Gemini CLI. Note that the file already has TODO comments for claude and codex indicating uncertainty about the exact syntax; the same should be documented for gemini until confirmed.Acceptance Criteria:
case "gemini"added with a TODO comment noting syntax needs verificationmake buildandmake fmtpassmake test-unitpassesCode Region:
pkg/workflow/plugin_installation.golines ~66-74Task 4: Add unit tests for engine-specific paths (gemini)
Priority: Low
Estimated Effort: Medium
Focus Area: Gemini Engine Feature Parity
Description:
The three functions patched in Tasks 1-3 currently have no tests that exercise the
"gemini"engine ID path. Add table-driven test cases coveringgetDefaultEngineVersion("gemini"), the model env-var dispatch for"gemini", andGeneratePluginInstallationStepswith engine"gemini".Acceptance Criteria:
"gemini"added alongside existing engine test cases in the relevant*_test.gofilesgo test -v -run ".*[Gg]emini.*\|.*[Ee]ngine.*" ./pkg/workflow///go:build !integration) present at top of any new/modified test filemake lintpasses (no unused helper functions)Code Region:
pkg/workflow/compiler_yaml_helpers_test.go,pkg/workflow/compiler_yaml_test.go,pkg/workflow/plugin_installation_test.go📊 Historical Context
Previous Focus Areas
🎯 Recommendations
Immediate Actions (This Week)
getDefaultEngineVersionfor gemini (Task 1) — Priority: High, ~5 minShort-term Actions (This Month)
Long-term Actions (This Quarter)
AgenticEnginesmembers have explicit cases in every engine switch — prevents future regressions as new engines are added📈 Success Metrics
Next Steps
References:
§23297265883Generated by Repository Quality Improvement Agent
Next analysis: 2026-03-20 — Focus area will be selected based on diversity algorithm (60% custom, 30% standard, 10% reuse)
Beta Was this translation helpful? Give feedback.
All reactions