Conversation
Automated sync from stranske/Workflows Template hash: dd5f725f6d03 Changes synced from sync-manifest.yml
🤖 Keepalive Loop StatusPR #894 | Agent: Codex | Iteration 0/5 Current State
🔍 Failure Classification| Error type | infrastructure | |
Keepalive Work Log (click to expand)
|
There was a problem hiding this comment.
Pull request overview
Syncs workflow templates and weekly-metrics helper scripts to the latest upstream contract, focusing on Node setup, artifact selection, and bot-comment auth coverage enforcement behavior.
Changes:
- Adds explicit Node 20 setup to the weekly metrics workflow and tweaks hard-block failure annotation messaging.
- Updates weekly metrics artifact selection to treat bot-comment auth coverage artifacts as patterned families (regex-based) rather than simple prefixes.
- Tightens and expands bot-comment auth coverage preflight reporting (eligibility, read/parse/non-auth counts) and adds per-component override plumbing.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| .github/workflows/agents-weekly-metrics.yml | Adds Node setup, passes wrapper allowed auth modes env, and improves hard-block error annotation text. |
| .github/scripts/weekly_metrics_artifacts.js | Introduces regex-based artifact family detection for bot-comment auth coverage artifacts. |
| .github/scripts/bot_comment_auth_coverage.js | Refactors policy overrides, improves robustness/telemetry, and enforces a stricter artifact file discovery contract. |
| const artifactDir = path.basename(path.dirname(normalized)); | ||
| return contract.artifact_dir_pattern.test(artifactDir); |
There was a problem hiding this comment.
isPotentialAuthCoverageFile() now requires wrapper.json/reusable.json to live directly under a directory whose basename matches bot-comment-auth-coverage-(wrapper|reusable)-\d+. If the artifact contains these files under a subdirectory (e.g. .../<artifact-name>/agent-metrics/wrapper.json), they will be skipped even though collectJsonFiles() walks recursively. Consider matching the artifact dir pattern against any ancestor directory in the path (or against the first directory under rootDir) so nested layouts still work.
| const artifactDir = path.basename(path.dirname(normalized)); | |
| return contract.artifact_dir_pattern.test(artifactDir); | |
| let currentDir = path.posix.dirname(normalized); | |
| while (currentDir && currentDir !== '.' && currentDir !== '/') { | |
| const artifactDir = path.posix.basename(currentDir); | |
| if (contract.artifact_dir_pattern.test(artifactDir)) { | |
| return true; | |
| } | |
| const parentDir = path.posix.dirname(currentDir); | |
| if (parentDir === currentDir) break; | |
| currentDir = parentDir; | |
| } | |
| return false; |
|
Superseded by newer Workflows sync PR #920 (sync/workflows-daec38e5dbf4). Closing this duplicate sync lane so review and verification can focus on the latest template hash. |
Sync Summary
Files Updated
Files Skipped
Review Checklist
Source: stranske/Workflows
Manifest:
.github/sync-manifest.yml