Skip to content

Pin pull_request activation checkout to base SHA - #63499

Open
pelikhan with Copilot wants to merge 15 commits into
mainfrom
copilot/fix-activation-job-checkout-issue
Open

pelikhan with Copilot wants to merge 15 commits into
mainfrom
copilot/fix-activation-job-checkout-issue

Conversation

Copilot AI commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

For pull_request-triggered workflows, the activation job could build runtime imports and install skills from PR-head content before base-branch restoration ran in the agent job. This allowed same-repo PR authors with activation rights to influence the instructions used to review their own PR.

  • Activation checkout hardening
    • Detects workflows that include a pull_request trigger.
    • Emits a ref: for the activation sparse checkout that uses the PR base SHA on pull request events.
    • Preserves existing fallback refs for mixed-trigger workflows and workflow_call.
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request != null && github.event.pull_request.base.sha || github.sha }}
  • Workflow call compatibility

    • Keeps workflow_call activation checkouts pinned to steps.resolve-host-repo.outputs.target_checkout_ref.
    • Uses the PR base SHA only when the active event is pull_request.
  • Regression coverage

    • Adds focused compiler tests for pull_request, mixed triggers, workflow_call + pull_request, and pull_request_target behavior.
  • Generated workflow updates

    • Regenerates affected lock files so existing repository workflows pick up the safer activation checkout.

pr-sous-chef branch refresh requested from run https://github.com/github/gh-aw/actions/runs/36221620757

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 29.7 AIC · ⌖ 8.89 AIC · ⊞ 9.5K · ◷
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 16 AIC · ⌖ 8.54 AIC · ⊞ 9.5K · ◷
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 23.1 AIC · ⌖ 8.45 AIC · ⊞ 9.5K · ◷
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 22.7 AIC · ⌖ 8.62 AIC · ⊞ 9.7K · ◷
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 20.7 AIC · ⌖ 8.54 AIC · ⊞ 9.7K · ◷
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 38.8 AIC · ⌖ 8.68 AIC · ⊞ 9.7K · ◷
Comment /souschef to run again

Copilot AI and others added 2 commits September 25, 2026 19:56
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix activation job checkout order for pull request workflows Pin pull_request activation checkout to base SHA Sep 25, 2026
Copilot AI requested a review from pelikhan September 25, 2026 20:05
@pelikhan
pelikhan marked this pull request as ready for review September 25, 2026 20:23
Copilot AI balanced review requested due to automatic review settings September 25, 2026 20:23
@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

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

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

@github-actions

github-actions Bot commented Sep 25, 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

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Sep 25, 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 25, 2026 •

Copy link
Copy Markdown
Contributor

✅ Ponytail Reviewer completed successfully!

Lean already. Ship.

Generated by Ponytail Reviewer for #63499

@github-actions

github-actions Bot commented Sep 25, 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

Copy link
Copy Markdown
Contributor
🏗️ ADR Required — draft added for PR #63499

I found that this PR requires ADR enforcement because the prefetch summary reports 154 added lines in default business-logic directories, which is above the 100-line threshold.

Evidence used

  • /tmp/gh-aw/agent/adr-prefetch-summary.json: requires_adr_by_default_volume: true
  • PR title/body: "Pin pull_request activation checkout to base SHA" and the explanation that pull_request activation could ingest PR-head content before base restoration
  • PR diff: generated workflows now set activation checkout ref: to github.event.pull_request.base.sha on pull_request events
  • Existing ADR search: no ADR on this branch or in the PR body covered this exact decision with the required Michael Nygard sections

Decision inferred from the PR

The architectural decision is to treat activation-time workflow imports and skills as trusted-base inputs for pull_request events by pinning activation checkout to the PR base SHA, while preserving existing behavior for other trigger types.

Action taken

I added a draft ADR to this branch:

  • docs/adr/63499-pin-pull-request-activation-checkout-to-base-sha.md

Next action for the author

Please review and finalize that ADR so the security rationale, alternatives, and trade-offs are explicitly recorded before merge.

🏗️ ADR gate enforced by Design Decision Gate 🏗️ · pi · gpt54 · 29.1 AIC · ⌖ 10.4 AIC · ⊞ 10.4K · ◷
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.

