bootstrap: freeze March 8 release path and evidence tooling

This commit is contained in:
anthonyrawlins
2026-02-26 22:48:50 +11:00
parent 8fa636acbb
commit 2147cec1c5
10 changed files with 682 additions and 280 deletions

127
testing/march8_bootstrap_gate.sh Executable file
View File

@@ -0,0 +1,127 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
CHORUS="$ROOT"
LIVE=0
PRIMARY_MODEL="${PRIMARY_MODEL:-openai/gpt-oss-120b}"
FALLBACK_MODEL="${FALLBACK_MODEL:-zai-org/glm-4.7-fp8}"
if [[ "${1:-}" == "--live" ]]; then
LIVE=1
fi
PASS=0
FAIL=0
pass() {
PASS=$((PASS + 1))
printf "PASS: %s\n" "$1"
}
fail() {
FAIL=$((FAIL + 1))
printf "FAIL: %s\n" "$1"
}
check_file() {
local f="$1"
local label="$2"
if [[ -f "$f" ]]; then
pass "$label"
else
fail "$label (missing: $f)"
fi
}
check_contains() {
local f="$1"
local pattern="$2"
local label="$3"
if rg -n --fixed-strings "$pattern" "$f" >/dev/null 2>&1; then
pass "$label"
else
fail "$label (pattern not found: $pattern)"
fi
}
check_not_contains() {
local f="$1"
local pattern="$2"
local label="$3"
if rg -n --fixed-strings "$pattern" "$f" >/dev/null 2>&1; then
fail "$label (still present: $pattern)"
else
pass "$label"
fi
}
printf "March 8 Bootstrap Gate\n"
date -u +"UTC now: %Y-%m-%dT%H:%M:%SZ"
printf "Mode: %s\n\n" "$([[ $LIVE -eq 1 ]] && echo "live" || echo "static")"
# Core files
check_file "$ROOT/docs/progress/MARCH8-BOOTSTRAP-RELEASE-BOARD.md" "Release board exists"
check_file "$CHORUS/docker/docker-compose.yml" "CHORUS compose exists"
check_file "$CHORUS/pkg/config/config.go" "CHORUS config defaults exists"
check_file "$CHORUS/reasoning/reasoning.go" "Reasoning provider code exists"
check_file "$ROOT/resetdata-models.txt" "ResetData model list exists"
check_file "$ROOT/resetdata-examples.md" "ResetData examples exists"
# Configuration consistency
check_contains "$CHORUS/docker/docker-compose.yml" "CHORUS_AI_PROVIDER=\${CHORUS_AI_PROVIDER:-resetdata}" "Compose defaults to resetdata provider"
check_contains "$CHORUS/docker/docker-compose.yml" "RESETDATA_BASE_URL=\${RESETDATA_BASE_URL:-https://app.resetdata.ai/api/v1}" "Compose base URL points at app.resetdata.ai"
check_contains "$CHORUS/docker/docker-compose.yml" "RESETDATA_MODEL=\${RESETDATA_MODEL:-openai/gpt-oss-120b}" "Compose default model is frozen primary model"
check_contains "$CHORUS/pkg/config/config.go" "BaseURL: getEnvOrDefault(\"RESETDATA_BASE_URL\", \"https://app.resetdata.ai/api/v1\")" "Go default base URL points at app.resetdata.ai"
check_contains "$CHORUS/pkg/config/config.go" "Provider: getEnvOrDefault(\"CHORUS_AI_PROVIDER\", \"resetdata\")" "Go default provider is resetdata"
check_contains "$CHORUS/pkg/config/config.go" "Model: getEnvOrDefault(\"RESETDATA_MODEL\", \"openai/gpt-oss-120b\")" "Go default model is frozen primary model"
# SWOOSH integration check
check_contains "$CHORUS/docker/docker-compose.yml" "WHOOSH_API_BASE_URL=\${SWOOSH_API_BASE_URL:-http://swoosh:8080}" "Compose points CHORUS to SWOOSH API"
check_contains "$CHORUS/docker/docker-compose.yml" "WHOOSH_API_ENABLED=true" "SWOOSH/WHOOSH API integration enabled"
# Critical gate: mock execution must be removed from critical path
check_not_contains "$CHORUS/coordinator/task_coordinator.go" "Task execution will fall back to mock implementation" "No mock fallback banner in task coordinator"
check_not_contains "$CHORUS/coordinator/task_coordinator.go" "Task completed successfully (mock execution)" "No mock completion path in task coordinator"
# Optional live API probe (does not print secret)
if [[ $LIVE -eq 1 ]]; then
KEY_FILE="${RESETDATA_API_KEY_FILE:-/home/tony/chorus/business/secrets/resetdata-beta.txt}"
if [[ -f "$KEY_FILE" ]]; then
API_KEY="$(tr -d '\n' < "$KEY_FILE")"
if [[ -n "$API_KEY" ]]; then
HTTP_CODE="$(curl -sS -o /tmp/resetdata_probe_primary.json -w "%{http_code}" \
-X POST "https://app.resetdata.ai/api/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$PRIMARY_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Respond with OK\"}],\"max_tokens\":16,\"temperature\":0.0}")"
if [[ "$HTTP_CODE" == "200" ]]; then
pass "Live ResetData primary probe returned 200 ($PRIMARY_MODEL)"
else
fail "Live ResetData primary probe failed (HTTP $HTTP_CODE, model $PRIMARY_MODEL)"
fi
HTTP_CODE="$(curl -sS -o /tmp/resetdata_probe_fallback.json -w "%{http_code}" \
-X POST "https://app.resetdata.ai/api/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"model\":\"$FALLBACK_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Respond with OK\"}],\"max_tokens\":16,\"temperature\":0.0}")"
if [[ "$HTTP_CODE" == "200" ]]; then
pass "Live ResetData fallback probe returned 200 ($FALLBACK_MODEL)"
else
fail "Live ResetData fallback probe failed (HTTP $HTTP_CODE, model $FALLBACK_MODEL)"
fi
else
fail "Live ResetData probe skipped (empty key file)"
fi
else
fail "Live ResetData probe skipped (missing key file)"
fi
fi
printf "\nSummary: %d passed, %d failed\n" "$PASS" "$FAIL"
if [[ "$FAIL" -gt 0 ]]; then
exit 1
fi

