Skip to content

Releases: caty-ai/alpha-nightshift

v0.7.0 — loom runner template tests/run.sh, runner-parity lint gate, docs

Choose a tag to compare

@github-actions github-actions released this 07 Sep 03:43
15b8b01

v0.7.0 — loom runner template tests/run.sh, runner-parity lint gate, docs

Adopts the alpha-loom v0.9.2 shell-file-v1 runner contract: tests/run.sh
(same discovery, contract table and verdict rule as tests/run_tests.sh;
accepts only --loom-server-verifier; never reads the census; emits the
suites: declared=N executed=N skipped=N line exactly once from the EXIT
trap; neutralises nested summary lines; byte-safe replay), a runner-parity
gate in make lint and CI, and engineering docs for the loom residuals.
Registration of the loom profile and loom-profile.pin are tracked in
caty-ai/alpha-nightshift-dev#81.

Evidence: PR #33 (completion
record; 3-seat cumulative GO on 6874637; host full runs 45/45 x4; CI guard
https://github.com/caty-ai/alpha-nightshift/actions/runs/34060092526).

v0.6.7 — review lane timebox re-check, health clone.log pre-create, docs

Choose a tag to compare

@shojikumaru shojikumaru released this 06 Sep 17:26
df46977

Review lane (#79): run_with_watchdog() re-checks kill -0 immediately before marking a timeout, so a seat that already exited at the timebox edge is reported with its real exit code instead of 124; a truly hung seat still gets stop_seat_tree and 124. Behaviour note: a seat that exits at the boundary but leaves a live descendant is reported as 125 (not 124); the tree is still killed. Deterministic boundary test via a BASH_ENV fake clock.

Health lane: evidence/clone.log is pre-created so an unwritable evidence/ is reported as evidence-log-unwritable (not clone-failed); the second pgrep -g read in stop_remaining_tree is fail-closed (rc>1 → unconditional group KILL). Docs: Makefile detection is a test: target (test:= excluded); evidence-unwritable upgrades exit 0/3 to 1.

Evidence: PR #32 (completion record; Kimi/Grok/Opus GO), guard run https://github.com/caty-ai/alpha-nightshift/actions/runs/34046927692

v0.6.6 — health lane hardening (single selection fn, leftover-only reaping, reason tokens)

Choose a tag to compare

@shojikumaru shojikumaru released this 06 Sep 14:05
fdbdc3a

Health lane (#76): one candidate_source() for preflight and selection; stop_remaining_tree() signals only live leftovers after a normal exit; timebox boundary re-check; Makefile detection ignores test:= and refuses to run without make (no fabricated finding); IFS/nullglob restored; error() takes a short reason token (health.json.reason machine-readable); finish() still writes health.json when the evidence manifest is unwritable.

Evidence: PR #30 (completion record; Kimi/Grok/Opus GO), guard run https://github.com/caty-ai/alpha-nightshift/actions/runs/34011132038

v0.6.5 — test harness verdict rule

Choose a tag to compare

@shojikumaru shojikumaru released this 06 Sep 03:23
ee23ffc

tests/run_tests.sh now counts a suite as PASS only when it exits 0 AND prints its verdict line (': PASS' exactly, or a line starting with 'PASS ('). A suite that dies silently with exit 0 is reported as 'FAIL (no verdict line)'. Output is captured in memory and replayed before the verdict (no temp file, no fd 3, portable to Linux). New suite test_run_tests_harness.sh (census 45). Seats: GLM 5.3 / Opus 5 / Grok 4.6 cumulative GO over three rounds. PR #29 squash ee23ffc (-dev#73).

v0.6.4 — digest names the rotation target and health result

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 19:18
223511f

The morning digest now prints, under レーン統計, one line per lane artifact: 'review rotation: (previous <night|none>, refresh <ok|failed|skipped>)' from lane_N/rotation.json and 'health: runner=… result=… failures=n/m[ reason=…]' from lane_N/health.json (#69). Present-but-broken artifacts print 'unreadable (lane_N)'; artifact-free nights render exactly as before. Strings capped at 120 chars; empty identifiers and symlinked lane dirs are refused fail-visibly. Seats: GLM 5.3 / Opus 5 / Grok 4.6 cumulative GO. PR #27 squash 223511f (-dev#70).

v0.6.3 — health lane (generic test runner on the rotation target)

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 17:59
c62a549

New lanes/health/run.sh: clones the repository the review rotation picked tonight, detects or takes an explicit test runner (HEALTH_TEST_CMD / HEALTH_SUITE_GLOB / make test / tests/run.sh / tests/run_tests.sh), runs it under a timebox with process-tree kill, and emits one test-failure finding per failing suite in the ledger schema. NO-INPUT nights are fail-visible (exit 3, health.json, lane.log). Also: bare-mirror test for rotate.sh, HEALTH_* settings in docs and the config example, suite census 44. Seats: GLM 5.3 / Grok 4.6 GO, Opus 5 GO-WITH-CHANGES (leftovers in -dev#76). PR #26 squash c62a549 (-dev#69).

v0.6.2 — metsuke codex seat sandbox flag

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 17:01
7d8d1b2

lanes/metsuke/run.sh: the codex seat passes --sandbox workspace-write instead of the removed --full-auto (codex CLI 0.153). Exact-argv assertion updated with two explicit guards. Seats: GLM 5.3 / Opus 5 / Grok 4.6 all GO (-dev#72, PR #24 squash 7d8d1b2).

v0.6.1 — watchdog timing check budget

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 15:57
774c4a3

tests/test_lane_review_runtime.sh: the two-second watchdog case is bounded by REVIEW_TEST_WATCHDOG_BUDGET_SEC (default 60, validated) and the kill is proven by run.log markers instead of wall clock, ending the hosted macos-15 flake (-dev#74, #21, #23). Seats: GLM 5.3 / Opus 5 / Grok 4.6 all GO. PR #25 squash 774c4a3.

v0.6.0 — digest: Lane status section from a configurable external reporter

Choose a tag to compare

@github-actions github-actions released this 05 Sep 13:42
18dbecf

v0.6.0 — digest: Lane status section from a configurable external reporter

The morning digest gains a "Lane status" section fed by LANE_STATUS_CMD: counts plus capped lists of default-branch
CI reds, human-owned lanes and stale lanes, a documented tool-agnostic JSON contract, six fail-visible paths that never
change the digest exit code, raw JSON saved under state/digests// (0600), and an isolated launch frame
(env -i, quarantined HOME, GH_CONFIG_DIR carve-out, set -m process-tree kill, ulimit-bounded output).

Evidence: PR #20 (completion record L1-7, candidate 3abdf95), CI runs
https://github.com/caty-ai/alpha-nightshift/actions/runs/33956820520 (guard) and
https://github.com/caty-ai/alpha-nightshift/actions/runs/33956820731 (test-lint), Issue #16 (design freeze,
implementation records). Design: docs/digest-lane-status.md v1.3.

v0.5.1 — review seat adapters

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 12:30
a2efa20

codex seat: --full-auto (removed in codex CLI v0.153) → --sandbox read-only. glm seat: accept NAME=value first line in GLM_KEY_FILE (bare key still accepted; export/quoted/multi-= rejected explicitly; key never echoed), default model glm-5.3. Both seats had been exiting before doing any work nightly (glm since at least 2026-09-02). Runtime suite is bash-3.2-safe with a truncation guard. Issue: caty-ai/alpha-nightshift-dev#71 · PR: #18 · Reviews: GLM 5.3 / Grok 4.6 / Opus 5 (delta GO/GO/GO). Follow-ups: #72 #73 #74.