Compare commits

..

12 Commits

Author SHA1 Message Date
kami ec0502f829 Restore the byte-pinned USAGE test_healthcheck.sh from master
7d04aef replaced the byte-exact USAGE pin with a shape check that requires
every long flag grepped from the healthcheck source to appear in --help.
--json was already undocumented before this task, so that check was red on
arrival and it also dropped the 'unknown flag ignored' assertion on --bogus,
the only pin on the no---strict silent-ignore path.

The accepted plan's phase 3 is 'no edit': --help is untouched by --strict, so
master's version passes as-is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 15:54:11 +04:00
kami 7d04aef94d Drop the byte-exact USAGE pin from test_healthcheck.sh 2026-08-28 15:52:53 +04:00
kami 172c100dec orchestra: pre-release WIP snapshot (orchestra-06g4gbsq2wrgd5hgypyzz4tyh0-ec8111ad) 2026-08-28 15:50:32 +04:00
kami 94bd45c3b5 orchestra: TASK.md 2026-08-28 15:44:12 +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 120 additions and 27 deletions
+18 -25
View File
@@ -1,49 +1,42 @@
# Task 06G4E83E4KRXM8DS90M2648MGM
# Task 06G4GBSQ2WRGD5HGYPYZZ4TYH0
Add a --quiet flag to the healthcheck script
Add a --strict mode to the healthcheck
- Project: test-e2e
- Source: gitea:test-e2e/8
- Source: gitea:test-e2e/13
- Priority: 0
## Instructions
## Goal
Three phases, in this order.
Add a --quiet flag to the healthcheck script
## Phase 1 — `--strict` on the healthcheck
scripts/orchestra_e2e_healthcheck.sh already handles --help. Add a --quiet flag alongside it that suppresses the success line and still exits 0. Leave the default behaviour and the --help output unchanged.
`scripts/orchestra_e2e_healthcheck.sh --strict` must reject an unrecognised flag: print `unknown flag: <flag>` on stderr and exit 2. Without `--strict` the current silent-ignore behaviour is unchanged, and `--help` still wins from any position.
## Verification
## Phase 2 — cover `--strict` in the existing self-test
- `bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh` exited 0
- commit: 41dee802416aaa9020a2e31ae5b79fa084a4f150
- independent review of 41dee802416aaa9020a2e31ae5b79fa084a4f150: pass
- accepted plan: 6c62e3cde23ed9aca296ed5b60295384b35cdad9fe0e1e45fa381d5801fb9af3
Extend `scripts/orchestra_e2e_selftest.sh`, which already asserts the plain and `--json` runs. Add assertions that `--strict --nonsense` exits 2 and that `--strict` alone exits 0. Keep its existing `fail()` helper and its existing assertions.
## Behavioural changes
## Phase 3 — keep the pinned usage text honest
- none reported
`scripts/test_healthcheck.sh` pins the healthcheck's exact `--help` output in a hardcoded `USAGE` variable. Phase 1 changes nothing about `--help`, so this phase only confirms the pin still holds.
## Deviations from plan
Verify this phase by running the pinned test itself:
- none reported
- run: ["bash", "scripts/test_healthcheck.sh"]
## Remaining risks
## Constraints
- none reported
The project's verification policy allows exactly two command shapes:
## Review hotspots
["bash", "-n", "<one file>"]
["bash", "scripts/orchestra_e2e_healthcheck.sh"]
- none reported
## Research first
The sections above are derived from Orchestra state. The reported
changes, deviations, risks, and hotspots are the implementing agent's
own account and are not verified.
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`. Cite at least two in References.
## Acceptance criteria
- not stated in the task contract
## Completion
+25 -2
View File
@@ -1,16 +1,39 @@
#!/usr/bin/env bash
main() {
local quiet=
local json=
local strict=
local unknown=
for arg in "$@"; do
if [ "$arg" = --help ]; then
printf 'Usage: %s\n\n' "${0##*/}"
printf 'Usage: %s [--quiet]\n\n' "${0##*/}"
printf 'Healthcheck script for Orchestra E2E tests.\n'
printf 'Exits 0 with a success message if all checks pass.\n'
printf ' --quiet Suppress the success message; still exits 0.\n'
exit 0
elif [ "$arg" = --quiet ]; then
quiet=1
elif [ "$arg" = --json ]; then
json=1
elif [ "$arg" = --strict ]; then
strict=1
else
[ -n "$unknown" ] || unknown=$arg
fi
done
printf 'OK - all healthchecks passed\n'
if [ -n "$strict" ] && [ -n "$unknown" ]; then
printf 'unknown flag: %s\n' "$unknown" >&2
exit 2
fi
if [ -n "$json" ]; then
printf '{"status":"ok","checks":1}\n'
exit 0
fi
[ -n "$quiet" ] || printf 'OK - all healthchecks passed\n'
exit 0
}
+49
View File
@@ -0,0 +1,49 @@
#!/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
# --strict rejects an unknown flag
sout=$(bash "$healthcheck" --strict --nonsense 2>&1)
sstatus=$?
[ "$sstatus" -eq 2 ] || fail "--strict --nonsense exit status: want 2, got $sstatus" "$sout"
# --strict alone is accepted
gout=$(bash "$healthcheck" --strict)
gstatus=$?
[ "$gstatus" -eq 0 ] || fail "--strict run exit status: want 0, got $gstatus" "$gout"
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.')"
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'