chore: sync workflow templates - #1796
Conversation
Automated sync from stranske/Workflows Template hash: 03877f994fe2 Changes synced from sync-manifest.yml
There was a problem hiding this comment.
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-eligibilityaction (via a sparse checkout) instead of referencing it fromstranske/Workflows. - Enhance runner dispatch completion records by compacting/sanitizing stored result payload fields and adding
final_messagehashing/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] = {
| 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 ""), |
There was a problem hiding this comment.
💡 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); |
There was a problem hiding this comment.
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 👍 / 👎.
|
Superseded by the merged sync/workflows-bcc7ff1b0c82 batch. |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Source SHA:
3ec58b79c2d54b0c3c13b9ba64ddc05fb541af17Template hash:
03877f994fe2Sync branch:
sync/workflows-03877f994fe2Consumer repo:
stranske/Portable-Alpha-Extension-ModelManifest:
.github/sync-manifest.yml