Compare commits
1 Commits
fix/1509
...
triage/112
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b0f088c52 |
47
docs/cleanup-summary.md
Normal file
47
docs/cleanup-summary.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Forge Cleanup Triage — Issue #1128
|
||||
|
||||
## Summary
|
||||
|
||||
This document summarizes the triage findings and actions taken for issue #1128.
|
||||
|
||||
## Critical Finding
|
||||
|
||||
**There are 6 duplicate issue groups with 28 total PRs!** This is a serious problem that needs immediate attention.
|
||||
|
||||
## Issues Filed
|
||||
|
||||
I filed 6 new issues to track the duplicate PR cleanup:
|
||||
|
||||
1. **#1449**: [URGENT] 5 duplicate PRs for issue #1128 need cleanup
|
||||
2. **#1450**: [URGENT] 6 duplicate PRs for issue #1339 need cleanup
|
||||
3. **#1451**: [URGENT] 4 duplicate PRs for issue #1338 need cleanup
|
||||
4. **#1452**: [URGENT] 3 duplicate PRs for issue #1336 need cleanup
|
||||
5. **#1453**: 2 duplicate PRs for issue #1127 need cleanup
|
||||
6. **#1454**: 2 duplicate PRs for issue #1415 need cleanup
|
||||
|
||||
## Scripts Created
|
||||
|
||||
1. **scripts/close-duplicate-prs.sh**: Script to close duplicate PRs
|
||||
2. **docs/triage-report-2026-04-14.md**: Detailed triage report
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Review and merge the newest PR for each issue
|
||||
2. Close duplicate PRs using the script
|
||||
3. Implement duplicate detection to prevent future issues
|
||||
4. Update issue #1128 with findings
|
||||
|
||||
## Impact
|
||||
|
||||
- **Total PRs**: 28
|
||||
- **Duplicate PRs to close**: 16
|
||||
- **Unique issues**: 10
|
||||
- **Duplicate groups**: 6
|
||||
|
||||
## Root Cause
|
||||
|
||||
Multiple agents are working on the same issues without coordination. The cleanup script created in #1128 would have prevented this if it had been used.
|
||||
|
||||
---
|
||||
|
||||
*Generated: 2026-04-14*
|
||||
96
docs/triage-report-2026-04-14.md
Normal file
96
docs/triage-report-2026-04-14.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Forge Triage Report — Issue #1128
|
||||
|
||||
## Summary
|
||||
|
||||
This report documents the current state of duplicate PRs in the-nexus repository as of 2026-04-14.
|
||||
|
||||
## Critical Finding
|
||||
|
||||
**There are 6 duplicate issue groups with 28 total PRs!** This is a serious problem that needs immediate attention.
|
||||
|
||||
## Duplicate PR Analysis
|
||||
|
||||
### Issue #1128: Forge Cleanup (5 duplicate PRs)
|
||||
- #1437: feat: Add forge cleanup tools and documentation (#1128)
|
||||
- #1429: feat: Add forge cleanup tools and documentation (#1128)
|
||||
- #1407: feat: Add forge cleanup tools and documentation (#1128)
|
||||
- #1401: feat: Add forge cleanup tools and documentation (#1128)
|
||||
- #1395: docs: Add forge cleanup analysis and tools (#1128)
|
||||
|
||||
**Action Required**: Close 4 duplicates, keep #1437 (newest)
|
||||
|
||||
### Issue #1339: Deploy Nexus to proper URL (6 duplicate PRs)
|
||||
- #1419: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
- #1416: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
- #1411: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
- #1410: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
- #1405: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
- #1400: feat(#1339): Deploy Nexus to proper URL for preview
|
||||
|
||||
**Action Required**: Close 5 duplicates, keep #1419 (newest)
|
||||
|
||||
### Issue #1338: Remove duplicate content blocks (4 duplicate PRs)
|
||||
- #1432: fix: Remove duplicate content blocks from README.md and POLICY.md (#1338)
|
||||
- #1422: fix: Remove duplicate content blocks from README.md and POLICY.md (#1338)
|
||||
- #1408: fix: Remove duplicate content blocks from README.md and POLICY.md (#1338)
|
||||
- #1399: fix: Remove duplicate content blocks from README.md and POLICY.md (#1338)
|
||||
|
||||
**Action Required**: Close 3 duplicates, keep #1432 (newest)
|
||||
|
||||
### Issue #1336: Fix merge conflict artifacts (3 duplicate PRs)
|
||||
- #1438: fix: duplicate atlas-toggle-btn ID from merge conflict (#1336)
|
||||
- #1406: fix: duplicate atlas-toggle-btn ID from merge conflict (#1336)
|
||||
- #1402: fix: merge conflict artifacts in index.html (#1336)
|
||||
|
||||
**Action Required**: Close 2 duplicates, keep #1438 (newest)
|
||||
|
||||
### Issue #1127: Implement triage recommendations (2 duplicate PRs)
|
||||
- #1409: feat: implement Issue #1127 triage processor
|
||||
- #1403: feat: implement Issue #1127 triage recommendations
|
||||
|
||||
**Action Required**: Close 1 duplicate, keep #1409 (newest)
|
||||
|
||||
### Issue #1415: Port 8080 conflict (2 duplicate PRs)
|
||||
- #1431: fix: port 8080 conflict between L402 server and preview (#1415)
|
||||
- #1425: fix: resolve port 8080 conflict between preview server and L402 endpoint (#1415)
|
||||
|
||||
**Action Required**: Close 1 duplicate, keep #1431 (newest)
|
||||
|
||||
## Impact
|
||||
|
||||
- **Total PRs**: 28
|
||||
- **Duplicate PRs to close**: 16
|
||||
- **Unique issues**: 10
|
||||
- **Duplicate groups**: 6
|
||||
|
||||
## Root Cause
|
||||
|
||||
The duplicate PRs are being created because:
|
||||
1. Multiple agents are working on the same issues
|
||||
2. No coordination between agents
|
||||
3. No duplicate detection before creating PRs
|
||||
4. The cleanup script I created isn't being used
|
||||
|
||||
## Recommendations
|
||||
|
||||
1. **Immediate**: Close all duplicate PRs identified above
|
||||
2. **Short-term**: Implement duplicate detection in the PR creation process
|
||||
3. **Medium-term**: Use the cleanup script I created to prevent future duplicates
|
||||
4. **Long-term**: Implement agent coordination to prevent multiple agents from working on the same issue
|
||||
|
||||
## Files to Create
|
||||
|
||||
1. `docs/triage-report-2026-04-14.md`: This report
|
||||
2. `scripts/close-duplicate-prs.sh`: Script to close duplicate PRs
|
||||
3. `.github/workflows/weekly-triage.yml`: Weekly triage workflow
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. File issues for each duplicate group
|
||||
2. Create script to close duplicate PRs
|
||||
3. Implement weekly triage process
|
||||
4. Update issue #1128 with findings
|
||||
|
||||
---
|
||||
|
||||
*Generated: 2026-04-14*
|
||||
102
scripts/close-duplicate-prs.sh
Executable file
102
scripts/close-duplicate-prs.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env bash
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# close-duplicate-prs.sh — Close duplicate PRs identified in triage
|
||||
#
|
||||
# This script closes duplicate PRs based on the triage report.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/close-duplicate-prs.sh [--dry-run] [--close]
|
||||
#
|
||||
# Options:
|
||||
# --dry-run Show what would be done without making changes
|
||||
# --close Actually close duplicate PRs (default is dry-run)
|
||||
#
|
||||
# Designed for issue #1128: Forge Cleanup
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
set -euo pipefail
|
||||
|
||||
# ─── Configuration ──────────────────────────────────────────
|
||||
GITEA_URL="${GITEA_URL:-https://forge.alexanderwhitestone.com}"
|
||||
GITEA_TOKEN="${GITEA_TOKEN:?Set GITEA_TOKEN env var}"
|
||||
REPO="${REPO:-Timmy_Foundation/the-nexus}"
|
||||
DRY_RUN="${DRY_RUN:-true}"
|
||||
|
||||
# Parse command line arguments
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--dry-run)
|
||||
DRY_RUN="true"
|
||||
;;
|
||||
--close)
|
||||
DRY_RUN="false"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
API="$GITEA_URL/api/v1"
|
||||
AUTH="token $GITEA_TOKEN"
|
||||
|
||||
log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%SZ)] $*"; }
|
||||
|
||||
# ─── Duplicate PR Data ─────────────────────────────────────
|
||||
# Based on triage report from docs/triage-report-2026-04-14.md
|
||||
|
||||
declare -A KEEP_PRS=(
|
||||
["1128"]="1437"
|
||||
["1339"]="1419"
|
||||
["1338"]="1432"
|
||||
["1336"]="1438"
|
||||
["1127"]="1409"
|
||||
["1415"]="1431"
|
||||
)
|
||||
|
||||
declare -A CLOSE_PRS=(
|
||||
["1128"]="1429 1407 1401 1395"
|
||||
["1339"]="1416 1411 1410 1405 1400"
|
||||
["1338"]="1422 1408 1399"
|
||||
["1336"]="1406 1402"
|
||||
["1127"]="1403"
|
||||
["1415"]="1425"
|
||||
)
|
||||
|
||||
log "Closing duplicate PRs (dry_run: $DRY_RUN)"
|
||||
|
||||
# ─── Close Duplicate PRs ──────────────────────────────────
|
||||
CLOSED_COUNT=0
|
||||
|
||||
for issue_num in "${!KEEP_PRS[@]}"; do
|
||||
keep_pr="${KEEP_PRS[$issue_num]}"
|
||||
close_prs="${CLOSE_PRS[$issue_num]}"
|
||||
|
||||
log "Issue #$issue_num: Keeping PR #$keep_pr, closing: $close_prs"
|
||||
|
||||
for pr_num in $close_prs; do
|
||||
log "Closing duplicate PR #$pr_num for issue #$issue_num"
|
||||
|
||||
if [ "$DRY_RUN" = "true" ]; then
|
||||
log "DRY RUN: Would close PR #$pr_num"
|
||||
else
|
||||
# Add a comment explaining why we're closing
|
||||
comment_body="Closing as duplicate. PR #$keep_pr is newer and addresses the same issue (#$issue_num). This cleanup is part of issue #1128 triage."
|
||||
|
||||
curl -s -X POST -H "$AUTH" -H "Content-Type: application/json" -d "{\"body\": \"$comment_body\"}" "$API/repos/$REPO/issues/$pr_num/comments" > /dev/null
|
||||
|
||||
# Close the PR
|
||||
curl -s -X PATCH -H "$AUTH" -H "Content-Type: application/json" -d '{"state": "closed"}' "$API/repos/$REPO/pulls/$pr_num" > /dev/null
|
||||
|
||||
log "Closed PR #$pr_num"
|
||||
CLOSED_COUNT=$((CLOSED_COUNT + 1))
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# ─── Summary ──────────────────────────────────────────────
|
||||
log "Cleanup complete:"
|
||||
log " PRs closed: $CLOSED_COUNT"
|
||||
log " Dry run: $DRY_RUN"
|
||||
|
||||
if [ "$CLOSED_COUNT" -eq 0 ]; then
|
||||
log "No PRs were closed (dry run mode)"
|
||||
fi
|
||||
|
||||
log "Script complete"
|
||||
Reference in New Issue
Block a user