Skip to content

fix(ci): verify upstream sync candidates - #10

Merged
rynfar merged 1 commit into
pylonfrom
fix/pylon-sync-candidate-ci
Aug 29, 2026
Merged

fix(ci): verify upstream sync candidates#10
rynfar merged 1 commit into
pylonfrom
fix/pylon-sync-candidate-ci

Conversation

@rynfar

@rynfar rynfar commented Aug 29, 2026

Copy link
Copy Markdown

Problem

The first protected fork synchronization created the correct deterministic candidate, but its reusable CI inherited the caller's workflow_dispatch event. The trust job therefore returned false, every build/test/aggregate job skipped, and the outer sync run still concluded successfully.

Fix

  • recognize internal candidate verification only for pylon-code/prime-agent, refs/heads/pylon, a scheduled or manually dispatched caller, and an exact lowercase 40-hex checkout SHA;
  • preserve normal trusted pylon pushes and the existing PR label/vouch paths;
  • add a require_trusted reusable-workflow input so the candidate aggregate runs and fails when trust, build, or tests were skipped or failed;
  • require that fail-closed mode from the upstream sync caller.

After this lands, rerunning the deterministic candidate will retain commit 4591e8acfb2adf5552c90edbf5f1373e192290b0, reject its earlier skipped verification as reusable evidence, and execute real candidate CI.

Verification

  • actionlint .github/workflows/ci.yml .github/workflows/pylon-upstream-sync.yml
  • Ruby YAML parse for both workflows
  • git diff --check
  • trust-context matrix covering protected push, scheduled/manual exact-SHA calls, wrong repo/ref/event, malformed SHA, and push overrides
  • npm run check via the signed commit hook
  • independent security and workflow-semantics reviews: no blockers

Refs #8 and #1.

Implemented by GPT-5.6 in Prime Agent, orchestrated through Pylon.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Recognize candidate CI through the protected caller context and make required reusable verification fail when trust or aggregate jobs are skipped.
@rynfar
rynfar merged commit 8551520 into pylon Aug 29, 2026
16 checks passed
@rynfar
rynfar deleted the fix/pylon-sync-candidate-ci branch August 29, 2026 16:32
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.

1 participant