@ai-dev-methodologies/rlp-desk 0.14.4 → 0.14.5
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.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-dev-methodologies/rlp-desk",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.5",
|
|
4
4
|
"description": "Fresh-context iterative loops for Claude Code — autonomous task completion with independent verification",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"postinstall": "node scripts/postinstall.js",
|
|
@@ -1508,6 +1508,28 @@ _verifier_pane_has_verdict() {
|
|
|
1508
1508
|
return 1
|
|
1509
1509
|
}
|
|
1510
1510
|
|
|
1511
|
+
# v0.14.5 Bug Report #6 Fix-M (worker mirror of Fix-A/Fix-D):
|
|
1512
|
+
# Worker (claude sonnet 1m) writes commit + iter-signal.json verify signal
|
|
1513
|
+
# then claude CLI parks at its idle prompt. check_no_progress observes
|
|
1514
|
+
# byte-stasis on the worker pane and would BLOCK after 600s even though
|
|
1515
|
+
# the signal is on disk. When the pane is the worker pane AND a valid
|
|
1516
|
+
# iter-signal is on disk, defer to the harvest step (poll_for_signal in
|
|
1517
|
+
# run_single_worker) instead of escalating BLOCKED.
|
|
1518
|
+
_worker_pane_has_signal() {
|
|
1519
|
+
local pane_id="$1"
|
|
1520
|
+
[[ -n "${WORKER_PANE:-}" && "$pane_id" == "${WORKER_PANE}" ]] || return 1
|
|
1521
|
+
[[ -n "${SIGNAL_FILE:-}" && -s "$SIGNAL_FILE" ]] || return 1
|
|
1522
|
+
jq -e . "$SIGNAL_FILE" >/dev/null 2>&1 || return 1
|
|
1523
|
+
local iter_field us_field status_field
|
|
1524
|
+
iter_field=$(jq -r '.iteration // empty' "$SIGNAL_FILE" 2>/dev/null)
|
|
1525
|
+
us_field=$(jq -r '.us_id // empty' "$SIGNAL_FILE" 2>/dev/null)
|
|
1526
|
+
status_field=$(jq -r '.status // empty' "$SIGNAL_FILE" 2>/dev/null)
|
|
1527
|
+
[[ "$iter_field" =~ ^[0-9]+$ ]] || return 1
|
|
1528
|
+
[[ -n "$us_field" ]] || return 1
|
|
1529
|
+
[[ "$status_field" == "verify" || "$status_field" == "verify_partial" ]] || return 1
|
|
1530
|
+
return 0
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1511
1533
|
# v5.7 §4.17 (codex Critic HIGH): generic no-progress timeout — independent
|
|
1512
1534
|
# of prompt detection. Closes the gap where an undetected prompt or alive-
|
|
1513
1535
|
# but-frozen Worker can bypass Layer 4 and infinite-wait.
|
|
@@ -1534,6 +1556,16 @@ check_no_progress() {
|
|
|
1534
1556
|
PANE_LAST_CHANGE_TS[$pane_id]=$now
|
|
1535
1557
|
return 0
|
|
1536
1558
|
fi
|
|
1559
|
+
# v0.14.5 Bug Report #6 Fix-M: claude worker finishes (commit + iter-signal
|
|
1560
|
+
# write) then parks at its idle prompt. byte-stasis would BLOCK after 600s
|
|
1561
|
+
# even though the signal is on disk. Worker mirror of the verifier branch
|
|
1562
|
+
# above — defer to poll_for_signal harvest when SIGNAL_FILE is valid.
|
|
1563
|
+
if _worker_pane_has_signal "$pane_id"; then
|
|
1564
|
+
PANE_LAST_CONTENT_FOR_PROGRESS[$pane_id]="$capture"
|
|
1565
|
+
PANE_LAST_CHANGE_TS[$pane_id]=$now
|
|
1566
|
+
log_debug "[GOV] iter=${ITERATION:-0} worker_progress_check=signal_present pane=$pane_id signal=${SIGNAL_FILE}"
|
|
1567
|
+
return 0
|
|
1568
|
+
fi
|
|
1537
1569
|
# v0.14.2: root-cause tracing for Bug Report #4. When the watcher is
|
|
1538
1570
|
# examining a verifier pane that does NOT have a verdict yet, log once
|
|
1539
1571
|
# per byte-stasis transition so post-mortem can tell whether the
|