Skip to content

Commit aae0703

Browse files
Merge branch 'main' into copilot/aw-fix-security-audit-failure
2 parents 6abccad + ef14fab commit aae0703

78 files changed

Lines changed: 2539 additions & 471 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/aw/agent-runtime-instructions.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@ disable-model-invocation: true
55

66
# Agent Runtime Instructions
77

8-
Use these instructions when creating or updating workflows that mention Docker, gVisor, Docker sbx, ARC DinD, self-hosted runners, or `sandbox.agent.runtime-install`.
8+
Use these instructions when creating or updating workflows that mention Docker, gVisor, Docker sbx, Cloud Hypervisor, ARC DinD, self-hosted runners, or `sandbox.agent.runtime-install`.
99

1010
## Runtime fields
1111

1212
- Omit `sandbox.agent.runtime` for the default Docker agent runtime.
1313
- Set `sandbox.agent.runtime: gvisor` only when the runner has a local Docker daemon and can install or already has `runsc`.
1414
- Set `sandbox.agent.runtime: docker-sbx` only when the runner supports KVM-backed microVMs.
15+
- Set `sandbox.agent.runtime: cloud-hypervisor` only for the preview microVM runtime on a GitHub-hosted Ubuntu x86_64 runner with `/dev/kvm`; prefer `docker-sbx` or `gvisor` when those host constraints are not guaranteed.
1516
- Do not set `sandbox.agent.runtime: docker`; Docker is selected by omitting the field.
1617
- Do not set `sandbox.agent.runtime: sbx`; `sbx` is only a bounded-query runtime name.
1718
- Set `runner.topology: arc-dind` for ARC or equivalent Kubernetes runners that use a Docker-in-Docker sidecar. This is a runner topology, not an agent runtime.
1819

1920
## Compatibility
2021

21-
- Do not combine `runner.topology: arc-dind` with `sandbox.agent.runtime: gvisor` or `sandbox.agent.runtime: docker-sbx`.
22+
- Do not combine `runner.topology: arc-dind` with `sandbox.agent.runtime: gvisor`, `sandbox.agent.runtime: docker-sbx`, or `sandbox.agent.runtime: cloud-hypervisor`.
2223
- ARC DinD workflows must be rootless: do not add `sudo`, `apt-get install`, or other host package bootstrap steps.
2324
- Docker sbx requires KVM and normally does not work on ARC DinD because the sbx daemon must run on the runner host.
25+
- Cloud Hypervisor requires `RUNNER_ENVIRONMENT=github-hosted`, Ubuntu Linux x86_64, and `/dev/kvm`; it is not supported on self-hosted or ARC DinD runners.
2426

2527
## `runtime-install`
2628

@@ -43,6 +45,12 @@ Use these instructions when creating or updating workflows that mention Docker,
4345
- `DOCKER_USERNAME` and `DOCKER_PAT` remain required even with `runtime-install: false`, because compiled workflows refresh sbx credentials immediately before agent execution.
4446
- Do not use Docker sbx for workflows triggered from untrusted forks unless the trigger and credential model safely provide those secrets.
4547

48+
## Cloud Hypervisor guidance (preview)
49+
50+
- Preview scope is narrow: GitHub-hosted runners only, Ubuntu Linux x86_64 only, and `/dev/kvm` must be present.
51+
- The compiler emits host preflight and release-asset provisioning steps that download and checksum-verify the pinned Cloud Hypervisor binary, kernel, rootfs, and supervisor from the `gh-aw-firewall` release before AWF starts.
52+
- Do not recommend this runtime for self-hosted, non-Ubuntu, or non-x86_64 runners; use `docker-sbx` or `gvisor` instead.
53+
4654
## ARC DinD guidance
4755

4856
- Use `runner.topology: arc-dind` when `DOCKER_HOST` points to a DinD sidecar such as `tcp://localhost:2375` or `tcp://dind:2375`.

