[Epic] Automatic CI Failure Follow-Up Controls - #1930
Conversation
…atic CI fail Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
… enabled rep Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
… in CLI, UI, Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
|
packages/core/src/webhook/ciFailureFollowup.ts function escapeInlineCode(value: string): string { Show more details Suggested changeset 1 (1) |
|
✅ Applied the requested follow-up changes in commit 765989b Summary of ChangesUpdated Validation:
🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…ackticks, resolving the CodeQL finding. Updated `escapeInlineCode` to escape both backslashes and backticks, resolving the CodeQL finding. Validation: - Core TypeScript type-check passed. - Targeted CI follow-up tests passed: 4/4. - `git diff --check` passed. - No commit created, as requested. PR: #1930 Comment by: @integry (ID: 5395004090) Model: gpt-5.6-sol
|
/review codex |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codexOverall EvaluationThis PR adds an off-by-default repository setting across the API, CLI, UI, documentation, and webhook processing, then generates deduplicated CI-failure comments for the normal follow-up worker. It needs minor, targeted changes before merge: duplicate repository configurations are resolved inconsistently, and delayed CI events can launch work for obsolete commits. ✅ Safe configuration default — Missing values normalize to ✅ Strong deduplication and evidence handling — Redis claims prevent concurrent duplicates, comment-marker scans survive Redis expiry, and check-run annotations take priority over generic summaries. ✅ Broad surface coverage — CLI, UI, API, documentation, and focused tests were updated, with all 12 current required checks passing. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F1: 🔴 Duplicate repositories resolve unpredictably
F2: 🔴 Stale CI can launch follow-up work
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Use valid code-span escaping
S2: 🟢 Clarify ignore-keyword precedence
ScoreThe implementation is cohesive, well tested, and currently green, but two localized runtime correctness issues still make autonomous follow-up unsafe or inconsistent in supported scenarios. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
/ultrafix |
|
🔄 Ultrafix loop started (goal: 8/10, max cycles: 10) First action:
|
|
✅ Applied the requested follow-up changes in commit f4797a5
Summary of ChangesImplemented only F1 and F2.
Verification passed:
No commit was created. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented only F1 and F2. - Duplicate branch configurations now resolve case-insensitively and order-independently; UI loads, toggles, and saves the repository-level flag consistently across matching entries. - Failed check-run and legacy-status events now verify each PR’s live head SHA before posting, skipping stale failures. - Added regression coverage for duplicate branches and both stale webhook types. Verification passed: - Backend tests: 81 passed - UI tests: 14 passed - Core and UI type checks - Core and UI lint - `git diff --check` No commit was created. PR: #1930 Comment by: @integry (ID: 5402655025) Model: gpt-5.6-sol
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — claude:claude-sonnet-5Overall EvaluationThis is a large, well-organized PR implementing automatic CI-failure follow-up across backend validation, webhook handling, comment-pipeline trust boundaries, CLI, and UI, per issues #1926–#1928. The backend validation, dedup/claim logic in ✅ Solid dedup/claim design — ✅ Trust boundary correctly scoped — ✅ Defaults enforced consistently at the API boundary — Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F3: 🔴 Adding a branch-duplicate repository entry can silently disable an already-enabled CI follow-up setting
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 CLI
|
|
✅ Applied the requested follow-up changes in commit 3539351
Summary of ChangesImplemented F3 only.
Files changed: Verification passed:
No commit created. 🤖 Implementation Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F3 only. - `handleAddRepo` now OR-merges the CI follow-up flag, preserving an existing enabled setting when another branch is added unchecked. - Added a regression test for that scenario. Files changed: - [useRepositoryManagement.ts](/tmp/git-processor/worktrees/integry/propr/pr-1930-followup-2026-08-24T23-19-36/propr-ui/src/hooks/useRepositoryManagement.ts:325) - [useRepositoryManagement.test.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1930-followup-2026-08-24T23-19-36/propr-ui/src/hooks/useRepositoryManagement.test.tsx:227) Verification passed: - Hook tests: 15/15 - UI TypeScript typecheck - `git diff --check` No commit created. PR: #1930 Comment by: @propr-ultrafix (ID: 0) Model: gpt-5.6-sol
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — claude:claude-sonnet-5Overall EvaluationThis PR implements the full three-part feature (repo-level config flag, automatic CI-failure follow-up comments, and CLI/UI/docs exposure) described in issues #1926–#1928. The implementation is broad but consistently defensive: the new field defaults to One correctness issue was found in the UI's handling of duplicate branch-specific repository entries that share a name: the loader's OR-aggregation is written back into the persisted local state instead of being kept as a display-only derivation, so an unrelated save (e.g. toggling ✅ Safe-by-default gating — ✅ Layered deduplication — Redis ✅ Backward-compatible persistence semantics — Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F4: 🔴 UI silently overwrites a persisted per-entry
|
|
✅ Applied the requested follow-up changes in commit 4302f2c
Summary of ChangesImplemented F4 only.
Verification passed:
🤖 Implementation Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F4 only. - Preserved each entry’s persisted `autoFollowupOnFailedCi` value in hook state. - Derived repository-wide OR state solely for list display. - Ensured unrelated saves retain per-entry values. - Updated duplicate-branch toggle behavior and added regression coverage. Verification passed: - Hook tests: 16/16 - Root and UI TypeScript checks - Focused ESLint - `git diff --check` PR: #1930 Comment by: @propr-ultrafix (ID: 0) Model: gpt-5.6-sol
|
✅ AI Code Review Complete requested by @propr-ultrafix Posted 1 review: |
🔍 AI Code Review — claude:claude-sonnet-5Overall EvaluationThis PR implements a large, well-scoped feature (repo-level ✅ Consistent off-by-default semantics across every layer — ✅ Narrow, testable trust boundary for the hidden marker — ✅ Stale-SHA guard prevents outdated follow-ups — both Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Avoid PR-head lookups for repos with the feature disabledIn S2: 🟢 Raw CI annotation/output content is not markdown-escaped
S3: 🟢
|
Automatic CI Failure Follow-Up Controls
This Epic PR aggregates all changes for the plan: Automatic CI Failure Follow-Up Controls
Issues in this Epic
Auto-close
When this PR is merged, the following issues will be automatically closed:
Fixes #1926
Fixes #1927
Fixes #1928
Created automatically by ProPR