Skip to content

Fix static GitHub agent enclave startup - #59878

Merged
lpcox merged 10 commits into
mainfrom
copilot/fix-static-github-agent-enclaves
Sep 10, 2026
Merged

Fix static GitHub agent enclave startup#59878
lpcox merged 10 commits into
mainfrom
copilot/fix-static-github-agent-enclaves

Conversation

Copilot AI commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Static GitHub agent enclaves with tools.github: false generated an unusable MCP Gateway topology: guarded enclave-only GitHub backends lacked matching safeoutputs write-sink policy, startup checks used the wrong identity, and deferred CLI tooling could cache an empty schema. Agents also had no actionable guidance for finite-disclosure bit budgets, causing valid-looking enclave calls to fail opaquely.

  • Guard policy generation
    • Derives safeoutputs write-sink accept labels from static enclave repository declarations.
    • Keeps GitHub access scoped to the enclave identity; the primary agent still does not receive GitHub backend access.
    • Avoids referencing automatic-lockdown outputs when that step is not generated.
{
  "guard-policies": {
    "write-sink": {
      "accept": ["private:githubnext/gh-aw-enclave-demo-private"]
    }
  }
}
  • Startup validation

    • Probes enclave-only GitHub routes with AWF_ENCLAVE_GITHUB_MCP_AGENT_ID.
    • Preserves primary identity checks for primary-agent-accessible servers.
  • Deferred enclave CLI

    • Refreshes awf-enclave tool inventory after late backend registration when the startup-time cache is empty.
    • Prevents a permanently stale “0 tools” CLI mount.
  • Finite-disclosure usability

    • Adds generated prompt guidance for enclave response-schema bit budgets.
    • Surfaces bit-budget-exhausted as a distinguishable enclave CLI error hint.
    • Derives confidential schema cardinality guidance from named budget constants.

Run: https://github.com/github/gh-aw/actions/runs/34467468242

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18.5 AIC · ⌖ 7.01 AIC · ⊞ 9.3K ·
Comment /souschef to run again

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
@github-actions

This comment has been minimized.

Copilot AI and others added 5 commits September 10, 2026 05:00
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix static GitHub agent enclaves compilation and startup defects Fix static GitHub agent enclave startup Sep 10, 2026
Copilot AI requested a review from lpcox September 10, 2026 05:19
@github-actions

Copy link
Copy Markdown
Contributor

Great work on this fix! 🎯 This PR properly addresses the static GitHub agent enclave initialization issues by fixing guard policy generation, startup validation, deferred CLI tool mounting, and finite-disclosure usability.

The implementation looks solid:

  • ✅ Guard policies now correctly derive write-sink accept labels from enclave declarations
  • ✅ Startup validation properly probes with enclave identity (AWF_ENCLAVE_GITHUB_MCP_AGENT_ID)
  • ✅ Deferred server tool schemas refresh after late backend registration
  • ✅ Finite-disclosure bit budgets now have actionable guidance in the prompt
  • ✅ Comprehensive test coverage including edge cases (bit-budget exhaustion, deferred servers, identity validation)

This looks ready for review! All checklist items are met — the diff is focused, tests are included, and the changes are well-documented.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by ✅ Contribution Check · copilot · auto · 42.2 AIC · ⌖ 6.13 AIC · ⊞ 9.4K ·

@lpcox
lpcox requested a balanced review from Copilot September 10, 2026 09:20
@lpcox
lpcox marked this pull request as ready for review September 10, 2026 09:20
@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Ponytail Reviewer completed successfully!

Lean already. Ship.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Ponytail Reviewer for #59878

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

Copy link
Copy Markdown
Contributor
🏗️ ADR gate: implementation diverges from the existing ADR

Result

The PR already has ADR coverage via docs/adr/59816-fix-github-mcp-guard-policy-for-enclave-only-tools.md, but the implementation scope now exceeds that ADR.

Evidence reviewed

  • Existing ADR: docs/adr/59816-fix-github-mcp-guard-policy-for-enclave-only-tools.md
  • PR description and diff for Fix static GitHub agent enclave startup #59878
  • Changed files including:
    • pkg/workflow/mcp_github_config.go
    • actions/setup/sh/check_mcp_servers.sh
    • actions/setup/js/mcp_cli_bridge.cjs
    • pkg/workflow/mcp_cli_mount.go

Divergences / scope creep

  1. The ADR decision is narrower than the current implementation.
    The ADR covers eliminating invalid guard-policy references and adding a matching static-enclave write-sink policy. The PR also changes startup validation identity selection, deferred CLI schema refresh behavior, and generated finite-disclosure prompt guidance.
  2. New architectural behavior is not captured in the ADR alternatives or consequences.
    The code now introduces live tools/list refresh for deferred servers and explicit bit-budget UX guidance/hints for enclave responses, which are meaningful design decisions beyond the guard-policy fix.
  3. The implementation is partially aligned, but not fully documented.
    The guard-policy portion aligns with the ADR, but the broader enclave startup and CLI usability changes need ADR coverage.

