Compare commits

...

16 Commits

Author SHA1 Message Date
kami f5dd1de57a orchestra: pre-release WIP snapshot (orchestra-06g4m8whgq4p3gqmpeeh0rjrhm-70ced771) 2026-08-29 00:57:40 +04:00
kami 3b66b2b6a6 orchestra: TASK.md 2026-08-29 00:50:41 +04:00
kami a09fd607a4 Merge pull request 'Late handoff rig: add a --version line to the healthcheck usage text' (#17) from orchestra/06G4JX6MSQEP7N0D5JWW9EP5X4 into master
Reviewed-on: #17
2026-08-28 21:40:40 +02:00
kami 419e17fce2 orchestra: pre-release WIP snapshot (orchestra-06g4jx6msqep7n0d5jww9ep5x4-d6e6951e) 2026-08-28 21:44:50 +04:00
kami 1d8c3e1f6b orchestra: TASK.md 2026-08-28 21:39:51 +04:00
kami bf0f287aca Merge pull request 'Route the healthcheck output through one helper' (#16) from orchestra/06G4GWWJ8SWFREF06HDYEBAG0C into master 2026-08-28 15:18:02 +02:00
kami 5bcffb337f orchestra: pre-release WIP snapshot (orchestra-06g4gwwj8swfref06hdyebag0c-940ab9dd) 2026-08-28 17:06:41 +04:00
kami affbbe411b orchestra: TASK.md 2026-08-28 16:58:52 +04:00
kami ec320c8240 Merge pull request 'Give the healthcheck a self-test and a machine-readable mode' (#11) from orchestra/06G4FT0MB733H2ZCZ237WFHFD8 into master 2026-08-28 12:42:28 +02:00
kami ba0e891348 orchestra: pre-release WIP snapshot (orchestra-06g4ft0mb733h2zcz237wfhfd8-b318f8b5) 2026-08-28 14:37:09 +04:00
kami 56d9b9acdd orchestra: pre-release WIP snapshot (orchestra-06g4ft0mb733h2zcz237wfhfd8-b318f8b5) 2026-08-28 14:32:34 +04:00
kami 14654d6cab orchestra: TASK.md 2026-08-28 14:26:29 +04:00
kami f48e363d99 Merge pull request 'Add a --quiet flag to the healthcheck script' (#8) from orchestra/06G4E6F69AKP2PA00S28D7ASBC into master
orchestra burn-in: PR tail
2026-08-28 09:02:07 +02:00
kami 0d1585df93 orchestra: pre-release WIP snapshot (orchestra-06g4e6f69akp2pa00s28d7asbc-abb7ef54) 2026-08-28 10:58:57 +04:00
kami 41dee80241 orchestra: pre-release WIP snapshot (orchestra-06g4e6f69akp2pa00s28d7asbc-abb7ef54) 2026-08-28 10:46:43 +04:00
kami 3a076dca70 orchestra: TASK.md 2026-08-28 10:41:18 +04:00
4 changed files with 145 additions and 4 deletions
+41
View File
@@ -0,0 +1,41 @@
# Task 06G4M8WHGQ4P3GQMPEEH0RJRHM
Give the healthcheck a --list-checks flag
- Project: test-e2e
- Source: burnin/run14-c
- Priority: 0
## Instructions
Give `scripts/orchestra_e2e_healthcheck.sh` a `--list-checks` flag that prints the name of each check it performs, one per line, and exits 0.
This is deliberately two pieces of work, and the plan should carry two phases:
1. Name the checks. The script performs its checks inline. Introduce one list of check names and drive the existing run from that list, with no change to any output or exit status.
2. Add the flag. `--list-checks` prints the names from that list and exits 0. Add one line to the usage text describing it.
## Verification policy for this project
Only two commands may appear on a `- run:` line, exactly:
- `["bash", "-n", "<path>"]`
- `["bash", "scripts/orchestra_e2e_healthcheck.sh"]`
Anything else is refused when you seal the plan. `scripts/test_healthcheck.sh` is NOT permitted as an automated command. Update it as a manual step so its expected `--help` text matches, and list that as a manual check.
## Research first
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`.
## Quality gate
bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh
## Completion
Run the configured quality gate. When the task is ready for the worker to verify and deliver, create `.orchestra/done`. Do not write a prose completion report.
This file is immutable for the lifetime of the task (§6.2) — its hash is
carried in every handoff and re-verified on every pickup. Do not edit it.
+39 -4
View File
@@ -1,16 +1,51 @@
#!/usr/bin/env bash
readonly VERSION=1.0.0
readonly CHECKS=(script-runs)
# emit <format> <template> [args...]: the single output path.
# format: text or json print; none suppresses (--quiet). Explicit argument,
# never read from an enclosing variable.
emit() {
local format=$1
shift
[ "$format" = none ] || printf "$@"
}
main() {
local quiet=
local json=
for arg in "$@"; do
if [ "$arg" = --help ]; then
printf 'Usage: %s\n\n' "${0##*/}"
printf 'Healthcheck script for Orchestra E2E tests.\n'
printf 'Exits 0 with a success message if all checks pass.\n'
emit text 'Usage: %s [--quiet]\n\n' "${0##*/}"
emit text 'Healthcheck script for Orchestra E2E tests.\n'
emit text 'Exits 0 with a success message if all checks pass.\n'
emit text ' --quiet Suppress the success message; still exits 0.\n'
emit text ' --list-checks Print the name of each check; exits 0.\n'
emit text 'Version: %s\n' "$VERSION"
exit 0
elif [ "$arg" = --list-checks ]; then
for name in "${CHECKS[@]}"; do
emit text '%s\n' "$name"
done
exit 0
elif [ "$arg" = --quiet ]; then
quiet=1
elif [ "$arg" = --json ]; then
json=1
fi
done
printf 'OK - all healthchecks passed\n'
local format=text
[ -n "$quiet" ] && format=none
[ -n "$json" ] && format=json
if [ "$format" = json ]; then
emit "$format" '{"status":"ok","checks":%d}\n' "${#CHECKS[@]}"
exit 0
fi
emit "$format" 'OK - all healthchecks passed\n'
exit 0
}
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
# Self-test for the Orchestra E2E healthcheck.
here=$(cd "$(dirname "$0")" && pwd)
healthcheck="$here/orchestra_e2e_healthcheck.sh"
# fail <assertion> <captured stdout>: always echo what the healthcheck printed,
# so a red run is diagnosable without rerunning it by hand.
fail() {
printf 'selftest: FAILED %s\n' "$1" >&2
printf 'selftest: healthcheck stdout was:\n%s\n' "$2" >&2
exit 1
}
# plain run
out=$(bash "$healthcheck")
status=$?
[ "$status" -eq 0 ] || fail "plain run exit status: want 0, got $status" "$out"
case "$out" in
*OK*) ;;
*) fail "plain run stdout contains OK" "$out" ;;
esac
# --json run
jout=$(bash "$healthcheck" --json)
jstatus=$?
[ "$jstatus" -eq 0 ] || fail "--json run exit status: want 0, got $jstatus" "$jout"
jlines=$(printf '%s\n' "$jout" | wc -l)
[ "$jlines" -eq 1 ] || fail "--json run line count: want 1, got $jlines" "$jout"
case "$jout" in
'{"status":'*) ;;
*) fail '--json run stdout prefix: want {"status":' "$jout" ;;
esac
printf 'selftest: ok\n'
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Self-check for orchestra_e2e_healthcheck.sh.
HC="$(dirname "$0")/orchestra_e2e_healthcheck.sh"
OK='OK - all healthchecks passed'
USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet]\n\nHealthcheck script for Orchestra E2E tests.\nExits 0 with a success message if all checks pass.\n --quiet Suppress the success message; still exits 0.\n --list-checks Print the name of each check; exits 0.\nVersion: 1.0.0')"
fails=0
check() { # check <expected-stdout> <label> [args...]
local want=$1 label=$2 got status
shift 2
got=$(bash "$HC" "$@" 2>/dev/null)
status=$?
if [ "$got" != "$want" ] || [ "$status" -ne 0 ]; then
printf 'FAIL: %s (exit=%s)\n---got---\n%s\n---want---\n%s\n' "$label" "$status" "$got" "$want"
fails=$((fails + 1))
fi
}
check "$OK" 'no args'
check '' '--quiet' --quiet
check "$USAGE" '--help' --help
check "$USAGE" '--help --quiet' --help --quiet
check "$USAGE" '--quiet --help' --quiet --help
check "$OK" 'unknown flag ignored' --bogus
[ "$fails" -eq 0 ] || exit 1
printf 'all checks passed\n'