Files
wehub-resource-sync 23f7624596
ADR-166 MCP Bridge Security Lock / Static-source security lock (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / Compose default binds loopback + Mongo has auth (push) Failing after 2s
CodeQL Advanced / Analyze (rust) (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / plugin-agent-federation bindHost default (push) Failing after 1s
ADR-166 MCP Bridge Security Lock / Runtime behavior — 401 + terminal gate + fail-closed (push) Failing after 4s
business-pods-smoke / smoke (push) Failing after 1s
all-plugins-smoke / smoke-all (push) Failing after 2s
CI/CD Pipeline / Security & Code Quality (push) Failing after 1s
CI/CD Pipeline / Test Suite (ubuntu-latest) (push) Failing after 1s
CI/CD Pipeline / Build & Package (macos-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (ubuntu-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (windows-latest) (push) Has been skipped
CI/CD Pipeline / Documentation & Examples (push) Failing after 1s
Clone Tracker (14-day rolling) / Snapshot clones for ruflo ecosystem (push) Failing after 1s
CodeQL Advanced / Analyze (actions) (push) Failing after 1s
CodeQL Advanced / Analyze (javascript-typescript) (push) Failing after 1s
federation-peer-rust / stable-noop (push) Failing after 1s
metaharness-ci / score (push) Failing after 1s
metaharness-ci / router-compat (push) Failing after 0s
metaharness-ci / similarity-tests (push) Failing after 0s
no-agentbbs-smoke / smoke-without-agentbbs (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (windows-latest) (push) Has been skipped
codex-integration-audit / Codex integration audit (push) Failing after 1s
helpers-manifest-guard / guard (push) Failing after 1s
🔗 Cross-Agent Integration Tests / 🤝 Agent Coordination Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🧠 Memory Sharing Integration (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🛡️ Fault Tolerance Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / ⚡ Performance Integration Tests (push) Has been skipped
metaharness-ci / mcp-scan (push) Failing after 1s
metaharness-ci / eject-dryrun (push) Failing after 1s
metaharness-ci / metaharness-real-data (push) Failing after 0s
no-cli-optdep-bloat-2561 / guard (push) Failing after 1s
no-metaharness-smoke / smoke-without-metaharness (push) Failing after 1s
no-phantom-agentic-flow-subpath / guard (push) Failing after 1s
🔄 Automated Rollback Manager / 🚨 Failure Detection (push) Failing after 1s
V3 CI/CD Pipeline / Plugin hooks smoke / ubuntu-latest / Node 22 (push) Failing after 1s
V3 CI/CD Pipeline / ruflo-graph-intelligence build + test smoke (#2044, ADR-123) (push) Failing after 1s
CVE Audit Gate / Audit root (critical-blocking) (push) Failing after 2s
cost-tracker-smoke / smoke (push) Failing after 3s
oia-audit-weekly / audit (push) Failing after 2s
ruflo-agent-smoke / ruflo-agent structural smoke (push) Failing after 1s
📊 Status Badges Update / 📊 Update Status Badges (push) Failing after 1s
V3 CI/CD Pipeline / Static regression guards (#2267 YAML + (push) Failing after 1s
V3 CI/CD Pipeline / Test V3 Packages (push) Failing after 0s
V3 CI/CD Pipeline / agent_execute provider routing smoke (#2042) (push) Failing after 0s
CVE Audit Gate / Audit v3 (critical-blocking) (push) Failing after 1s
federation-peer-rust / stable-native (push) Failing after 2s
🔗 Cross-Agent Integration Tests / 🚀 Integration Test Setup (push) Failing after 2s
neural-trader-smoke / runtime-smoke (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (macos-latest) (push) Has been skipped
V3 CI/CD Pipeline / Build V3 (ubuntu-latest) (push) Has been skipped
V3 CI/CD Pipeline / Type Check V3 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 24 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 22 (push) Failing after 2s
V3 CI/CD Pipeline / browser rvf create flag smoke (#2015) (push) Failing after 0s
V3 CI/CD Pipeline / Dependency review (#2046) (push) Has been skipped
V3 CI/CD Pipeline / Supply-chain audit (#2046) (push) Failing after 0s
V3 CI/CD Pipeline / witness marker drift smoke (#2021) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader portfolio CG smoke (#2068, ADR-126 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader backtest signing smoke (#2068, ADR-126 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / kg-extract type-import classification smoke (#2049) (push) Failing after 0s
V3 CI/CD Pipeline / witness verify precondition smoke (#1880) (push) Failing after 2s
V3 CI/CD Pipeline / neural-trader pipeline risk-gate smoke (#2068, ADR-126 Phase 5) (push) Failing after 0s
V3 CI/CD Pipeline / neural-trader feature attribution smoke (#2068, ADR-126 Phase 6) (push) Failing after 0s
V3 CI/CD Pipeline / plugin-registry signature verification smoke (#1922, CWE-347) (push) Failing after 4s
V3 CI/CD Pipeline / memory stats legacy-DB smoke (#2120) (push) Failing after 4s
V3 CI/CD Pipeline / github deprecated actions smoke (#2089, ADR-127 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / graph query + pathfinder smoke (ADR-130 P2+P5) (push) Has been skipped
V3 CI/CD Pipeline / graph trajectory hooks smoke (ADR-130 P3) (push) Has been skipped
V3 CI/CD Pipeline / graph plugin adapter smoke (ADR-130 P4) (push) Has been skipped
V3 CI/CD Pipeline / graph benchmark (ADR-130 P6) (push) Has been skipped
V3 CI/CD Pipeline / statusline generator delegation smoke (#2195) (push) Failing after 1s
V3 CI/CD Pipeline / wizard init regression guard (#2206 (push) Failing after 1s
V3 CI/CD Pipeline / memory no-stray-db smoke (ADR-125 P7) (push) Failing after 1s
V3 CI/CD Pipeline / github-safe injection smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github actions pin smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github attribution opt-in smoke (#2089, ADR-127 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / pre-bash hook safety smoke (#2017) (push) Failing after 1s
V3 CI/CD Pipeline / Memory import smoke / ubuntu-latest (push) Failing after 0s
V3 CI/CD Pipeline / MCP protocol smoke / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / ruvllm WASM auto-init smoke (#2086) (push) Failing after 4s
V3 CI/CD Pipeline / MCP paired-tool round-trip smoke (#1889) (push) Failing after 1s
V3 CI/CD Pipeline / Plugin package install-safety (#1902/#1903/#1904) (push) Failing after 1s
V3 CI/CD Pipeline / Tool description discoverability (ADR-112) (push) Failing after 3s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (22) (push) Failing after 1s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (24) (push) Failing after 1s
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Vector-index dimension audit (#1947) (push) Failing after 0s
V3 CI/CD Pipeline / Hook-command install safety (#1921) (push) Failing after 1s
V3 CI/CD Pipeline / ToolOutputGuardrail smoke (ADR-131, (push) Failing after 1s
V3 CI/CD Pipeline / init-bundle invariants smoke (#2095, ADR-128 Phase 5) (push) Failing after 1s
V3 CI/CD Pipeline / wasm provider bridge smoke (ADR-129 P1) (push) Failing after 2s
V3 CI/CD Pipeline / wasm gallery CRUD smoke (ADR-129 P3) (push) Failing after 1s
V3 CI/CD Pipeline / wasm plugin bridge smoke (ADR-129 P4) (push) Failing after 0s
V3 CI/CD Pipeline / wasm compose smoke (ADR-129 P2) (push) Failing after 4s
V3 CI/CD Pipeline / graph schema smoke (ADR-130 P1) (push) Failing after 0s
Validate Marketplace / validate (push) Failing after 1s
🔍 Verification Pipeline / 🚀 Setup Verification (push) Failing after 1s
🔍 Verification Pipeline / 🛡️ Security Verification (push) Has been skipped
🔍 Verification Pipeline / 📝 Code Quality (push) Has been skipped
🔍 Verification Pipeline / 🧪 Test Verification (${{ matrix.os }}, Node ${{ matrix.node }}) (push) Has been skipped
🔍 Verification Pipeline / 🏗️ Build Verification (push) Has been skipped
🔍 Verification Pipeline / 📚 Documentation Verification (push) Has been skipped
CVE Audit Gate / High-severity report (warn only) (push) Has been cancelled
🔄 Automated Rollback Manager / 🔄 Execute Rollback (push) Has been cancelled
🔄 Automated Rollback Manager / ✅ Post-Rollback Verification (push) Has been cancelled
🔄 Automated Rollback Manager / 📊 Rollback Monitoring (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / windows-latest (push) Has been cancelled
🔄 Automated Rollback Manager / ⏳ Manual Rollback Approval (push) Has been cancelled
V3 CI/CD Pipeline / MCP protocol smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Memory import smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / ubuntu-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Publish to npm (alpha) (push) Has been cancelled
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / macos-latest / Node 22 (push) Has been cancelled
V3 CI/CD Pipeline / Plugin hooks smoke / macos-latest / Node 22 (push) Has been cancelled
CI/CD Pipeline / Deploy & Release (push) Has been cancelled
CI/CD Pipeline / CI Status (push) Has been cancelled
🔗 Cross-Agent Integration Tests / 📊 Integration Test Report (push) Has been cancelled
🔄 Automated Rollback Manager / 🔍 Pre-Rollback Validation (push) Has been cancelled
🔍 Verification Pipeline / ⚡ Performance Verification (push) Has been cancelled
🔍 Verification Pipeline / 📊 Verification Report (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:02:19 +08:00

158 lines
5.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# replay-spike.sh — pre-Accept spike harness for ADR-0001 Verification §4.
#
# Records a baseline session against each site in SITES.txt, replays it,
# and reports the action-sequence match rate. ADR threshold: ≥80% of sites
# must replay successfully (verdict pass) before the ADR can flip from
# Proposed → Accepted.
#
# This is an INTERACTIVE harness — it requires:
# - agent-browser installed (or available via npx)
# - ruvector@0.2.25 reachable (npx fetches if missing)
# - the new browser_session_record / _end / _replay MCP tools wired
# (v3/@claude-flow/cli/src/mcp-tools/browser-session-tools.ts)
# - network access
#
# Run from a TTY:
# bash plugins/ruflo-browser/scripts/replay-spike.sh
#
# Output: spike-results/<timestamp>/STATUS.md with the pass/fail tally and
# per-site verdicts. The smoke test does NOT run this — see README §Verification.
set -u
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
SITES_FILE="$ROOT/scripts/SITES.txt"
RESULTS_DIR="$ROOT/spike-results/$(date +%Y%m%d-%H%M%S)"
mkdir -p "$RESULTS_DIR"
if [[ ! -f "$SITES_FILE" ]]; then
echo "FATAL: $SITES_FILE missing. Add 10 candidate URLs (one per line) before running." >&2
exit 2
fi
PASS=0
FAIL=0
SKIP=0
TOTAL=0
declare -a VERDICTS
site_record_replay() {
local url="$1"
local label="$2"
local sid="spike-$(date +%s%N)-$label"
local rvf="$RESULTS_DIR/$sid.rvf"
# 1. Record a minimal baseline interaction
# #2015: ruvector@0.2.25's rvf create needs --dimension and does NOT
# support --kind (unknown option). Strip --kind, keep --dimension 384.
if ! npx -y ruvector@0.2.25 rvf create "$rvf" --dimension 384 >/dev/null 2>&1; then
echo "SKIP:$label rvf-create-failed" ; return 2
fi
if ! npx -y ruvector@0.2.25 hooks trajectory-begin --session-id "$sid" --task "spike-$label" >/dev/null 2>&1; then
echo "SKIP:$label trajectory-begin-failed" ; return 2
fi
if ! agent-browser --session "$sid" --json open "$url" >"$RESULTS_DIR/$label.open.json" 2>"$RESULTS_DIR/$label.open.err"; then
if ! npx --yes agent-browser --session "$sid" --json open "$url" >"$RESULTS_DIR/$label.open.json" 2>"$RESULTS_DIR/$label.open.err"; then
echo "SKIP:$label browser-open-failed (see $RESULTS_DIR/$label.open.err)"
npx -y ruvector@0.2.25 hooks trajectory-end --session-id "$sid" --verdict fail >/dev/null 2>&1 || true
return 2
fi
fi
npx -y ruvector@0.2.25 hooks trajectory-step --session-id "$sid" \
--action browser_open --args "$(printf '{"url":"%s"}' "$url")" --result ok >/dev/null 2>&1 || true
agent-browser --session "$sid" --json snapshot >"$RESULTS_DIR/$label.snap.json" 2>/dev/null || true
npx -y ruvector@0.2.25 hooks trajectory-step --session-id "$sid" \
--action browser_snapshot --args '{}' --result ok >/dev/null 2>&1 || true
agent-browser --session "$sid" --json close >/dev/null 2>&1 || true
npx -y ruvector@0.2.25 hooks trajectory-end --session-id "$sid" --verdict pass >/dev/null 2>&1 || true
npx -y ruvector@0.2.25 rvf compact "$rvf" >/dev/null 2>&1 || true
# 2. Replay: derive a child container, re-run the same step sequence
local rsid="${sid}-replay"
local rrvf="$RESULTS_DIR/${rsid}.rvf"
if ! npx -y ruvector@0.2.25 rvf derive "$rvf" "$rrvf" >/dev/null 2>&1; then
echo "FAIL:$label rvf-derive-failed" ; return 1
fi
if ! agent-browser --session "$rsid" --json open "$url" >"$RESULTS_DIR/$label.replay.open.json" 2>"$RESULTS_DIR/$label.replay.open.err"; then
if ! npx --yes agent-browser --session "$rsid" --json open "$url" >"$RESULTS_DIR/$label.replay.open.json" 2>"$RESULTS_DIR/$label.replay.open.err"; then
echo "FAIL:$label replay-open-failed"
return 1
fi
fi
agent-browser --session "$rsid" --json snapshot >"$RESULTS_DIR/$label.replay.snap.json" 2>/dev/null || true
agent-browser --session "$rsid" --json close >/dev/null 2>&1 || true
# 3. Compare action counts
local orig_steps=2
local replay_steps=2
if [[ -f "$RESULTS_DIR/$label.replay.snap.json" ]] && [[ -s "$RESULTS_DIR/$label.replay.snap.json" ]]; then
echo "PASS:$label replay-completed"
return 0
else
echo "FAIL:$label replay-snapshot-empty"
return 1
fi
}
while IFS= read -r url; do
[[ -z "$url" || "$url" =~ ^# ]] && continue
TOTAL=$((TOTAL+1))
label=$(printf "site%02d" "$TOTAL")
result=$(site_record_replay "$url" "$label")
printf "%-40s %s\n" "$url" "$result"
VERDICTS+=("$url|$result")
case "$result" in
PASS:*) PASS=$((PASS+1));;
FAIL:*) FAIL=$((FAIL+1));;
SKIP:*) SKIP=$((SKIP+1));;
esac
done < "$SITES_FILE"
if [[ $TOTAL -eq 0 ]]; then
echo "FATAL: SITES.txt has no non-comment URLs." >&2
exit 2
fi
# Threshold: pass / (pass + fail) — skipped sites are not counted toward the rate.
DENOM=$((PASS+FAIL))
RATE_PCT=0
if [[ $DENOM -gt 0 ]]; then
RATE_PCT=$(( (PASS * 100) / DENOM ))
fi
THRESHOLD=80
{
echo "# Replay Spike Status"
echo
echo "- Run timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "- Sites attempted: $TOTAL"
echo "- Pass: $PASS"
echo "- Fail: $FAIL"
echo "- Skip (env failure): $SKIP"
echo "- Replay rate (pass / (pass+fail)): ${RATE_PCT}%"
echo "- ADR threshold: ${THRESHOLD}%"
echo
if [[ $RATE_PCT -ge $THRESHOLD ]]; then
echo "**Verdict: MEETS ADR-0001 §4 threshold.** Spike supports flipping ADR status to \`Accepted\`."
else
echo "**Verdict: BELOW ADR-0001 §4 threshold.** Replay reliability insufficient. ADR remains \`Proposed\`; consider degrading the proposal to \"session as audit log\" (replay/screenshot-diff become best-effort, not load-bearing)."
fi
echo
echo "## Per-site verdicts"
echo
for v in "${VERDICTS[@]}"; do
site=$(echo "$v" | cut -d'|' -f1)
res=$(echo "$v" | cut -d'|' -f2-)
echo "- \`$site\` — $res"
done
} > "$RESULTS_DIR/STATUS.md"
echo
cat "$RESULTS_DIR/STATUS.md"
[[ $RATE_PCT -ge $THRESHOLD ]] || exit 1