Skip to content

chore: sync workflow templates - #1796

Closed
stranske wants to merge 1 commit into
mainfrom
sync/workflows-03877f994fe2
Closed

chore: sync workflow templates#1796
stranske wants to merge 1 commit into
mainfrom
sync/workflows-03877f994fe2

Conversation

@stranske

Copy link
Copy Markdown
Owner

Sync Summary

Files Updated

  • autofix.yml: Autofix workflow - automatically fixes lint/format issues
  • agents-80-pr-event-hub.yml: PR event hub - consolidates PR meta, bot comments, and verify-to-issue handlers
  • agents-autofix-dispatcher.yml: Autofix dispatch bridge - acknowledges legacy Gate repository_dispatch events; agents-81-gate-followups handles repair work
  • agents-auto-label.yml: Auto-label - suggests/applies labels based on semantic matching (Phase 5A)
  • agents-guard.yml: Agents guard - enforces agents workflow protections (Health 45)
  • agents-auto-pilot.yml: Auto-pilot - end-to-end automation orchestrator (format → optimize → agent → verify)
  • runner_lib/ (1 files): Shared runner prompt assembly, output parsing, and dispatch debounce helpers
  • sync_test_dependencies.py: Syncs test dependency pins - required by reusable CI workflow
  • issue_context_utils.js: Utilities for issue context extraction
  • sync_tracker_state/ (1 files): Shared durable tracker and open PR state helpers for consumer sync workflows

Files Skipped

  • pr-00-gate.yml: File exists and sync_mode is create_only
  • ci.yml: File exists and sync_mode is create_only
  • dependabot.yml: File exists and sync_mode is create_only
  • llm_slots.json: None

Review Checklist

  • CI passes with updated workflows
  • No repo-specific customizations were overwritten

Source: stranske/Workflows
Source SHA: 3ec58b79c2d54b0c3c13b9ba64ddc05fb541af17
Template hash: 03877f994fe2
Sync branch: sync/workflows-03877f994fe2
Consumer repo: stranske/Portable-Alpha-Extension-Model
Manifest: .github/sync-manifest.yml

Automated sync from stranske/Workflows
Template hash: 03877f994fe2

Changes synced from sync-manifest.yml
Copilot AI review requested due to automatic review settings May 15, 2026 00:02
@stranske stranske added sync Automated sync from Workflows automated Automated sync from Workflows labels May 15, 2026
@stranske
stranske temporarily deployed to agent-standard May 15, 2026 00:03 — with GitHub Actions Inactive

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.

Pull request overview

Syncs this repo’s GitHub workflow templates and supporting scripts to the latest versions from stranske/Workflows, primarily modernizing event gating and tightening runner-state/metadata handling.

Changes:

  • Switch multiple workflows to use the repo-local agent-event-eligibility action (via a sparse checkout) instead of referencing it from stranske/Workflows.
  • Enhance runner dispatch completion records by compacting/sanitizing stored result payload fields and adding final_message hashing/size metadata.
  • Minor template/script sync updates (stdlib inventory fallback for dependency sync, tracker matching simplification, and safer nullish handling in issue context utils).

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/sync_test_dependencies.py Uses sys.stdlib_module_names when available and keeps a fallback stdlib module set.
scripts/runner_lib/core.py Adds marker-safe truncation and compacts stored runner result payload (incl. final message hash/length).
.github/workflows/autofix.yml Uses local eligibility action via sparse checkout before running autofix logic.
.github/workflows/agents-guard.yml Uses local eligibility action via sparse checkout ahead of guard enforcement.
.github/workflows/agents-autofix-dispatcher.yml Clarifies legacy dispatcher purpose via header comment.
.github/workflows/agents-auto-pilot.yml Adds local eligibility action checkout/use for the gate job.
.github/workflows/agents-auto-label.yml Adds local eligibility action checkout/use before running label automation.
.github/workflows/agents-80-pr-event-hub.yml Adds local eligibility action checkout/use for consolidated PR event hub filtering.
.github/scripts/sync_tracker_state/index.js Simplifies tracker matching logic (removes earlier special-casing).
.github/scripts/issue_context_utils.js Uses nullish coalescing for formatted_body fallback to preserve empty-string outputs.
Comments suppressed due to low confidence (1)

scripts/runner_lib/core.py:423

  • In _compact_runner_result_payload, final_message = str(result_payload.get("final_message") or "") has the same falsy-value issue as _marker_safe_text: a legitimate non-string falsy value (e.g., 0) becomes empty. Consider using "" if result_payload.get("final_message") is None else str(...) for consistency and to avoid dropping data.
def _compact_runner_result_payload(result_payload: dict[str, Any]) -> dict[str, Any]:
    final_message = str(result_payload.get("final_message") or "")
    compact: dict[str, Any] = {

Comment on lines +415 to +425
text = str(value or "")
if len(text) > limit:
text = f"{text[:limit]}...[truncated {len(text) - limit} chars]"
return text.replace("-->", "--\\u003e")


def _compact_runner_result_payload(result_payload: dict[str, Any]) -> dict[str, Any]:
final_message = str(result_payload.get("final_message") or "")
compact: dict[str, Any] = {
"schema": "runner-result-summary/v1",
"provider": str(result_payload.get("provider") or ""),

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 401f4108b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if (markerPattern && hasTitle && !cleanString(issue.body)) {
return true;
}
return (hasDurableLabel || hasRequiredLabel || hasMarker) && (hasTitle || hasMarker);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve title-only tracker matching for unlabeled legacy issues

issueMatchesTracker no longer returns true when only titlePattern matches, so findTracker now skips existing tracker issues that lost both the durable/required labels (or predate them) before it ever calls getIssue for a full-body check. In that scenario, the workflow will create a new tracker instead of reusing the existing one, which can fork tracker state and duplicate automation comments/labels for the same logical thread.

Useful? React with 👍 / 👎.

@stranske

Copy link
Copy Markdown
Owner Author

Superseded by the merged sync/workflows-bcc7ff1b0c82 batch.

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

Labels

automated Automated sync from Workflows sync Automated sync from Workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants