codai docs
Resolve

Prețuri și limite

Cotații fixe de 7 $, 19 $ sau 49 $ facturate doar la un fix verificat; trei remedieri gratuite; cum ajunge o taxă pe factura ta Stripe; plafoane per utilizator și timeout-uri.

Resolve pune preț pe rezultat, nu pe tokeni. Triajul cotează unul din trei praguri fixe; plătești acea sumă dacă — și doar dacă — job-ul se termină resolved cu o atestare. Refuzurile, eșecurile și erorile de infrastructură sunt mereu 0 $.

Praguri

PragPrețForma tipică
t77 $Bug mic, bine delimitat: un fișier, reproducere clară.
t1919 $Moderat: mai multe fișiere, are nevoie de investigație.
t4949 $Greu dar plauzibil: subtil, transversal.
free0 $Primele tale 3 remedieri verificate, indiferent de dificultate.

Fiecare câmp de bani pe fir este un întreg în micro-USD — quote_micro_usd: 19000000 înseamnă 19,00 $. Nu există nicio conversie nicăieri în pipeline.

Prețurile sunt în USD pentru că aceasta este moneda costului de model din spate. Factura ta Stripe este emisă în moneda de facturare a contului tău; Stripe convertește la momentul facturării.

Nivelul gratuit

3 remedieri verificate per utilizator, peste toate cheile tale. Este revendicat atomic când sosește un job cotabil: job-ul este creat deja accepted cu tier: "free" și quote_micro_usd: 0, iar free_tier_remaining îți spune ce rămâne după. Un job gratuit care se termină failed sau error își returnează locul. Odată consumate cele trei, job-urile cotabile revin ca quoted și așteaptă acceptul tău.

Job-urile gratuite rulează un singur candidat de fix (greedy); cele plătite se pot ramifica în până la patru — vezi Cum funcționează.

Cum ajunge o taxă pe factura ta

Întâi atestarea

Când un job se rezolvă, worker-ul scrie rândul de atestare și apoi un rând resolve_charges pentru suma cotată, cu statusul due. Ordinea este impusă în cod: fără atestare, fără rând de taxă. Job-urile gratuite primesc un rând de 0 $ cu sursa free_tier, pentru evidență.

Decontare orară

Un job programat (resolve-settle, la fiecare oră la :15) golește taxele due și le raportează fiecare către Stripe ca eveniment de contor cu identificatorul resolve_<chargeId>. Acel identificator face raportarea idempotentă — Stripe ignoră un duplicat — iar rândul trece în settled doar după ce Stripe a confirmat.

Factura ta Stripe

Evenimentele de contor ajung la clientul tău Stripe sub contorul de succese verificate și apar pe următoarea factură a planului tău. Dacă contul tău nu are încă un client Stripe (nu te-ai abonat niciodată și nu ai adăugat o metodă de plată), taxa rămâne due și se reîncearcă la rularea următoare — nu dispare și nu este facturată nimănui altcuiva.

Poți vedea costul upstream de model per job (nu ce plătești tu — ce a cheltuit Resolve) ca cost_micro_usd pe GET /v1/resolve/jobs/{id}; este suma utilizării gateway-ului sub id-urile de sesiune ale job-ului.

Limite

Toate limitele sunt per utilizator, numărate peste fiecare cheie pe care o deții.

LimităValoareCe vezi când o atingi
Trimiteri6 pe minut429 rate limited: too many resolve submissions, retry in a minute
Job-uri în zbor (accepted / running)2429 too many resolve jobs in flight, wait for one to finish
Job-uri pe zi10429 daily resolve job cap reached, retry tomorrow
Remedieri verificate gratuite3, pe viațăCotațiile revin quoted în loc de accepted
Text de issue50 000 de caractere (acțiunea trunchiază)—

Plafoanele sunt verificate înaintea triajului, așa că o trimitere respinsă nu costă nici un loc, nici un apel de triaj.

Timeout-uri

BugetValoareEfect
Job întreg30 de minuteDepășit, job-ul se termină failed (niciun fix verificat în buget) — 0 $.
O rulare în sandbox (setup + teste)15 minuteO suită lentă încheie candidatul; job-ul poate încerca următorul.
Ture de agent per candidat4Editările peste acest număr nu sunt încercate.
Candidați de fix1 (gratuit) / 4 (plătit)Primul succes verificat câștigă; restul sunt săriți.
Watchdog de orfanibuget job + 15 minuteUn job al cărui worker a murit este marcat error (watchdog: worker lost — not billed, safe to resubmit) și un loc gratuit este returnat.
Interogarea acțiunii GitHub25 de minuteAcțiunea nu mai așteaptă și comentează ultimul status; job-ul în sine continuă până la propriul buget.

Triajul rulează inline în POST-ul tău și este limitat de timeout-ul de cerere al gateway-ului; un triaj lent returnează declined cu triage unavailable, please retry în loc să blocheze.

Repository-uri suportate

  • Doar https://github.com/<owner>/<repo> publice. Repo-urile private, alte host-uri și sub-căile de monorepo sunt respinse la trimitere cu 400.
  • Python cu pytest, sau JavaScript/TypeScript cu vitest, jest sau node:test (detectat din package.json).
  • Suita repo-ului trebuie să ruleze dintr-o clonă curată plus manifestul de dependențe comis. Testele care au nevoie de secrete, servicii pornite sau pachete de sistem în afara imaginii runner-ului se termină de regulă în declined sau error.

Pe această pagină