GitHub user mgd34msu is rebuilding GoodVibes around a shared Jev interface for interpreting requests and checking work. Its Bun and TypeScript implementation makes a concrete operational choice: recover from a failed model request while preserving a valid refusal.

Separate service failure from the answer

The judgment transport tries explicitly configured model endpoints in order.

  • Network errors, timeouts, malformed responses and provider errors can advance to a backup.
  • A valid answer ends the chain, including rejection, uncertainty or deferral. The transport never shops for a more permissive answer.
  • Each target gets a finite attempt. A token-limit refusal can trigger one additional request to that target with the complete input in long-context mode.
  • Exhausting the chain stops the operation with a typed unavailable error.

The code sets a 30-second default per-attempt timeout. This is a configured deadline, not measured model latency. The caller owns cancellation; cancelling stops the chain, while a timeout can advance to the next target.

Keep the request and the responding model identifiable

  • The transport snapshots the state and questions before trying endpoints, so fallback uses the same evidence.
  • Each backup receives its own configured model name. Results preserve the original requested model and the model that actually answered.
  • Recorded attempt history carries endpoint indexes, outcomes and validated request IDs. Provider cooldowns leave independent backups free to run immediately.
  • Host authorization checks run before attempts. The recording wrapper withholds a successful result if the decision log cannot save it.

These mechanisms give reviewers a way to distinguish a Jev answer, a backup-model answer and an unavailable decision. The repository’s tests exercise those cases with synthetic responses, including late replies after cancellation.

Validate meaning separately from response shape

The answer validator checks offered choices, probability distributions and consistency between scores and their distributions. Confidence remains a separate field. Those checks establish structural consistency, not a correct decision.

The project also implements fixture-based calibration and records which model supplied each fixture’s answer. Its README explicitly leaves live calibration, consumer migration and end-to-end product acceptance unfinished. Switching to another compatible model still needs workload-specific evaluation.

Caveat: source and test code were inspected; the project and tests were not run. No live Jev quality, speed, cost or security result was reproduced.