or run

tessl search
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates whether the solution uses make-fetch-happen's built-in retry/backoff pipeline to implement the resilient GET helper, mapping spec options to package knobs and exposing the library's attempt metadata. Scoring emphasizes correct retry configuration, callback wiring, and reuse of the client's attempt tracking instead of custom logic.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "make-fetch-happen",
      "description": "HTTP calls are executed through make-fetch-happen (default export or fetch.defaults) instead of native fetch or other clients.",
      "max_score": 25
    },
    {
      "name": "Retry config",
      "description": "Maps options onto the package `retry` object by setting `retries` from maxAttempts, applying `factor` from backoffFactor, and deriving `minTimeout`/`maxTimeout` from initialDelayMs rather than hand-rolled retry loops.",
      "max_score": 25
    },
    {
      "name": "onRetry hook",
      "description": "Uses the make-fetch-happen `onRetry` option to forward each retry event (error or response) into the provided onAttempt callback with attempt numbering and computed delay information.",
      "max_score": 20
    },
    {
      "name": "Attempt header",
      "description": "Reads the `x-fetch-attempts` response header added by make-fetch-happen and surfaces that count in the returned attempts value.",
      "max_score": 15
    },
    {
      "name": "Retryable errors",
      "description": "Leans on the library's built-in retry handling for transient statuses and network errors (e.g., 408/420/429/5xx or ECONNRESET/ETIMEDOUT) instead of custom error classification.",
      "max_score": 15
    }
  ]
}