Summary
PR #286 added version, command, and agent fields to EngineConfig / EngineOptions (aligned with gh-aw), but they are parsed and stored only — not yet wired into the compiled pipeline output. This issue tracks plumbing them through.
Fields to wire
engine.version
gh-aw behavior: Pins the engine CLI to a specific release version (e.g., version: "0.0.422"). Defaults to latest.
Current state: COPILOT_CLI_VERSION is a compile-time constant in common.rs. The version front matter field is parsed into EngineOptions.version but ignored.
Work: When version is set, use it instead of COPILOT_CLI_VERSION in the NuGet install step. When set to "latest", omit the -Version flag. Once install steps move behind Engine (issue #287), this becomes a parameter to the engine's install step generation.
engine.command
gh-aw behavior: Overrides the default engine executable path. Skips the default installation step when set.
Current state: Parsed into EngineOptions.command but ignored. The templates hardcode /tmp/awf-tools/copilot.
Work: When command is set:
- Skip the engine install steps (NuGet install, binary copy)
- Use the custom command path in the AWF invocation instead of
/tmp/awf-tools/copilot
- Validate the path (no shell metacharacters, must be absolute or a bare binary name)
engine.agent
gh-aw behavior: References a custom Copilot agent file in .github/agents/ (e.g., agent: technical-doc-writer → .github/agents/technical-doc-writer.agent.md). Copilot-only feature.
Current state: Parsed into EngineOptions.agent but ignored.
Work: When agent is set, add --agent <value> to the Copilot CLI args in copilot_args(). Validate the identifier (alphanumeric + hyphens only, no path separators).
Dependencies
Summary
PR #286 added
version,command, andagentfields toEngineConfig/EngineOptions(aligned with gh-aw), but they are parsed and stored only — not yet wired into the compiled pipeline output. This issue tracks plumbing them through.Fields to wire
engine.versiongh-aw behavior: Pins the engine CLI to a specific release version (e.g.,
version: "0.0.422"). Defaults tolatest.Current state:
COPILOT_CLI_VERSIONis a compile-time constant incommon.rs. Theversionfront matter field is parsed intoEngineOptions.versionbut ignored.Work: When
versionis set, use it instead ofCOPILOT_CLI_VERSIONin the NuGet install step. When set to"latest", omit the-Versionflag. Once install steps move behindEngine(issue #287), this becomes a parameter to the engine's install step generation.engine.commandgh-aw behavior: Overrides the default engine executable path. Skips the default installation step when set.
Current state: Parsed into
EngineOptions.commandbut ignored. The templates hardcode/tmp/awf-tools/copilot.Work: When
commandis set:/tmp/awf-tools/copilotengine.agentgh-aw behavior: References a custom Copilot agent file in
.github/agents/(e.g.,agent: technical-doc-writer→.github/agents/technical-doc-writer.agent.md). Copilot-only feature.Current state: Parsed into
EngineOptions.agentbut ignored.Work: When
agentis set, add--agent <value>to the Copilot CLI args incopilot_args(). Validate the identifier (alphanumeric + hyphens only, no path separators).Dependencies
versionandcommandboth affect the install/invocation pipeline steps that refactor: complete Engine abstraction — move install, invocation, and paths behind Engine enum #287 is abstracting.