Conversation
- Add analyzeTaskCompletion() to match commits/files to task text - Add autoReconcileTasks() to auto-check high-confidence task matches - Add Auto-reconcile task checkboxes step to keepalive workflow - Export head_sha from evaluate job for commit comparison - Add tests for task reconciliation logic When Codex makes changes but doesn't update task checkboxes, the system now analyzes commit messages and file paths to identify which tasks were likely completed, and automatically checks them off if confidence is high (50%+ keyword match + file/commit match).
Automated Status SummaryHead SHA: 0d76a94
Coverage Overview
Coverage Trend
Updated automatically; will refresh on subsequent CI/Docker completions. Keepalive checklistScope
Tasks
Acceptance criteria
|
🤖 Keepalive Loop StatusPR #132 | Agent: Codex | Iteration 0/5 Current State
|
- Change max_iterations from hard cap to stuck-detection threshold - Continue past max if agent made file changes and has no failures - Show 'ready-extended' reason and 🚀 badge when in extended mode - Fix iteration loading from state (config default 0 was overriding state) - Add test for extended mode behavior This allows productive PRs to continue indefinitely while still stopping stuck/failing PRs at the max_iterations limit.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ 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".
There was a problem hiding this comment.
Pull request overview
This PR implements automatic task checkbox reconciliation in PR bodies by analyzing commit messages and file changes. The main improvement also includes preserving summary content when updating keepalive state markers, ensuring the summary comment remains the single source of truth.
- Added auto-reconciliation logic that analyzes commits and changed files to identify completed tasks with keyword matching
- Modified keepalive state updates to preserve existing summary text instead of overwriting the entire comment
- Extended workflow to capture head SHA before agent runs and trigger task reconciliation after changes are made
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| codex-output.md | Updated documentation describing the keepalive state preservation feature and task reconciliation implementation |
| .github/workflows/agents-keepalive-loop.yml | Added head_sha output capture and new auto-reconcile step that runs after agent changes are committed |
| .github/scripts/keepalive_state.js | Implemented upsertStateCommentBody function to preserve summary content when updating state markers |
| .github/scripts/keepalive_loop.js | Added analyzeTaskCompletion and autoReconcileTasks functions for automatic task checkbox management |
| .github/scripts/tests/keepalive-state.test.js | Enhanced test stub to track comment store mutations and added test for summary preservation behavior |
| .github/scripts/tests/keepalive-loop.test.js | Added comprehensive test coverage for task analysis and auto-reconciliation with high/medium confidence scenarios |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The workflow was passing 'auth-via-codex-auth-json' as a literal API key to codex-action, which doesn't work. The fix: 1. Remove openai-api-key parameter - when empty, codex-action reads from auth.json directly instead of using the proxy 2. Set codex-home to a custom location and copy auth.json there 3. Use safety-strategy: unsafe since we're not using the API proxy (sandbox: read-only still limits Codex capabilities)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@codex fix comments |
|
Summary
Testing
|
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
UI Codex incorrectly replaced the function arguments with a comment, breaking the autoReconcileTasks function. This restores the proper arguments: github, context, prNumber, baseSha, headSha, taskText, core
Automated Status Summary
Scope
GITHUB_STEP_SUMMARYoutput so iteration results are visible in the Actions UITasks
agent:codexlabelagents-keepalive-loop.ymlafter agent runbuildStatusBlock()inagents_pr_meta_update_body.jsto acceptagentTypeparameteragentTypeis set (CLI agent): hide workflow table, hide head SHA/required checksagent:*label):<!-- gate-summary: -->comment posting (use step summary instead)<!-- keepalive-round: N -->instruction comments (task appendix replaces this)<!-- keepalive-loop-summary -->to be the single source of truthagent:*label):<!-- gate-summary: -->commentagent_typeoutput to detect job so downstream workflows know the modeagents-pr-meta.ymlto conditionally skip gate summary for CLI agent PRsAcceptance criteria
Head SHA: 36e1825
Latest Runs: ✅ success — Gate
Required: gate: ✅ success