Refactor external agent runtime lifecycle - #7129
Conversation
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (2 files)
✨ New Files (3 files)
Coverage comparison generated by |
There was a problem hiding this comment.
Pull request overview
Introduces an external runtime lifecycle abstraction while preserving Compose handling for Docker and gVisor.
Changes:
- Adds backend contracts, resolution, and adaptation.
- Moves sbx lifecycle logic out of
main-action. - Adds lifecycle tests and extension documentation.
Show a summary per file
| File | Description |
|---|---|
src/sbx-runtime-backend.ts |
Implements the sbx backend lifecycle. |
src/sbx-runtime-backend.test.ts |
Tests sbx lifecycle behavior. |
src/external-runtime-backend.ts |
Defines and adapts external backends. |
src/external-runtime-backend.test.ts |
Tests resolution and adaptation. |
src/external-runtime-backend-resolver.ts |
Registers and resolves backends. |
src/container-runtime.ts |
Updates microVM extension guidance. |
src/commands/main-action.ts |
Integrates backend execution and cleanup. |
src/commands/main-action.test.ts |
Tests resolver failure handling. |
src/commands/main-action-coverage-gaps.test.ts |
Tests external-backend signal handling. |
src/cli-workflow.ts |
Exports the workflow dependency contract. |
docs/sbx-integration.md |
Documents backend registration. |
Review details
Tip
Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 11/11 changed files
- Comments generated: 1
- Review effort level: Balanced
|
✅ Copilot review passed with no inline comments. @lpcox Add the |
72e0244 to
2ddc5b8
Compare
|
🛡️ Smoke Copilot Network Isolation confirmed the egress allowlist is enforced. ✅ Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "example.com"See Network Configuration for more information.
|
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅
|
|
✅ Smoke Claude passed
|
|
❌ Contribution Check failed. Please review the logs for details.
|
|
✅ Build Test Suite completed successfully!
|
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 Warning Firewall blocked 5 domainsThe following domains were blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "msfeed12.pkgs.visualstudio.com"
- "msfeed17.pkgs.visualstudio.com"
- "msfeed2.pkgs.visualstudio.com"
- "msfeed25.pkgs.visualstudio.com"
- "registry.npmjs.org"See Network Configuration for more information.
|
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓
|
|
🔌 Smoke Services — All services reachable! ✅
|
|
✅ Smoke Gemini completed. All facets verified. 💎 Gemini Engine Smoke Test completed successfully. All tests passed.
|
|
📰 VERDICT: Smoke Docker Sbx has concluded. All systems operational. This is a developing story. 🎤
|
|
🚀 Security Guard has started processing this pull request |
|
❌ Smoke Copilot BYOK AOAI (Entra) reports failed. AOAI BYOK (Entra) mode investigation needed...
|
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.
|
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤
|
|
❌ Smoke Copilot BYOK AOAI (api-key) reports failed. AOAI BYOK (api-key) mode investigation needed...
|
|
EGRESS_RESULT allow=pass deny=pass ✅ Allowed domain (github.com) reachable: Overall status: PASS — network isolation egress enforcement working as expected. cc @lpcox Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "example.com"See Network Configuration for more information.
|
|
Smoke Test: Copilot BYOK (Direct) Mode
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY) via api-proxy → api.githubcopilot.com Overall: PASS cc @lpcox
|
Smoke Test: Claude Engine Validation
Overall result: PASS
|
Smoke Test Results
Overall: FAIL — host.docker.internal DNS resolution failed inside the AWF sandbox.
|
|
Smoke Test: Copilot Engine
Overall: PASS cc @lpcox
|
Smoke Test: API Proxy OTel Tracing — Results
Overall: All applicable scenarios passed.
|
Gemini Engine Smoke Test Results
Overall Status: PASS
|
Chroot Version Comparison Results
Overall: Not all tests passed (
|
Smoke Test
Warning Firewall blocked 5 domainsThe following domains were blocked by the firewall during workflow execution:
To allow these domains, add them to the network:
allowed:
- defaults
- "msfeed12.pkgs.visualstudio.com"
- "msfeed17.pkgs.visualstudio.com"
- "msfeed2.pkgs.visualstudio.com"
- "msfeed25.pkgs.visualstudio.com"
- "registry.npmjs.org"See Network Configuration for more information.
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — PASS All repositories cloned successfully and all builds/tests completed without errors, including via the Squid HTTP/HTTPS forward proxy (Maven required
|
|
Smoke Test: Docker Sbx Validation
Overall: PASS cc @lpcox
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2ddc5b8 to
e8e68c0
Compare
Summary
Stack layer 1/6.
main-actionBehavior is intentionally unchanged for Docker, gVisor, and sbx, including API-proxy reflection, credential environment handling, diagnostics, timeout/TTY behavior, keep-containers semantics, and exit-code propagation.
Validation
tsc --noEmit -p tsconfig.check.jsonnpm run buildStack