Conversation
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ee609c9f-922d-4ddd-9399-eef288341f5b Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot merge main and recompile |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a8ca74e3-40de-4f9b-82b9-ca1f285fed82 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
This reverts commit 81e0893. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
🧪 Test Quality Sentinel ReportTest Quality Score: 85/100✅ Excellent
Test Classification Details
All other changed test files ( Notable ObservationsStrengths:
Suggestion for improvement (not blocking): Language SupportTests analyzed:
Verdict
📖 Understanding Test ClassificationsDesign Tests (High Value) verify what the system does:
Implementation Tests (Low Value) verify how the system does it:
Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators. References: §24697778239
|
There was a problem hiding this comment.
Pull request overview
Adds an experimental OpenCode agentic engine alongside existing engines, and shifts Crush to a new LLM gateway port to keep both available.
Changes:
- Introduces
opencoderuntime + MCP config rendering, and registers it across the engine registry/catalog, CLI completions, and engine-definition markdown. - Reassigns LLM gateway ports: OpenCode →
10004, Crush →10005, and updates related tests/goldens. - Extends model/domain resolution so OpenCode participates in firewall allowlisting and version/model handling.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/opencode_engine.go | New OpenCode engine runtime (install, secrets, execution steps, config writing, gateway env wiring). |
| pkg/workflow/opencode_mcp.go | Adds MCP JSON config rendering for OpenCode. |
| pkg/workflow/domains.go | Adds OpenCode provider/model domain resolution and integrates it into allowed-domain computation. |
| pkg/constants/constants.go | Adds OpenCodeLLMGatewayPort and moves CrushLLMGatewayPort to 10005. |
| pkg/constants/engine_constants.go | Registers OpenCodeEngine, adds EngineOption metadata, and new model env var constants. |
| pkg/constants/version_constants.go | Adds DefaultOpenCodeVersion. |
| pkg/workflow/compiler_yaml_lookups.go | Adds OpenCode default version + model fallback behavior. |
| pkg/workflow/compiler_yaml.go | Adds OpenCode model env var wiring in generated workflow info. |
| pkg/workflow/agentic_engine.go | Registers NewOpenCodeEngine() in the engine registry. |
| pkg/workflow/*_test.go, pkg/cli/completions_test.go | Updates/extends unit tests to include opencode and new port expectations. |
| pkg/workflow/data/engines/opencode.md | Adds built-in engine markdown definition for OpenCode. |
| pkg/workflow/testdata/TestWasmGolden_CompileFixtures/*.golden | Updates goldens to include .opencode and opencode.jsonc in agent file/folder handling. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comments suppressed due to low confidence (1)
pkg/constants/engine_constants.go:107
- Same issue as OpenCode: "GOOGLE_API_KEY" is listed as a Crush alternative secret, but the repo otherwise uses "GEMINI_API_KEY" and doesn’t reference "GOOGLE_API_KEY" anywhere. Aligning the secret name(s) here will prevent the interactive wizard/docs from suggesting a non-existent secret.
- Files reviewed: 222/222 changed files
- Comments generated: 3
| // OpenCodeEngine represents the OpenCode CLI agentic engine. | ||
| // OpenCode is a provider-agnostic, open-source AI coding agent that supports | ||
| // multiple models via BYOK (Bring Your Own Key). | ||
| type OpenCodeEngine struct { |
| // OpenCodeLLMGatewayPort is the port for the OpenCode LLM gateway | ||
| OpenCodeLLMGatewayPort = 10004 | ||
|
|
||
| // CrushLLMGatewayPort is the port for the Crush LLM gateway | ||
| CrushLLMGatewayPort = 10004 | ||
| CrushLLMGatewayPort = 10005 |
| Value: string(OpenCodeEngine), | ||
| Label: "OpenCode", | ||
| Description: "OpenCode multi-provider AI coding agent (BYOK)", | ||
| SecretName: "COPILOT_GITHUB_TOKEN", | ||
| AlternativeSecrets: []string{"ANTHROPIC_API_KEY", "GOOGLE_API_KEY"}, | ||
| KeyURL: "https://github.com/anomalyco/opencode", | ||
| WhenNeeded: "OpenCode engine workflows (default: Copilot routing)", | ||
| }, |
…gentic-engine-opencode # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a8ca74e3-40de-4f9b-82b9-ca1f285fed82 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done — merged Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot Review all comments |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f111b4fe-2a95-464f-ba87-7071584e7e8e Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Implemented in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/dc69f7b7-ce88-4a78-9332-0603c692f7a1 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Reviewed and addressed the outstanding comments in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
Hey
|
- Update Engine entry to include OpenCode as a 6th experimental engine (PR #27466) - Add Merge Pull Request (merge-pull-request:) safe output entry (PR #27193) - Add Safe Outputs Dependencies (safe-outputs.needs:) entry (PR #27476) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… validation - Add OpenCode (experimental) to engines table, feature comparison, version pinning table, and timeout summary table in reference/engines.md - Document new engine.driver field (Copilot-only, Node.js script basename) with validation rules and usage example - Add ecosystem identifier compile-time validation note to reference/network.md showing that unknown single-word identifiers now fail compilation - Remove stale manual migration entry from guides/upgrading.md that incorrectly stated engine:id:opencode was removed; OpenCode is now a supported engine (re-introduced in #27466) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This change introduces first-class support for the OpenCode agentic engine and keeps Crush available by moving it to the next gateway port. OpenCode is wired as an experimental built-in engine and uses the prior Crush HTTP gateway port.
Engine runtime + registration
opencodeengine runtime implementation and MCP config renderer.opencodein engine registry, engine catalog, built-in engine definitions, and constants-driven engine lists/options.Port reassignment
10004forOpenCodeLLMGatewayPort.CrushLLMGatewayPortfrom10004to10005.Domain/model resolution updates
Surface/API consistency
opencodein CLI engine completions and relevant engine identity tests.pkg/workflow/data/engines/opencode.md).Smoke workflow coverage
.github/workflows/smoke-opencode.md..github/workflows/smoke-opencode.lock.yml.