Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
…rors Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Resolve ambient module-cache discovery, keep native MCP profile-only, and validate merged tools.profile values. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot make feature experimental |
|
@copilot apply to existing go centric agentic workflows like "pure loc |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
| } | ||
| await preparation; | ||
| } | ||
| const gitArguments = ["--no-pager", "-c", `core.hooksPath=${hooks}`, "-c", "core.fsmonitor=false", "-c", "core.untrackedCache=false", "-c", "commit.gpgSign=false", "-c", "protocol.allow=never"]; |
|
@copilot investigate implementing the profile as a shared agentic workflow (without profile keyword). Identify missing features |
This comment has been minimized.
This comment has been minimized.
|
@copilot split and add extensive testing. Consider other profile for typescript, python |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Split done in 8a1e9a2: extracted the Go-specific On typescript/python: investigated and found a hard architectural blocker, not just missing effort.
Given that trade-off touches the core security guarantee of the profile, I'm not making that change without a dedicated design/security review, so I haven't added |
| github: | ||
| mode: local | ||
| min-integrity: none |
|
Hey ✅ This PR looks great and ready for review! It includes:
The 122-file change set is well-motivated by the scope of the feature—adding a complete new tool profile requires coordination across the compiler, runtime, documentation, safe-outputs, and test layers. The diff is focused and cohesive. Warning Firewall blocked 2 domainsThe following domains were blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "github.com"
- "o205451.ingest.us.sentry.io"See Network Configuration for more information.
|
| if [ -z "${RUNNER_TEMP:-}" ]; then | ||
| echo "RUNNER_TEMP is required to stage Copilot SDK MCP config" >&2 | ||
| exit 1 | ||
| fi | ||
| if ! (umask 077 && mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-config"); then | ||
| echo "Failed to create Copilot SDK MCP config directory" >&2 | ||
| exit 1 | ||
| fi | ||
| if ! chmod 700 "${RUNNER_TEMP}/gh-aw/mcp-config"; then | ||
| echo "Failed to secure Copilot SDK MCP config directory" >&2 | ||
| exit 1 | ||
| fi | ||
| if ! (umask 077 && cp "$HOME/.copilot/mcp-config.json" "${RUNNER_TEMP}/gh-aw/mcp-config/copilot-sdk.json"); then | ||
| echo "Failed to stage Copilot SDK MCP config" >&2 | ||
| exit 1 | ||
| fi | ||
| if ! chmod 600 "${RUNNER_TEMP}/gh-aw/mcp-config/copilot-sdk.json"; then | ||
| echo "Failed to secure Copilot SDK MCP config" >&2 | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
@copilot refactor into actions/setup/sh shell script
There was a problem hiding this comment.
Refactored in 6ffe4b8: the staging block now lives in actions/setup/sh/stage_copilot_sdk_mcp_config.sh (installed to ${RUNNER_TEMP}/gh-aw/actions/ by actions/setup/setup.sh, same as the other sh/*.sh scripts). The generated step is reduced to a RUNNER_TEMP guard, bash "${RUNNER_TEMP}/gh-aw/actions/stage_copilot_sdk_mcp_config.sh" || exit 1, and the GH_AW_MCP_CONFIG export; the fail-closed test matrix now executes the shipped script.
| } | ||
|
|
||
| /** @param {string[]} inputs @param {string[]} supplied */ | ||
| function diagnosticMasks(inputs, supplied) { |
There was a problem hiding this comment.
Done in 9dfa2b2. diagnosticMasks no longer re-derives credential patterns: the Authorization-header, URL-userinfo, and query-parameter regexes moved into an exported CREDENTIAL_CONTEXT_PATTERNS in redact_secrets.cjs, alongside a new side-effect-free collectCredentialLiterals(content) that scans both those and BUILT_IN_PATTERNS. Diagnostics now calls that helper (plus the already-shared collectAddMaskedValues/applyAddMaskRedaction), so diagnostic, artifact, and step-summary redaction share one source of truth.
redactBuiltInPatterns itself isn't callable here — it logs via the core global, which isn't installed in the SDK driver process — hence the core-free collector rather than a direct call. Added 9 unit tests for the new helper; all 191 repo-profile and redaction tests pass.
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot investigate supporting the go profile in non-copilot-sdk like copilot/claude/codex/pi engines |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Investigated. Nothing blocks this in principle — the blocker is tool delivery, not the runtime — but it needs a new engine-neutral server plus a per-engine compiler gate. Findings: 1. Tool delivery (the main missing piece). Non-SDK engines can only receive custom tools over MCP;
Missing work either way: a 2. Shell-free enforcement is available on every engine, through different knobs. copilot/claude/gemini via 3. Closed tool catalog weakens outside the SDK. The SDK locks the native+MCP catalog in-process. Elsewhere the equivalent is engine allow-list flags plus the gateway's per-server 4. Session state and cancellation port cleanly. The validate→commit fingerprint is per-session state; an MCP server process is per-run, so it survives, and a restarted server fails closed (re-validation required). 5. Policy binding and path parity are the remaining unknowns. The compile-time projection ( Recommendation: keep this PR SDK-only, and scope a follow-up that (a) lifts |
|
@copilot break down this implementation in su feature / front matter field that could be used to reassemble the feature as a shared agentic workflow |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Implemented in 7e12f86 and 2c80db6. |
Copilot SDK workflows lacked a closed native repository lifecycle when shell and task tools were disabled. This adds an opt-in
tools.profile: goruntime that supports constrained repository inspection, editing, validation, and publication without arbitrary process access.Profile contract
tools.profile: go(including merged imported profiles).Native repository runtime
status,diff,prepare_branch,format,readiness,validate, andcommit.Publication safeguards
GITHUB_SHA.MCP, packaging, and diagnostics
branch_pattern_helpers.cjs.profilewhen imported.Coverage and documentation