Files
Jordan Ritter c69aeca835 feat(showcase/ops): probe driver architecture + 6 drivers + 2 discovery sources + YAML configs
Split the probe system into reusable contracts so every future probe
can share one loader + invoker + discovery enumeration path:
- ProbeDriver<Input, Signal> + DiscoverySource<Output> contracts
  (src/probes/types.ts)
- ProbeConfigSchema Zod union (static targets / discovery-driven /
  single-target) + chokidar-watched probe-loader + probe-invoker with
  AbortController-based per-target timeout + bounded concurrency
  (src/probes/loader/*)
- DiscoverySource typed error classes (Auth / Backend / Transport /
  Schema) + railway-services + pnpm-packages discovery sources
  (src/probes/discovery/*)
- 6 probe drivers: smoke (paired health side-emit), aimock-wiring,
  image-drift, pin-drift, version-drift, redirect-decommission.
  e2e-smoke driver scaffolded but unregistered pending runner wiring.
  redirect-decommission ships an inlined hermetic copy of the CLI
  formatter + seo-redirects catalogue to avoid runtime dynamic imports
  (src/probes/drivers/*)
- 6 probe YAML configs: smoke.yml, aimock-wiring.yml, image-drift.yml,
  pin-drift.yml, version-drift.yml, redirect-decommission.yml.
  Orchestrator registers these at boot; YAML edits hot-reload via
  chokidar + reloads/failures emit on the event bus.

Tests: 95% line-coverage floor on drivers + discovery, fixtures for
every driver's happy + error paths.
2026-04-22 11:00:47 -07:00
..