Skip to content

Commit 9692113

Browse files
0.1.3: status line never blank, idle clamped; record the degraded-mode live run
1 parent 3a1dd65 commit 9692113

4 files changed

Lines changed: 16 additions & 2 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## 0.1.3
4+
5+
- Stack: a blank or failing status script is reported on the status line (`(status unavailable — see status.err)`) and its stderr is kept, instead of an empty field; `idle` can no longer print negative when a file mtime runs a second ahead of the clock.
6+
37
## 0.1.2
48

59
- Graceful degradation: a machine with fewer than three seats is no longer refused. The roster pads the panel up to three with Claude seats (`claude-1`, `claude-2`, … , each dealt its own lens) and marks itself `degraded` with a one-sentence reason, which the session banner, preflight's `WARNING` line and the report's `Degraded panel:` opener all carry. A Claude-Code-only machine can now use the plugin.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Live integration — degraded (Claude-only) panel, 2026-09-03
2+
3+
Plugin 0.1.2 installed from GitHub. Config `{"exclude": ["codex", "grok"]}` (no Gemini on the machine), so the roster had a single lab.
4+
5+
| Check | Result | Evidence |
6+
|---|---|---|
7+
| Roster | PASS | `opus`, `claude-1` (padded), `claude-2` (padded); `degraded: true`, `degradation: "only Claude is available — 3 Claude seats, no cross-lab decorrelation"`; banner carries `DEGRADED: …`; exit 0 |
8+
| One detached `stack.sh` leg, `/review-council:rev branch 1` on a planted fixture | PASS | 3 rounds in 65 min; all three Claude seats found the plants in round 1; 5 fixes; `report.md` opens with `Degraded panel: …` and Coverage quotes the degradation sentence verbatim and lists the padded seats and the config exclusions; 0 stall kills; orchestrator collapsed 3 review commits → `9308fd038`; `(NO_PUSH=1: not pushing)`; fixture ends at jest 14/14 |
9+
| `min_labs: 2` with one real lab | PASS (unit + direct) | roster exits 5 with `strict: 1 lab(s) available, min_labs=2` even though padded Claude seats are present |
10+
| Status line robustness | FIXED in 0.1.3 | one tick printed an empty status field when the status script produced nothing; now reported as `(status unavailable — see status.err)` with stderr kept; negative `idle` clamped |

‎plugins/review-council/.claude-plugin/plugin.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
33
"name": "review-council",
4-
"version": "0.1.2",
4+
"version": "0.1.3",
55
"description": "Multi-model code review council: Codex, Grok, Gemini and Claude seats reviewing the same change, triaged and fixed in a loop, with a roster built at run time from the lab CLIs you have installed.",
66
"author": { "name": "Wiktor Starczewski" },
77
"homepage": "https://github.com/WiktorStarczewski/review-council",

‎plugins/review-council/scripts/stack.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ ${VACUITY}${resume}"
147147
local now m idle; now=$(date +%s)
148148
m=$(last_activity "$S")
149149
[ "$m" -gt "$last_seen" ] && last_seen=$m
150-
idle=$(( now - last_seen ))
150+
idle=$(( now - last_seen )); [ "$idle" -lt 0 ] && idle=0 # an mtime a second ahead of the clock is not negative idleness
151151
if [ $(( now - last_status )) -ge "$STATUS_EVERY" ]; then
152152
local c mv n; c=$(cpu_of "$pid"); mv=frozen; [ "$c" != "$last_cpu" ] && mv=moving; last_cpu=$c
153153
n=$(cd "$dir" && git rev-list --count '@{u}..HEAD' 2>/dev/null || echo -)

0 commit comments

Comments
 (0)