Eval farm: batch intake -> lane drain -> results emitter #8
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Eval farm front-end (option 2): batch task intake, drain through the lane system, collect results, emit to a callback (webhook or file drop). Turns the lane machine into a paid eval/QA grind.
Depends on: issues #1-2 (billing core). Files allowed:
gitea_saas/intake_eval.py,tests/test_intake_eval.py. Do NOT modify anything else.Spec
eval_batches(id, client_id, status, callback_url, created_at),eval_tasks(id, batch_id, repo, issue_number, task_id, payload_json, status, result_json, created_at).EvalIntake(core, gitea, emitter):submit_batch(client_id, tasks: [{task_id, title, body}], callback_url=None):{ok: False, reason: "unfunded"}eval-<client_id>-<batch_id>, or reuse a sharedeval-runsrepo configSAAS_EVAL_REPO), creates one Gitea issue PER TASK witheval-tasklabel, body = task spec + acceptance +batch: <id>marker{batch_id, issues: [{task_id, issue_number}]}poll_completed(batch_id)— for each task issue, if closed (lane merged): read final comment / labels, storeresult_json(from PR/lane report), markdoneemit(batch_id)— once all tasks done: JSON report{batch_id, client_id, results: [{task_id, status, summary}]}POSTed tocallback_url(retry x3, backoff), or written toSAAS_EVAL_OUTPUT_DIR/<batch_id>.jsonwhen callback_url empty. Mark batchemitted.POST /api/eval/batches,GET /api/eval/batches/{id},POST /api/eval/batches/{id}/emit.Acceptance
Verification:
python -m pytest tests/test_intake_eval.py -qgreen.