.github/aw/enclaves.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
description: Private-repository enclaves (preview) — finite-disclosure access to approved private repos via the MCP gateway.
3+
---
4+
5+
# Private Repository Enclaves
6+
7+
Use these instructions when a workflow needs bounded, auditable access to a private repository other than the one the workflow runs in.
8+
9+
## What it is
10+
11+
- The top-level `enclaves:` array (1-2 entries) enables finite-disclosure access to approved private repositories through the compiler-launched MCP gateway.
12+
- Each entry is either a **script enclave** (`script:` + `repos:`) registering `enclave_run_script`, or an **agent enclave** (`agent:` + `repos:`) registering `enclave_run_agent`.
13+
- Omit `enclaves:` entirely to disable the feature — this is the default.
14+
- This is a preview feature gated on `github/gh-aw-firewall#6992`; an older pinned AWF version will not provide the enclave server.
15+
16+
## Prerequisites
17+
18+
- Enclaves require AWF network isolation. Set `sandbox.agent.sudo: false` (or use the `docker-sbx` runtime) so the compiler launches the MCP gateway in bridge mode and AWF can attach it to the isolated topology.
19+
- Each `repos:` entry needs `repo:` (`owner/name`) and `sensitivity:` (`public`, `internal`, `confidential`, or `sealed`).
20+
21+
## Example
22+
23+
```yaml
24+
sandbox:
25+
agent:
26+
id: awf
27+
sudo: false
28+
enclaves:
29+
- script:
30+
repos:
31+
- repo: octo-org/private-service
32+
sensitivity: confidential
33+
timeout: 45
34+
- agent:
35+
model: gpt-5
36+
repos:
37+
- repo: octo-org/private-service
38+
sensitivity: confidential
39+
timeout: 180
40+
```
41+
42+
## Rules
43+
44+
- Each enclave type (`script`, `agent`) can appear at most once.
45+
- If the same repository appears in both entries, its `sensitivity` must match — the information budget is shared across executor types.
46+
- AWF fixes the script enclave's network and interpreter, and the agent enclave's network, internally; do not attempt to override these in workflow frontmatter.
47+
- A fresh masked capability is generated per workflow run and passed only to the MCP gateway and AWF, never to the primary agent environment.
48+
- `timeout:` per enclave entry is capped at 540 seconds (AWF reserves the final 60 seconds of its 600-second finite-disclosure bucket for cleanup). The gateway itself enforces a 630-second tool timeout (600s AWF bucket + 30s transport allowance) — treat this as an enforcement bound, not a wall-clock guarantee.
49+
50+
See also: [agent-runtime-instructions.md](agent-runtime-instructions.md) for `sandbox.agent` fields, and [network.md](network.md) for network isolation defaults.

.github/aw/github-agentic-workflows.md

Lines changed: 3 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/aw/syntax-tools-imports.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ mcp-servers:
171171

172172
`auth.type: github-oidc` uses GitHub Actions OIDC tokens for secure server-to-server authentication without static credentials. The `audience` field defaults to the server URL when omitted.
173173

174+
- `required:` - Whether a stdio or HTTP MCP server must pass its startup connectivity check (boolean, default: `true`). Set `false` for an optional server so a failed startup check only logs a warning and the workflow continues without it, instead of failing the run.
175+
174176
### Engine Network Permissions
175177

176178
Control network access via the top-level `network:` field (defaults to `network: defaults` — basic infrastructure only). For workflows that build, test, or install packages, always add the language ecosystem alongside `defaults`:

.github/skills/agentic-workflows/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Load these files from `github/gh-aw` (they are not available locally).
3434
- `.github/aw/deployment-status.md`
3535
- `.github/aw/designer-mappings.md`
3636
- `.github/aw/designer.md`
37+
- `.github/aw/enclaves.md`
3738
- `.github/aw/evals.md`
3839
- `.github/aw/experiments.md`
3940
- `.github/aw/github-agentic-workflows.md`

.github/workflows/ai-moderator.lock.yml

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/daily-community-attribution.lock.yml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/daily-community-attribution.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,4 +613,6 @@ If you encounter a genuine error that prevents completion (e.g., data fetch fail
613613

614614
### Output Format
615615

616-
Structure reports as: overview → key metrics/issues → collapsible detail → next actions.
616+
- Use `###` (h3) or lower for all report headers; never use `#` or `##` inside the report body.
617+
- Wrap long lists, tables, and detailed findings in `<details><summary><b>...</b></summary>...</details>` blocks to reduce scrolling.
618+
- Structure reports as: overview → key metrics/issues → collapsible detail → next actions.

.github/workflows/daily-experiment-report.lock.yml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/daily-experiment-report.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -615,4 +615,6 @@ before applying it, using a neutral gray color (e.g. `#808080`) and a short desc
615615

616616
### Output Format
617617

618-
Structure reports as: overview → key metrics/issues → collapsible detail → next actions.
618+
- Use `###` (h3) or lower for all report headers; never use `#` or `##` inside the report body.
619+
- Wrap long lists, tables, and detailed findings in `<details><summary><b>...</b></summary>...</details>` blocks to reduce scrolling.
620+
- Structure reports as: overview → key metrics/issues → collapsible detail → next actions.

0 commit comments

Comments
 (0)