4 months ago
39957efbun test proves the lifecycle logic against a fake adapter; it does not prove github accepts our calls or that the thread ends up correct. the block→pass transition is the exact flow that broke on a real contributor's PR (dither-kit#8), so it earns a live regression guard. `bun run test:lifecycle` drives ONE PR through blocked → passed → blocked on a sacrificial repo and asserts REAL github state via `gh api`, never our DB: - trips crypto-address (a wallet address in the diff) — deterministic, and needs no `workflow` oauth scope, unlike a honeypot workflow file. - phase 1 (blocked): exactly one tripwire comment carrying the marker, reads blocked; a request-changes review exists; the tripwire check is failure on the head sha. - phase 2 (passed transition): two comments — the first struck-through, superseded, marker-less; the second the passed resolution with the marker; the review is DISMISSED; the check is success on the new sha. - phase 3 (re-block transition): three comments — the passed one now superseded, a fresh blocked comment last; a new review; check failure. extends the test:run env-routing; idempotent (wipes its prior pr/branch first); polls with a timeout and a clear "is the worker up?" message; exits non-zero on any assertion failure (artifacts left to inspect on failure, cleaned up on success). tier: §11 nightly/pre-release, NOT per-PR CI — documented in the README (needs real creds + tunnel + a non-exempt pusher). explicitly NOT automated: whether the copy reads well — a human reads the thread once, taste stays human. imports COMMENT_MARKER/CHECK_NAME from @tripwire/forge-github (added to root devDependencies) rather than hardcoding drift-prone tokens. checks: typecheck all, biome, boundaries, 229 tests (the live script is not part of bun test).
Parent896b9ae