Next action

Please update the ADR (or add a follow-up ADR) so it explicitly covers the expanded decision scope in this PR: enclave-specific GitHub startup probing, deferred awf-enclave tool discovery refresh, and finite-disclosure bit-budget guidance/error handling.

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · pi · gpt54 · 16.5 AIC · ⌖ 7.34 AIC · ⊞ 9.7K ·
Comment /review to run again

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The deferred CLI refresh marker is not propagated to the later agent step, leaving the stale-tool defect unresolved.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Fixes static GitHub enclave startup, deferred CLI discovery, and finite-disclosure guidance.

Changes:

  • Generates enclave-scoped guard and write-sink policies.
  • Uses the enclave identity for GitHub startup checks.
  • Refreshes deferred CLI schemas and adds budget diagnostics.
File summaries
File Description
.changeset/fix-enclave-only-github-guard-policy.md Documents the fixes.
pkg/workflow/mcp_setup_gateway.go Selects the enclave check identity.
pkg/workflow/mcp_github_config.go Derives static-enclave write-sink policy.
pkg/workflow/mcp_cli_mount.go Mounts enclave CLI and adds budget guidance.
pkg/workflow/mcp_cli_mount_test.go Tests generated guidance.
pkg/workflow/enclave_github_proxy_test.go Tests compiled policies and identity.
actions/setup/sh/check_mcp_servers.sh Overrides GitHub probe authentication.
actions/setup/sh/check_mcp_servers_test.sh Tests enclave-authenticated probes.
actions/setup/js/mcp_cli_bridge.cjs Refreshes tools and adds budget hints.
actions/setup/js/mcp_cli_bridge.test.cjs Tests refresh and error hints.
Review details
  • Files reviewed: 10/10 changed files
  • Comments generated: 2
  • Review effort level: Balanced

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread actions/setup/js/mcp_cli_bridge.cjs Outdated
* @returns {Promise<Array<{name: string, description?: string, inputSchema?: {properties?: Record<string, {description?: string, type?: string}>, required?: string[]}}>>}
*/
async function refreshDeferredToolsIfNeeded(tools, serverName, serverUrl, apiKey, toolsFile) {
if (tools.length > 0 || !serverInCommaList(serverName, process.env[DEFERRED_SERVERS_ENV] || "")) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ddb0712. The deferred refresh path now treats awf-enclave as deferred even when GH_AW_MCP_DEFERRED_SERVERS is step-local/missing, so the wrapper no longer depends on that env handoff.

Comment thread pkg/workflow/mcp_cli_mount.go Outdated
Comment on lines +415 to +416
case "internal", "sealed":
repoLines = append(repoLines, fmt.Sprintf("- `%s` (`%s`) has a finite per-run budget; keep response schema cardinality within the budget reported by `awf-enclave --help`.", repo.Repo, repo.Sensitivity))

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ddb0712. sealed repos now emit explicit 0-bit/no-enclave guidance and instruct agents not to invoke awf-enclave enclave_run_agent for that repository.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed with harden/audit lens (bug-fix change touching startup/error-state paths). One actionable finding on error-state hardening in the deferred tools refresh path (missing try/catch around the tools/list call could turn a transient "server not ready" condition into a hard CLI failure). The rest of the change — guard-policy generation, enclave identity checks, and bit-budget prompt guidance — looks correct and is covered by new tests.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet50 · 75 AIC · ⌖ 13.7 AIC · ⊞ 8.4K

Comment thread actions/setup/js/mcp_cli_bridge.cjs Outdated
if (sessionId) {
headers["Mcp-Session-Id"] = sessionId;
}
const resp = await httpPostJSON(serverUrl, headers, { jsonrpc: "2.0", id: TOOLS_LIST_REQUEST_ID, method: "tools/list" }, DEFAULT_HTTP_TIMEOUT_MS);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mcpInitialize internally catches its own errors (returns "" on failure), but this raw httpPostJSON call for tools/list has no try/catch. If the deferred awf-enclave server hasn't finished registering yet (connection refused, timeout, non-JSON response), this throws and propagates out of refreshDeferredToolsIfNeededmain(), causing core.setFailed('mcp_cli_bridge fatal: ...') for what should be a soft "not ready yet" case — exactly the scenario this function is meant to handle gracefully (empty cache due to late registration). Consider wrapping this call in try/catch and falling back to the original tools (mirroring the refreshed.length === 0 branch) so a transient failure doesn't hard-fail the CLI invocation.

@copilot please address this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ddb0712. Deferred tools/list refresh is now wrapped with bounded retry and error hardening; transport/protocol failures are handled as soft warnings and fall back to cached tools instead of hard-failing the bridge.

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-09-10T09:25:05.668+00:00
review_event: REQUEST_CHANGES
top_themes:
  - deferred awf-enclave tool schema refresh still races empty tools/list
files_reviewed:
  - .changeset/fix-enclave-only-github-guard-policy.md
  - actions/setup/js/mcp_cli_bridge.cjs
  - actions/setup/js/mcp_cli_bridge.test.cjs
  - actions/setup/sh/check_mcp_servers.sh
  - actions/setup/sh/check_mcp_servers_test.sh
  - pkg/workflow/enclave_github_proxy_test.go
  - pkg/workflow/mcp_cli_mount.go
  - pkg/workflow/mcp_cli_mount_test.go
  - pkg/workflow/mcp_github_config.go
  - pkg/workflow/mcp_setup_gateway.go
comment_count: 1

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 104.7 AIC · ⌖ 5.57 AIC · ⊞ 22.3K ·
Comment /review to run again

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request changes

The deferred awf-enclave schema refresh is still flaky. This patch replaces a permanently stale cache with a single live tools/list probe, but the mount path already documents that tools/list can return 0 while the backend is still building its schema. Without the same bounded retry here, the first post-start invocation can still surface an empty CLI/help state for the exact feature this PR is trying to make reliable.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 104.7 AIC · ⌖ 5.57 AIC · ⊞ 22.3K
Comment /review to run again

Comment thread actions/setup/js/mcp_cli_bridge.cjs Outdated
const result = resultMessage && typeof resultMessage === "object" && "result" in resultMessage && resultMessage.result && typeof resultMessage.result === "object" ? resultMessage.result : null;
const refreshed = result && "tools" in result && Array.isArray(result.tools) ? result.tools : [];
if (refreshed.length === 0) {
core.warning(`[${serverName}] live tools/list still returned 0 tools for deferred server`);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This refresh still does a single live tools/list call, so awf-enclave can stay stuck with an empty schema when the deferred backend has started but has not finished building its tool definitions yet.

💡 Why this blocks

mount_mcp_as_cli.cjs already has fetchMCPToolsWithRetry() because a successful MCP handshake can still race the backend's schema construction and return zero tools for a while. This new fallback skips that retry path and treats the first empty live result as final, which means the first real awf-enclave invocation can still show no commands or parse args without a schema even after startup has otherwise succeeded.

Please reuse the existing empty-tools retry/backoff logic here, or add the same bounded retry behavior before preserving the empty cache.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ddb0712. The deferred refresh now uses bounded retries for empty tools/list results, and tests cover both retry-success and retry-exhaustion behavior.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skills-Based Review 🧠

Applied /codebase-design and /tdd — approving with a few non-blocking suggestions.

📋 Key Themes & Highlights

Key Themes

  • Constant drift risk: the finite-disclosure bit-budget constants in mcp_cli_mount.go mirror gh-aw-firewall's internal formula by comment convention only, with no version gate or test that would catch drift.
  • Doc gap: deriveWriteSinkGuardPolicyFromWorkflow's doc comment doesn't mention the new static-enclave-only write-sink derivation path this PR adds.
  • Test gap: refreshDeferredToolsIfNeeded's "live gateway still returns 0 tools" fallback branch (the exact failure mode being fixed) isn't covered by a test.

Positive Highlights

  • ✅ Root-cause fixes, not symptom patches — guard policy, startup identity, and CLI cache staleness are each addressed at their source with matching regression tests (TestCompileEnclaveOnlyGitHubToolsGuardPolicy, shell Test 20, JS refresh test).
  • ✅ Clean reuse of existing helpers (writeSinkGuardPolicy, writeSinkAcceptLabelsForRepos) to keep the static/dynamic enclave write-sink derivation DRY.
  • ✅ New behavior is opt-in and narrowly scoped: refreshDeferredToolsIfNeeded only triggers for servers listed in GH_AW_MCP_DEFERRED_SERVERS with an empty cache, and the enclave-only GitHub identity override in check_mcp_servers.sh is gated on githubBackendIsStaticEnclaveDelegationOnly.
  • ✅ Ran targeted Go tests (TestCompileEnclaveOnlyGitHubToolsGuardPolicy, TestBuildMCPCLIPromptSection_StaticEnclaveBudgetGuidance, TestGetMCPCLIServerNames_CopilotIncludesManifestServersInPromptList) — all pass.

@copilot please address the review comments above.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 159.9 AIC · ⌖ 15.3 AIC · ⊞ 10.3K
Comment /matt to run again

Comments that could not be inline-anchored

pkg/workflow/mcp_cli_mount.go:412

[/codebase-design] These bit-budget constants (enclaveResultStatusBitCost, enclaveTimingBucketBits, enclaveConfidentialRunBits) are a hand-copied mirror of gh-aw-firewall's internal charge formula, kept in sync only by a code comment.

<details>
<summary>💡 Why this matters</summary>

If gh-aw-firewall changes RESULT_STATUS_BIT_COST, TIMING_BUCKET_BITS, or ENCLAVE_SENSITIVITY_RUN_BITS.confidential in a future release, this generated prompt guidance will silently start reporting …

pkg/workflow/mcp_github_config.go:683

[/codebase-design] The doc comment above deriveWriteSinkGuardPolicyFromWorkflow still only describes two write-sink derivation cases (explicit guard policy, auto-lockdown) plus the dynamic-enclave fallback, but this PR adds a third: the static-enclave-only path (staticEnclaveWriteSinkGuardPolicy) now short-circuits before dynamicEnclaveWriteSinkGuardPolicy in two places.

<details>
<summary>💡 Suggested doc update</summary>

Add a bullet noting that when GitHub tools are disabled for …

actions/setup/js/mcp_cli_bridge.test.cjs:229

[/tdd] Good coverage of the happy path, but the "still returns 0 tools after a live refresh" branch in refreshDeferredToolsIfNeeded (line ~1163 in mcp_cli_bridge.cjs) has no test.

<details>
<summary>💡 Suggested test</summary>

That branch is exactly the failure mode this PR is fixing ("deferred CLI tooling could cache an empty schema"), so it's the highest-value case to pin down with a regression test:

it(&quot;keeps the empty cache and warns when the live gateway also returns 0 too…

</details>

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please address the current review feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to a maintainer.

Open review signals:

  • PR Code Quality Reviewer requested changes on the current head commit.
  • Additional reviewer comments note the deferred tools/list refresh still needs a bounded retry or hardening pass.

Once updated, rerun the relevant validation and resolve addressed review threads.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 14.2 AIC · ⌖ 7.04 AIC · ⊞ 9.3K ·
Comment /souschef to run again

@lpcox

lpcox commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

@copilot address review feedback

Copilot AI and others added 2 commits September 10, 2026 10:19
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

@copilot Please address the current review feedback, refresh the branch if needed, and run the pr-finisher skill before handing back to a maintainer.

Open review signals:...

Updated in ddb0712 and addressed the open review feedback: deferred awf-enclave refresh no longer depends on step-local env propagation, now has bounded retry + error hardening, and sealed guidance is explicit no-invocation. I reran local validation (make fmt, targeted Go/JS tests, make lint, make test-unit, make test, and make agent-report-progress) plus parallel_validation (Code Review + CodeQL). Remaining note from automated review is a possible future optimization to cache exhausted-refresh outcomes; no correctness issue is currently open.

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>

Copilot AI commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

@copilot address review feedback

Addressed in 0386fdb. I applied the remaining hardening feedback by caching exhausted deferred refresh attempts per server (process-local) so repeated calls don’t pay the full retry loop, added regression coverage, and reran validation (make fmt, targeted JS tests, make lint, make test-unit, make test, make agent-report-progress, plus parallel_validation).

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot The latest author updates indicate the requested review feedback has been addressed on the current head. Please refresh branch metadata if needed, rerun the pr-finisher skill, and resolve any addressed review threads before handing back to a maintainer.

Open signals to verify on the current head:

  • prior automated review requests were against earlier commits
  • confirm all relevant checks for 0386fdb are complete
  • resolve any review threads that are fully addressed

Run: https://github.com/github/gh-aw/actions/runs/34467468242

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18.5 AIC · ⌖ 7.01 AIC · ⊞ 9.3K ·
Comment /souschef to run again

Copilot AI commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

@copilot The latest author updates indicate the requested review feedback has been addressed on the current head. Please refresh branch metadata if needed, rerun the pr-finisher skill, and resolve a...

Verified on head 0386fdb: prior review requests are against earlier commits and each thread already has a substantive fix reply from @copilot; all remaining open threads are outdated. I reran local validation (make fmt, make lint, make test-unit, make test, make recompile) and reviewed latest branch workflow runs/logs, including run 34467468242 and current-head runs (no failed jobs reported in retrieved logs).

@lpcox
lpcox merged commit 8da0eb2 into main Sep 10, 2026
43 checks passed
@lpcox
lpcox deleted the copilot/fix-static-github-agent-enclaves branch September 10, 2026 11:10
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.89.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Static GitHub agent enclaves are unusable: five confirmed compilation and startup defects

4 participants