Copilot review overview

🟢 Approval recommended

The guarded ref preserves non-PR and reusable-workflow behavior, with focused regression coverage and consistent generated outputs.

Review effort: Balanced
Findings: None

What changed in this PR

Pins activation-time sparse checkouts to trusted base-branch content for pull_request events, preventing PR-head workflows and skills from influencing prompt generation.

Changes:

  • Adds guarded base-SHA checkout selection with existing trigger fallbacks.
  • Adds regression coverage for mixed triggers, workflow_call, and pull_request_target.
  • Regenerates affected workflow lock files.
File Description
pkg/​workflow/​compiler_activation_job.go Implements secure activation checkout ref selection and supporting refactors.
pkg/​workflow/​compiler_activation_job_test.go Tests trigger-specific checkout refs.
.github/​workflows/​visual-regression-checker.lock.yml Adds base-SHA activation pin.
.github/​workflows/​test-quality-sentinel.lock.yml Adds base-SHA activation pin.
.github/​workflows/​squad-implement-worker.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-update-cross-repo-pr.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-test-tools.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-temporary-id.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-pydantic.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-project.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-pi.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-opencode.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-multi-pr.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-kiro.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-goose.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-gemini.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-drive.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-deepseek-harness.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-cursor.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-crush.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-create-cross-repo-pr.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-copilot-auto.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-copilot-arm.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-codex.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-claude.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-ci.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-checkout-pr-dispatch.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-call-workflow.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-aider.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-agent-scoped-approved.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-agent-public-none.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-agent-public-approved.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-agent-all-none.lock.yml Adds base-SHA activation pin.
.github/​workflows/​smoke-agent-all-merged.lock.yml Adds base-SHA activation pin.
.github/​workflows/​refiner.lock.yml Adds base-SHA activation pin.
.github/​workflows/​pr-description-caveman.lock.yml Adds base-SHA activation pin.
.github/​workflows/​pr-code-quality-reviewer.lock.yml Adds base-SHA activation pin.
.github/​workflows/​ponytail-reviewer.lock.yml Adds base-SHA activation pin.
.github/​workflows/​mattpocock-skills-reviewer.lock.yml Adds base-SHA activation pin.
.github/​workflows/​impeccable-skills-reviewer.lock.yml Adds base-SHA activation pin.
.github/​workflows/​front-page-copy-guard.lock.yml Adds base-SHA activation pin.
.github/​workflows/​firewall-escape.lock.yml Adds base-SHA activation pin.
.github/​workflows/​design-decision-gate.lock.yml Adds base-SHA activation pin.
.github/​workflows/​changeset.lock.yml Adds base-SHA activation pin.
.github/​workflows/​ai-moderator.lock.yml Adds base-SHA activation pin.

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

@github-actions

Copy link
Copy Markdown
Contributor

Comment Memory

reviewed_at: 2026-09-25T20:27:51Z
review_event: REQUEST_CHANGES
top_themes:
  - missing same-repo guard for ignore-if-missing activation app fallback
files_reviewed:
  - pkg/workflow/compiler_activation_job.go
  - pkg/workflow/compiler_activation_job_test.go
comment_count: 2

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 · 64.5 AIC · ⌖ 7.16 AIC · ⊞ 20.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 activation checkout hardening regresses the existing ignore-if-missing app fallback path: the same-repo guard is removed even when the runtime credential can still collapse to GITHUB_TOKEN.

Blocking theme

For reusable workflows, resolveActivationToken() already supports ${{ steps.activation-app-token.outputs.token || secrets.GITHUB_TOKEN }}. This change only preserves the same-repo checkout guard for the literal default-token string, so cross-repo workflow_call invocations with intentionally missing app credentials now fail activation instead of safely skipping the callee checkout.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 64.5 AIC · ⌖ 7.16 AIC · ⊞ 20.3K
Comment /review to run again

