5 Commits

Author SHA1 Message Date
Jordan Ritter b7a4c9f714 fix(showcase): serve /api/health on webhooks service to match probe standard
The eval-webhook server only exposed /health, but the verify-deploy
probe (showcase/scripts/verify-deploy.drivers.webhooks.ts) and every
other API-shaped showcase backend (agent, eval, pocketbase) standardize
on /api/health. Add the /api/health route so the service matches the
SSOT convention the probe expects; keep /health for back-compat with
any pre-existing callers.
2026-05-30 08:48:32 -07:00
Jordan Ritter 6303cd6b88 fix(showcase): prevent eval auto-trigger by requiring confirmation click
Split GET /trigger/eval into a two-step flow: GET renders a confirmation
page with a "Run Evaluation" button, POST performs the actual dispatch.
This prevents GitHub's link unfurling bot from auto-triggering evals
when it fetches the URL from PR comments.

The POST handler polls for the Actions run URL after dispatch and opens
it in a new tab via window.open, with a fallback link if the run isn't
found within 5 seconds.
2026-04-30 15:50:57 -07:00
Jordan Ritter 3b4d1eb7c8 feat(showcase): signed trigger link for eval button in PR comments
Add GET /trigger/eval route to eval-webhook with HMAC-signed URLs.
The showcase_eval_check.yml workflow now posts a bot comment with a
clickable "Run Evaluation" link. Clicking triggers the eval and
redirects back to the PR. The link is signed so it can't be forged.
2026-04-30 13:09:02 -07:00
Jordan Ritter 3c21870876 fix(showcase): CR fixes — timingSafeEqual buffer length + Dockerfile npm lockfile
- Add buffer length check before timingSafeEqual to prevent RangeError
  on missing/malformed X-Hub-Signature-256 headers
- Switch Dockerfile from pnpm to npm with package-lock.json (pnpm
  lockfile lives at monorepo root, not in the package directory)
2026-04-30 11:18:11 -07:00
Jordan Ritter 630c741d93 feat(showcase): add eval-webhook relay service for Check Run buttons
Hono web server that receives check_run.requested_action webhooks from
GitHub, authenticates as the devops bot, updates the Check Run to
in_progress, and dispatches showcase_eval.yml via workflow_dispatch.
Includes GHCR build workflow and pnpm workspace registration.
2026-04-30 11:12:36 -07:00