chore: sync workflow templates - #33
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🚫 Review skipped — only excluded labels are configured. (7)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: stranske/Doc-Lineage/.coderabbit.yaml Review profile: ASSERTIVE Plan: Essentials Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Workflow state fingerprint for Keepalive Loop Reporter. Do not edit. |
Automated Status SummaryHead SHA: 4086442
Coverage Overview
Coverage Trend
Top Coverage Hotspots (lowest coverage)
Updated automatically; will refresh on subsequent CI/Docker completions. Keepalive checklistScopeNo scope information available Tasks
Acceptance criteria
|
|
Workflow state fingerprint for Agents Gate Followups. Do not edit. |
There was a problem hiding this comment.
🟡 Changes recommended
Review found a critical fallback-reservation loop and moderate persistence and rate-limit handling issues.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Synchronizes shared workflow templates and runner utilities from Workflows into Doc-Lineage.
Changes:
- Extends run-contract and capability-bundle validation.
- Updates runner dispatch, attempt tracking, and completion persistence.
- Refines deliberate-break parsing.
- Updates cross-repository wakeup handling.
File summaries
| File | Summary |
|---|---|
scripts/validate_run_contract.py |
Validates run-contract envelopes and capability-bundle schemas. |
scripts/runner_lib/core.py |
Updates dispatch and completion persistence; contains critical fallback-reservation and moderate completion-reporting issues. |
scripts/check_deliberate_break.py |
Refines deliberate-break marker parsing. |
.github/workflows/agents-81-gate-followups.yml |
Updates wakeup handling; 403 responses may incorrectly bypass retries. |
Review details
Suppressed comments (4)
.github/workflows/agents-81-gate-followups.yml:2248
- GitHub also uses HTTP 403 for secondary/rate-limit responses, not only missing authorization. Treating every 403 as
skipped-unauthorizedbypasses the retry path and silently drops the generated-delivery wakeup during throttling. Distinguish permission/not-found failures from rate-limited 403s (for example by honoring rate-limit headers) before returning this sentinel.
if ([403, 404].includes(status)) {
core.warning(
`Generated-delivery wakeup skipped: repository_dispatch to stranske/Workflows ` +
`returned ${status} (token: WRITE_TOKEN fallback chain). ` +
`Error: ${error?.message || error}`,
);
return SKIPPED_UNAUTHORIZED;
scripts/runner_lib/core.py:1300
- The ownership check above is not atomic with this write. If a newer workflow attempt reserves the same PR after the read at line 1245 but before this write, this unconditional update can overwrite its
workflow_attempt_idand pending reservation with the stale completion, defeating the new stale-attempt fence. Use a compare-and-set/conditional update (or re-read and abort under a storage-level lock/ETag) before committing the completion.
try:
completion_storage.write_record(pr_number, provider, record)
except Exception as exc:
scripts/runner_lib/core.py:1444
- This new output reports
recorded=truefor every normal return, butRepoVariableRunnerStorage.write_recordtreats 401/403 as a skipped write and returns normally (lines 943-948). Thusrecord-completion --storage repo-variablecan claim the completion was persisted when it was not; propagate the backend's write outcome or raise on the skipped write before setting this flag.
"recorded": "false" if record.get("completion_recorded") is False else "true",
scripts/runner_lib/core.py:1252
- The verified
due-authority-challengepath inagents-81-gate-followups.ymlbypassesshould-dispatchand launches the runner without creating a reservation. With this guard, the subsequent completion sees no primary record and returnscompletion_recorded=false, so every authority-challenge run is silently dropped and cannot update the debounce/productivity state. Reserve that forced run before launching it, or carry an explicit challenge/force mode through completion so it can be recorded safely.
if uses_fallback and prior_record is None:
return _unrecorded_completion({}, key, "authoritative-reservation-missing")
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
0af115b to
ee6f8a1
Compare
ee6f8a1 to
fdcb4b6
Compare
fdcb4b6 to
b2ccabe
Compare
b2ccabe to
931076d
Compare
Automated sync from stranske/Workflows Template hash: 06a120993a95 Changes synced from sync-manifest.yml Consumer-sync plan ID: sha256:06a120993a957a893fe17371c60d54d88847c55ae27664e8bfd99515e0855596 Plan scope: source-delta Scope base SHA: 3ed8bc0a6dbe41d961ba28cf15bf94a54f4679d1 Source commit: 11300195bb4e7cf3135d1211a11a850efac10dba Canary evidence JSON (base64): eyJzY2hlbWEiOiJ3b3JrZmxvd3MuY29uc3VtZXItc3luYy1jYW5hcnktZXZpZGVuY2UvdjEiLCJ2ZXJzaW9uIjoxLCJyZXN1bHRzIjpbeyJyZXBvIjoic3RyYW5za2UvVHJhdmVsLVBsYW4tUGVybWlzc2lvbiIsInBsYW5faWQiOiJzaGEyNTY6MDZhMTIwOTkzYTk1N2E4OTNmZTE3MzcxYzYwZDU0ZDg4ODQ3YzU1YWUyNzY2NGU4YmZkOTk1MTVlMDg1NTU5NiIsInBsYW5fc2NvcGUiOiJzb3VyY2UtZGVsdGEiLCJzY29wZV9iYXNlX3NoYSI6IjNlZDhiYzBhNmRiZTQxZDk2MWJhMjhjZjE1YmY5NGE1NGY0Njc5ZDEiLCJzb3VyY2VfY29tbWl0IjoiMTEzMDAxOTViYjRlN2NmMzEzNWQxMjExYTExYTg1MGVmYWMxMGRiYSIsInByIjoxNTgyLCJoZWFkX3NoYSI6ImMzNzA3NWRlZWUzNGUwNzMyMDU2OGIyODNhOTdjYjViZDk3NGRlYzMiLCJldmlkZW5jZV9zb3VyY2UiOiJvcGVuLWNhbmRpZGF0ZSIsInJlcXVpcmVkX2NoZWNrX3N0YXRlIjoic3VjY2VzcyIsImFjdGl2ZV9yZXZpZXdfdGhyZWFkX2NvdW50IjowfSx7InJlcG8iOiJzdHJhbnNrZS90cmlwLXBsYW5uZXIiLCJwbGFuX2lkIjoic2hhMjU2OjA2YTEyMDk5M2E5NTdhODkzZmUxNzM3MWM2MGQ1NGQ4ODg0N2M1NWFlMjc2NjRlOGJmZDk5NTE1ZTA4NTU1OTYiLCJwbGFuX3Njb3BlIjoic291cmNlLWRlbHRhIiwic2NvcGVfYmFzZV9zaGEiOiIzZWQ4YmMwYTZkYmU0MWQ5NjFiYTI4Y2YxNWJmOTRhNTRmNDY3OWQxIiwic291cmNlX2NvbW1pdCI6IjExMzAwMTk1YmI0ZTdjZjMxMzVkMTIxMWExMWE4NTBlZmFjMTBkYmEiLCJwciI6MTgyMSwiaGVhZF9zaGEiOiJkYjM2NjY1ZjQ5YmRiYTdhODM3ODViMDYxZmViMmNlMzVhMzg0NTc4IiwiZXZpZGVuY2Vfc291cmNlIjoib3Blbi1jYW5kaWRhdGUiLCJyZXF1aXJlZF9jaGVja19zdGF0ZSI6InN1Y2Nlc3MiLCJhY3RpdmVfcmV2aWV3X3RocmVhZF9jb3VudCI6MH0seyJyZXBvIjoic3RyYW5za2UvUG9ydGFibGUtQWxwaGEtRXh0ZW5zaW9uLU1vZGVsIiwicGxhbl9pZCI6InNoYTI1NjowNmExMjA5OTNhOTU3YTg5M2ZlMTczNzFjNjBkNTRkODg4NDdjNTVhZTI3NjY0ZThiZmQ5OTUxNWUwODU1NTk2IiwicGxhbl9zY29wZSI6InNvdXJjZS1kZWx0YSIsInNjb3BlX2Jhc2Vfc2hhIjoiM2VkOGJjMGE2ZGJlNDFkOTYxYmEyOGNmMTViZjk0YTU0ZjQ2NzlkMSIsInNvdXJjZV9jb21taXQiOiIxMTMwMDE5NWJiNGU3Y2YzMTM1ZDEyMTFhMTFhODUwZWZhYzEwZGJhIiwicHIiOjIyOTksImhlYWRfc2hhIjoiMjQ3YjYzYWI2MDNjYTMyNmI4ODgxNTM0ZWZlNGVhMGFlYjYyYTU3ZiIsImV2aWRlbmNlX3NvdXJjZSI6Im9wZW4tY2FuZGlkYXRlIiwicmVxdWlyZWRfY2hlY2tfc3RhdGUiOiJzdWNjZXNzIiwiYWN0aXZlX3Jldmlld190aHJlYWRfY291bnQiOjB9XX0=
931076d to
96c3055
Compare
Sync Summary
Files Updated
Review Checklist
Source: stranske/Workflows
Source SHA:
11300195bb4e7cf3135d1211a11a850efac10dbaTemplate hash:
06a120993a95Consumer-sync plan ID:
sha256:06a120993a957a893fe17371c60d54d88847c55ae27664e8bfd99515e0855596Plan scope:
source-deltaScope base SHA:
3ed8bc0a6dbe41d961ba28cf15bf94a54f4679d1Sync phase:
promoteSync branch:
sync/workflows-deliveryConsumer repo:
stranske/Doc-LineageManifest:
.github/sync-manifest.ymlautofix: false