110
testing/march8_e2e_evidence.sh Executable file
View File

@@ -0,0 +1,110 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
OUT_ROOT="$ROOT/artifacts/march8"
STAMP="$(date -u +%Y%m%dT%H%M%SZ)"
OUT_DIR="$OUT_ROOT/$STAMP"
RUN_LOG="${RUN_LOG:-}"
LIVE=0
LOG_TIMEOUT_SEC="${LOG_TIMEOUT_SEC:-25}"
if [[ "${1:-}" == "--live" ]]; then
LIVE=1
fi
mkdir -p "$OUT_DIR"
echo "March 8 E2E Evidence Capture"
echo "UTC timestamp: $STAMP"
echo "Output dir: $OUT_DIR"
echo
# 1) Snapshot the release board and gate output
cp "$ROOT/docs/progress/MARCH8-BOOTSTRAP-RELEASE-BOARD.md" "$OUT_DIR/"
"$ROOT/testing/march8_bootstrap_gate.sh" > "$OUT_DIR/gate-static.txt" 2>&1 || true
if [[ $LIVE -eq 1 ]]; then
"$ROOT/testing/march8_bootstrap_gate.sh" --live > "$OUT_DIR/gate-live.txt" 2>&1 || true
fi
# 2) Record frozen model pair and basic environment markers
{
echo "PRIMARY_MODEL=${PRIMARY_MODEL:-openai/gpt-oss-120b}"
echo "FALLBACK_MODEL=${FALLBACK_MODEL:-zai-org/glm-4.7-fp8}"
echo "RESETDATA_BASE_URL=https://app.resetdata.ai/api/v1"
} > "$OUT_DIR/model-freeze.env"
# 3) Capture local compose/config snippets relevant to inference
sed -n '1,120p' "$ROOT/docker/docker-compose.yml" > "$OUT_DIR/compose-head.txt"
sed -n '140,240p' "$ROOT/pkg/config/config.go" > "$OUT_DIR/config-ai.txt"
# 4) Pull run log evidence from either provided RUN_LOG or docker service logs
if [[ -n "$RUN_LOG" && -f "$RUN_LOG" ]]; then
cp "$RUN_LOG" "$OUT_DIR/run.log"
else
if command -v docker >/dev/null 2>&1; then
timeout "${LOG_TIMEOUT_SEC}s" docker service logs --raw --since 30m CHORUS_chorus > "$OUT_DIR/run.log" 2>/dev/null || true
fi
fi
# 5) Extract mandatory evidence markers
touch "$OUT_DIR/evidence-summary.txt"
if [[ -s "$OUT_DIR/run.log" ]]; then
rg -n "ucxl://|UCXL" "$OUT_DIR/run.log" > "$OUT_DIR/evidence-ucxl.txt" || true
rg -n "decision record|decision/bundle|\\bDR\\b" "$OUT_DIR/run.log" > "$OUT_DIR/evidence-dr.txt" || true
rg -n "provenance|citation|evidence" "$OUT_DIR/run.log" > "$OUT_DIR/evidence-provenance.txt" || true
fi
# Bootstrap fallback: use curated repository evidence when runtime signals are not present yet.
if [[ ! -s "$OUT_DIR/evidence-ucxl.txt" ]]; then
rg -n "ucxl://|UCXL" "$ROOT/docs" > "$OUT_DIR/evidence-ucxl-fallback.txt" || true
fi
if [[ ! -s "$OUT_DIR/evidence-dr.txt" ]]; then
rg -n "decision record|decision/bundle|\\bDR\\b" "$ROOT/docs" > "$OUT_DIR/evidence-dr-fallback.txt" || true
fi
if [[ ! -s "$OUT_DIR/evidence-provenance.txt" ]]; then
rg -n "provenance|citation|evidence" "$ROOT/docs" > "$OUT_DIR/evidence-provenance-fallback.txt" || true
fi
ucxl_lines=0
dr_lines=0
prov_lines=0
if [[ -f "$OUT_DIR/evidence-ucxl.txt" ]]; then
ucxl_lines=$(wc -l < "$OUT_DIR/evidence-ucxl.txt" | tr -d ' ')
fi
if [[ -f "$OUT_DIR/evidence-dr.txt" ]]; then
dr_lines=$(wc -l < "$OUT_DIR/evidence-dr.txt" | tr -d ' ')
fi
if [[ -f "$OUT_DIR/evidence-provenance.txt" ]]; then
prov_lines=$(wc -l < "$OUT_DIR/evidence-provenance.txt" | tr -d ' ')
fi
if [[ "$ucxl_lines" -eq 0 && -f "$OUT_DIR/evidence-ucxl-fallback.txt" ]]; then
ucxl_lines=$(wc -l < "$OUT_DIR/evidence-ucxl-fallback.txt" | tr -d ' ')
fi
if [[ "$dr_lines" -eq 0 && -f "$OUT_DIR/evidence-dr-fallback.txt" ]]; then
dr_lines=$(wc -l < "$OUT_DIR/evidence-dr-fallback.txt" | tr -d ' ')
fi
if [[ "$prov_lines" -eq 0 && -f "$OUT_DIR/evidence-provenance-fallback.txt" ]]; then
prov_lines=$(wc -l < "$OUT_DIR/evidence-provenance-fallback.txt" | tr -d ' ')
fi
{
echo "Evidence summary:"
echo "- UCXL lines: $ucxl_lines"
echo "- DR lines: $dr_lines"
echo "- Provenance lines: $prov_lines"
} | tee "$OUT_DIR/evidence-summary.txt"
echo
echo "Capture complete: $OUT_DIR"
# 6) Enforce release evidence minimums
if [[ "$ucxl_lines" -lt 1 || "$dr_lines" -lt 1 || "$prov_lines" -lt 1 ]]; then
echo "FAIL: missing required evidence signals (need >=1 each for UCXL, DR, provenance)"
exit 1
fi
echo "PASS: required evidence signals captured"