@xn-intenton-z2a/agentic-lib 7.4.30 → 7.4.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1357,12 +1357,14 @@ jobs:
|
|
|
1357
1357
|
# ─── Review: close resolved issues, enhance with criteria ──────────
|
|
1358
1358
|
# W15: Skip review when there are no open issues to review
|
|
1359
1359
|
review-features:
|
|
1360
|
-
needs: [params, maintain, supervisor, telemetry]
|
|
1360
|
+
needs: [params, maintain, supervisor, telemetry, director]
|
|
1361
1361
|
if: |
|
|
1362
1362
|
!cancelled() &&
|
|
1363
1363
|
(needs.params.outputs.mode == 'full' || needs.params.outputs.mode == 'review-only') &&
|
|
1364
1364
|
needs.params.result == 'success' &&
|
|
1365
|
-
needs.telemetry.outputs.open-issue-count != '0'
|
|
1365
|
+
needs.telemetry.outputs.open-issue-count != '0' &&
|
|
1366
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1367
|
+
needs.director.outputs.decision != 'mission-failed'
|
|
1366
1368
|
runs-on: ubuntu-latest
|
|
1367
1369
|
steps:
|
|
1368
1370
|
- uses: actions/checkout@v6
|
|
@@ -1716,7 +1718,7 @@ jobs:
|
|
|
1716
1718
|
|
|
1717
1719
|
# ─── Post-merge: stats, schedule, mission check ────────────────────
|
|
1718
1720
|
post-merge:
|
|
1719
|
-
needs: [params, maintain, dev, pr-cleanup, implementation-review]
|
|
1721
|
+
needs: [params, maintain, dev, pr-cleanup, implementation-review, director]
|
|
1720
1722
|
if: ${{ !cancelled() && needs.params.result == 'success' }}
|
|
1721
1723
|
runs-on: ubuntu-latest
|
|
1722
1724
|
steps:
|
|
@@ -1743,6 +1745,8 @@ jobs:
|
|
|
1743
1745
|
if: |
|
|
1744
1746
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1745
1747
|
needs.params.outputs.dry-run != 'true' &&
|
|
1748
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1749
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1746
1750
|
github.repository != 'xn-intenton-z2a/agentic-lib'
|
|
1747
1751
|
env:
|
|
1748
1752
|
LOG_BRANCH: ${{ needs.params.outputs.log-branch }}
|
|
@@ -1756,6 +1760,8 @@ jobs:
|
|
|
1756
1760
|
if: |
|
|
1757
1761
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1758
1762
|
needs.params.outputs.dry-run != 'true' &&
|
|
1763
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1764
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1759
1765
|
github.repository != 'xn-intenton-z2a/agentic-lib'
|
|
1760
1766
|
with:
|
|
1761
1767
|
node-version: "24"
|
|
@@ -1764,6 +1770,8 @@ jobs:
|
|
|
1764
1770
|
if: |
|
|
1765
1771
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1766
1772
|
needs.params.outputs.dry-run != 'true' &&
|
|
1773
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1774
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1767
1775
|
hashFiles('scripts/self-init.sh') != '' && hashFiles('.github/agentic-lib/actions/agentic-step/package.json') == ''
|
|
1768
1776
|
run: bash scripts/self-init.sh
|
|
1769
1777
|
|
|
@@ -1771,6 +1779,8 @@ jobs:
|
|
|
1771
1779
|
if: |
|
|
1772
1780
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1773
1781
|
needs.params.outputs.dry-run != 'true' &&
|
|
1782
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1783
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1774
1784
|
github.repository != 'xn-intenton-z2a/agentic-lib'
|
|
1775
1785
|
working-directory: .github/agentic-lib/actions/agentic-step
|
|
1776
1786
|
run: |
|
|
@@ -1784,6 +1794,8 @@ jobs:
|
|
|
1784
1794
|
if: |
|
|
1785
1795
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1786
1796
|
needs.params.outputs.dry-run != 'true' &&
|
|
1797
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1798
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1787
1799
|
github.repository != 'xn-intenton-z2a/agentic-lib'
|
|
1788
1800
|
timeout-minutes: 10
|
|
1789
1801
|
uses: ./.github/agentic-lib/actions/agentic-step
|
|
@@ -1802,6 +1814,8 @@ jobs:
|
|
|
1802
1814
|
if: |
|
|
1803
1815
|
needs.params.outputs.mission-complete != 'true' &&
|
|
1804
1816
|
needs.params.outputs.dry-run != 'true' &&
|
|
1817
|
+
needs.director.outputs.decision != 'mission-complete' &&
|
|
1818
|
+
needs.director.outputs.decision != 'mission-failed' &&
|
|
1805
1819
|
github.repository != 'xn-intenton-z2a/agentic-lib'
|
|
1806
1820
|
env:
|
|
1807
1821
|
LOG_BRANCH: ${{ needs.params.outputs.log-branch }}
|
package/package.json
CHANGED
|
@@ -79,10 +79,58 @@ else
|
|
|
79
79
|
|
|
80
80
|
for attempt in $(seq 1 $MAX_RETRIES); do
|
|
81
81
|
git push origin "${BRANCH}" && break
|
|
82
|
-
echo "push-to-logs: push failed (attempt $attempt) —
|
|
82
|
+
echo "push-to-logs: push failed (attempt $attempt) — fetching latest and retrying"
|
|
83
|
+
|
|
84
|
+
# Fetch the latest remote state before rebasing
|
|
85
|
+
git fetch origin "${BRANCH}" 2>/dev/null || true
|
|
86
|
+
|
|
87
|
+
# Save our file contents before rebase (they may be lost on conflict)
|
|
88
|
+
for f in "${FILES[@]}"; do
|
|
89
|
+
cp "$f" "${TMPDIR}/ours-$(basename "$f")" 2>/dev/null || true
|
|
90
|
+
done
|
|
91
|
+
|
|
83
92
|
git pull --rebase origin "${BRANCH}" || {
|
|
84
|
-
echo "push-to-logs: rebase conflict —
|
|
85
|
-
|
|
93
|
+
echo "push-to-logs: rebase conflict — resolving state file with merge strategy"
|
|
94
|
+
|
|
95
|
+
# For agentic-lib-state.toml conflicts, merge booleans (prefer true) and take max counters
|
|
96
|
+
STATE_FILE="agentic-lib-state.toml"
|
|
97
|
+
if git diff --name-only --diff-filter=U 2>/dev/null | grep -q "$STATE_FILE"; then
|
|
98
|
+
# Get the remote (theirs) version from the rebase base
|
|
99
|
+
git show "REBASE_HEAD:${STATE_FILE}" > "${TMPDIR}/ours-${STATE_FILE}" 2>/dev/null || true
|
|
100
|
+
git checkout --theirs "$STATE_FILE" 2>/dev/null || true
|
|
101
|
+
|
|
102
|
+
# Merge: for each boolean in our version that is true, set it true in theirs
|
|
103
|
+
if [ -f "${TMPDIR}/ours-${STATE_FILE}" ]; then
|
|
104
|
+
# Extract true booleans from our version and apply them
|
|
105
|
+
while IFS='=' read -r key val; do
|
|
106
|
+
key=$(echo "$key" | xargs)
|
|
107
|
+
val=$(echo "$val" | xargs)
|
|
108
|
+
if [ "$val" = "true" ]; then
|
|
109
|
+
# Set this key to true in the resolved file (theirs)
|
|
110
|
+
if grep -q "^${key} = " "$STATE_FILE" 2>/dev/null; then
|
|
111
|
+
sed -i "s/^${key} = .*/${key} = true/" "$STATE_FILE" 2>/dev/null || \
|
|
112
|
+
sed -i'' "s/^${key} = .*/${key} = true/" "$STATE_FILE" 2>/dev/null || true
|
|
113
|
+
fi
|
|
114
|
+
fi
|
|
115
|
+
done < "${TMPDIR}/ours-${STATE_FILE}"
|
|
116
|
+
fi
|
|
117
|
+
|
|
118
|
+
git add "$STATE_FILE"
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
# Resolve any other conflicting files by taking ours (our log files are authoritative)
|
|
122
|
+
for f in "${FILES[@]}"; do
|
|
123
|
+
if git diff --name-only --diff-filter=U 2>/dev/null | grep -q "$(basename "$f")"; then
|
|
124
|
+
cp "${TMPDIR}/ours-$(basename "$f")" "$f" 2>/dev/null || true
|
|
125
|
+
git add "$f"
|
|
126
|
+
fi
|
|
127
|
+
done
|
|
128
|
+
|
|
129
|
+
# Continue the rebase if there are resolved conflicts
|
|
130
|
+
git rebase --continue 2>/dev/null || {
|
|
131
|
+
echo "push-to-logs: rebase continue failed — aborting"
|
|
132
|
+
git rebase --abort 2>/dev/null || true
|
|
133
|
+
}
|
|
86
134
|
}
|
|
87
135
|
sleep $((attempt * 2))
|
|
88
136
|
if [ "$attempt" -eq "$MAX_RETRIES" ]; then
|