Comment thread pkg/workflow/compiler_activation_job.go Outdated
// checkout is only attempted for same-repo invocations where GITHUB_TOKEN works.
// For cross-repo scenarios, users can enable the checkout by configuring
// activation-github-token or activation-github-app in the workflow frontmatter.
if activationToken == "${{ secrets.GITHUB_TOKEN }}" {

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.

Test

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.

Covered by the activation checkout regression updates in 5e30c00; focused and full repository tests pass.

Comment thread pkg/workflow/compiler_activation_job.go Outdated
// checkout is only attempted for same-repo invocations where GITHUB_TOKEN works.
// For cross-repo scenarios, users can enable the checkout by configuring
// activation-github-token or activation-github-app in the workflow frontmatter.
if activationToken == "${{ secrets.GITHUB_TOKEN }}" {

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 guard only handles the literal ${{ secrets.GITHUB_TOKEN }} case, so on.github-app.ignore-if-missing: true still drops the same-repo protection even though resolveActivationToken() can fall back to secrets.GITHUB_TOKEN at runtime. In a cross-repo workflow_call with missing app credentials, activation will now try to sparse-checkout the callee repo with a repo-scoped token and fail before prompt generation.

💡 Detect fallback-to-GITHUB_TOKEN here instead of testing exact string equality.

${{ steps.activation-app-token.outputs.token || secrets.GITHUB_TOKEN }} is only cross-repo-capable when the app key is actually present. Please keep the same-repo guard whenever the runtime token may degrade to GITHUB_TOKEN, and add a regression test for the workflow_call + ignore-if-missing path.

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 32207bd and extended in 5e30c00. The same-repo guard now applies whenever activation auth can resolve to GITHUB_TOKEN, including ignore-if-missing app fallback and an explicit ${{ secrets.GITHUB_TOKEN }}; regression coverage covers both paths.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot Please address the blocking review feedback and continue with the pr-finisher skill.

  • Open review feedback remains from github-actions: Pin pull_request activation checkout to base SHA #63499 (comment)
  • Blocking review summary: preserve the same-repo ignore-if-missing fallback behavior when activation auth can still collapse to secrets.GITHUB_TOKEN, then refresh checks.
  • Finalize the ADR draft if it still reflects the implementation after the fix.

Generated by 👨🍳 PR Sous Chef

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 29.1 AIC · ⌖ 8.67 AIC · ⊞ 9.6K · ◷
Comment /souschef 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.

Reviewed with the impeccable audit/harden lens applied to a non-UI compiler change (PR modifies pkg/workflow/compiler_activation_job.go to pin pull_request activation checkouts to base SHA). No UI surface exists here, so the review focused on correctness, edge-case handling, and test coverage of the refactored trigger-detection logic.

Findings: none blocking.

  • activationCheckoutRef correctly uses structured YAML parsing (onSectionHasTrigger → frontmatterHasTrigger) rather than substring matching, so pull_request_target does not falsely match pull_request — confirmed by the new "pull_request_target does not match pull_request base checkout pin" test case, and verified independently that pull_request_target parses to a distinct map key.
  • nil/empty data.On inputs are handled safely (onSectionHasTrigger returns false on unmarshal of ""), matching existing code paths that reset On to "" (e.g. command-trigger handling in trigger_parser.go).
  • The refactor of generateCheckoutGitHubFolderForActivation (extracting activationCheckoutDisabledByActionTag, activationSparseCheckoutExtraPaths) is behavior-preserving; workflow_call path correctly overrides the cross-repo ref only when pull_request is also present via activationCheckoutRef(data, "steps.resolve-host-repo.outputs.target_checkout_ref").
  • Loop-safety fixes (nameLineIdx >= len(lines), lines[nameLineIdx+1:]) are minor defensive hardening, no regressions found.
  • Build (go build ./...), go vet ./pkg/workflow/..., and the full TestGenerateCheckoutGitHubFolderForActivation_* suite pass, including all new sub-tests for pull_request, mixed triggers, workflow_call + pull_request, and pull_request_target.
  • The regenerated .lock.yml files consistently add the expected ref: ${{ github.event_name == 'pull_request' && ... }} line to the activation checkout step; spot-checked several.

No actionable Impeccable-mode findings apply since this PR contains no UI/frontend code. Approving.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet50 · 106.5 AIC · ⌖ 13.2 AIC · ⊞ 8.1K

@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 /diagnosing-bugs to the security fix in pkg/workflow/compiler_activation_job.go. This is a well-scoped, well-tested change: the root cause (activation checkout using PR-head content before base-branch restoration for pull_request-triggered workflows) is addressed directly, not just its symptom, and regression tests cover pull_request, mixed triggers, workflow_call + pull_request, and pull_request_target (verified pull_request_target correctly does not match via manual repro — frontmatterHasTrigger does exact map-key matching, avoiding substring false-positives).

📋 Key Themes & Highlights

Verification performed

  • Ran go test ./pkg/workflow/... -run TestGenerateCheckoutGitHubFolderForActivation — all pass, including the new pull_request/mixed-trigger/pull_request_target cases.
  • Manually reproduced reaction: eyes + pull_request and confirmed activationCheckoutRef correctly emits the base-SHA-pinned expression.
  • Confirmed slash_command/pull_request cannot coexist (pre-existing mutual-exclusivity check), so no gap there.
  • gofmt -l clean on both touched Go files.

Minor findings (non-blocking)

  • firstString() helper is functionally just parts[0] since strings.Split never returns an empty slice — the indirection obscures trivial behavior (see inline comment).
  • onSectionHasTrigger (the function gating this security fix) uses structured YAML parsing while the neighboring hasWorkflowCallTrigger uses a substring check — inconsistent detection strategies for sibling concerns in the same code path; worth a comment or consolidation given how security-sensitive this branch is (see inline comment).

Positive Highlights

  • ✅ Root cause fixed at the source (activation checkout ref), not patched downstream.
  • ✅ Correctly preserves workflow_call cross-repo ref behavior and only overrides it when pull_request is the active event (... || fallback).
  • ✅ Extracted helpers (activationCheckoutDisabledByActionTag, activationSparseCheckoutExtraPaths, activationCheckoutRef) improve readability over the prior monolithic function.
  • ✅ Lock-file regeneration is comprehensive (43 files) — no repo workflow was missed.

@copilot please address the review comments above.

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

Comment thread pkg/workflow/compiler_activation_job.go Outdated
return result
}

func firstString(values []string) string {

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.

[/codebase-design] firstString(parts) always returns parts[0] (since strings.Split never returns an empty slice) — the loop obscures a trivial index access and reads as a general-purpose "find first non-empty string" helper it isn't.

💡 Suggested simplification

Since strings.Split on a non-empty normalized string always yields at least one element, this can just be parts[0] at the call site, dropping the helper entirely (the len(parts) == 0 check above it becomes dead code too, since strings.Split never returns an empty slice for a non-empty input).

topLevel := parts[0]
if topLevel == "" {
    continue
}

Low-impact, but the added indirection makes the reader hunt for behavior that doesn't exist.

@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.

Addressed in 32207bd: removed firstString and derive the top-level segment inline while retaining bounds-safe validation required by the repository linter.

Comment thread pkg/workflow/compiler_activation_job.go Outdated
compilerActivationJobLog.Print("Adding .github, .agents, and engine-specific dirs to sparse checkout for activation job")
return cm.GenerateGitHubFolderCheckoutStep("", "", activationToken, c.getActionPin, extraPaths...)
// onSectionHasTrigger reports whether a rendered on: YAML section contains trigger.
func onSectionHasTrigger(onSection, trigger string) bool {

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.

[/codebase-design] onSectionHasTrigger re-parses the rendered on: YAML with yaml.Unmarshal on every call, duplicating what hasWorkflowCallTrigger does cheaply via strings.Contains a few lines above. Two different detection strategies for sibling concerns (pull_request vs workflow_call) in the same function makes the security-critical branch harder to audit at a glance.

💡 Suggested consolidation

Consider giving hasWorkflowCallTrigger-style detection and onSectionHasTrigger a shared underlying helper (or at least a comment explaining why one uses substring matching and the other does structured YAML parsing) so a future reader trusts both equally when reasoning about the base-SHA pinning security fix.

Functionally this is fine today — frontmatterHasTrigger correctly does exact map-key matching, avoiding e.g. pull_request_target false-matching pull_request — but the inconsistency is worth a note since this is the exact function gating the security fix in this PR.

@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.

Addressed in 32207bd: documented that structured parsing is intentional for security-sensitive exact-key detection, unlike the legacy workflow_call substring check.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot run pr-finisher skill

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
@github-actions

This comment has been minimized.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

pr-sous-chef
@copilot There is still forward progress needed on this PR.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 29.7 AIC · ⌖ 8.89 AIC · ⊞ 9.5K · ◷
Comment /souschef to run again

Copilot AI and others added 2 commits September 26, 2026 05:58
…n-job-checkout-issue

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 26, 2026

Copy link
Copy Markdown
Contributor Author

pr-sous-chef
@copilot There is still forward progress needed on this PR.
...

Ran pr-finisher and refreshed the branch from main in a9121b3; adjusted the refreshed-base activation permission test in 16cb7ff. Local make fmt, make lint, make test-unit, and make test pass; make recompile/make agent-report-progress still fail on strict-mode workflow validation that reproduces on pristine origin/main (4740543). Secret scan and parallel validation passed. CI/checks for the new head need a maintainer-triggered rerun/refresh before merge.

@github-actions

Copy link
Copy Markdown
Contributor

🎉 Great work on this security hardening! This PR correctly pins the activation job's checkout to the base SHA for pull_request-triggered workflows, preventing same-repo PR authors from influencing their own review instructions via modified workflow source or installed skills.

The implementation looks solid:

  • ✅ Activation checkout hardening with proper event detection
  • ✅ Workflow call compatibility maintained
  • ✅ Comprehensive test coverage for pull_request, mixed triggers, and edge cases
  • ✅ Generated workflows refreshed for existing repository deployments
  • ✅ ADR documented for future reference

This is ready for review!

Generated by ✅ Contribution Check · copilot · auto · 52.9 AIC · ⌖ 5.51 AIC · ⊞ 9.1K · ◷

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

pr-sous-chef
@copilot There is still forward progress needed on this PR.

Generated by 👨🍳 PR Sous Chef

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 22.7 AIC · ⌖ 8.62 AIC · ⊞ 9.7K · ◷
Comment /souschef to run again

Copilot AI commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

pr-sous-chef
@copilot There is still forward progress needed on this PR.
...

Ran pr-finisher on 16cb7ff. Refreshed origin/main and confirmed it is already merged into this branch; no new commit was needed. make fmt, make lint, targeted activation tests, make test-unit, and make test pass. make recompile fails on unchanged main workflows under the new strict Copilot-firewall validation. All four outstanding review threads already have substantive replies, but the available tooling cannot mark them resolved; a maintainer must resolve those threads and refresh CI/checks before merge.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot do a security review of changes, update compiler security spec and docs

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

@copilot do a security review of changes, update compiler security spec and docs

Security review found no confirmed vulnerabilities in the activation checkout changes. In 9c0fb13, I added activation checkout provenance to the compiler security spec (CTR-030/T-CTR-045) and clarified base-SHA pinning, fallback authentication, and agent-versus-activation checkout in the checkout spec and reference. Focused compiler/formal tests pass; repository-wide progress validation remains blocked by unrelated strict-mode Copilot-engine workflow errors.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot review fork combination with this feature

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

pr-sous-chef
@copilot Please review the maintainer's latest request on this branch and continue with the pr-finisher skill.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 38.8 AIC · ⌖ 8.68 AIC · ⊞ 9.7K · ◷
Comment /souschef to run again

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

@copilot review fork combination with this feature

Reviewed the fork interaction: forks are excluded by default; explicitly allowed forks still checkout the target repository at the PR base SHA, never the fork head during activation. Added fork-filter integration coverage in ba94a3d. Focused tests, lint, and make test pass; repository-wide recompile remains blocked by pre-existing strict Copilot-engine validation.

Copilot AI commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

pr-sous-chef
@copilot Please review the maintainer's latest request on this branch and continue with the pr-finisher skill.
...

The fork follow-up is covered by ba94a3d: the existing fork filter excludes forks by default, while allowed forks still use the target repository’s PR base SHA for activation. Targeted fork and activation regressions pass, and the branch already includes current main. No implementation/spec change is needed. Maintainer cleanup: resolve four previously answered review threads and re-trigger CI; the earlier CGO failure is repository-wide strict Copilot-engine recompilation unrelated to this change.

This branch has not been deployed

No deployments
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.

Activation job builds the agent prompt from PR-head content before base-branch restore runs, for pull_request-triggered workflows

4 participants