mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
fix(errors): replace stale roboco_task_* MCP refs in error messages with gateway verbs
10 stale remediation hints across api/routes/tasks.py + exceptions.py pointed at MCP tools deleted in Phase 4 T9 (roboco_task_start, roboco_task_qa_pass, roboco_task_qa_fail, roboco_task_progress, roboco_task_unblock, roboco_task_submit_verification, roboco_task_submit_qa, roboco_task_complete, roboco_task_claim, roboco_task_activate). Each now mentions both the gateway verb (i_will_work_on, pass, fail, complete, unblock, etc.) and the panel REST equivalent. Surfaced live during NAS smoke.
This commit is contained in:
+14
-10
@@ -854,8 +854,9 @@ async def submit_for_qa(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=(
|
||||
"NOT_SELF_VERIFIED: Cannot submit for QA without a prior "
|
||||
"self-verification step. Call "
|
||||
"roboco_task_submit_verification() first, then submit_qa."
|
||||
"self-verification step. Call gateway i_am_done() "
|
||||
"(handles verification + QA submit), or for the panel "
|
||||
"POST /api/tasks/{id}/verify before /submit-qa."
|
||||
),
|
||||
)
|
||||
if not task.commits:
|
||||
@@ -864,7 +865,7 @@ async def submit_for_qa(
|
||||
detail=(
|
||||
"NO_COMMITS: Cannot submit for QA without at least one "
|
||||
"commit on this task. Use roboco_git_commit() before "
|
||||
"roboco_task_submit_qa()."
|
||||
"i_am_done() via gateway, or POST /api/tasks/{id}/submit-qa."
|
||||
),
|
||||
)
|
||||
if task.pr_number is None:
|
||||
@@ -881,8 +882,9 @@ async def submit_for_qa(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=(
|
||||
"NO_PROGRESS: Cannot submit for QA without any "
|
||||
"progress updates. Call roboco_task_progress() at least "
|
||||
"once during execution before submitting."
|
||||
"progress updates. Add progress entries via the gateway "
|
||||
"(i_have_committed auto-records) at least once during "
|
||||
"execution before submitting."
|
||||
),
|
||||
)
|
||||
|
||||
@@ -953,8 +955,9 @@ async def pass_qa(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=(
|
||||
"NO_PR_ATTACHED: Cannot pass QA without a PR on this "
|
||||
"task. Use roboco_task_qa_fail(notes='PR not created - "
|
||||
"dev must push and open PR') so the dev fixes it."
|
||||
"task. Call gateway fail(task_id, issues=['PR not created'])"
|
||||
" or POST /api/tasks/{id}/fail-qa with the same issue, "
|
||||
"so the dev fixes it."
|
||||
),
|
||||
)
|
||||
|
||||
@@ -967,8 +970,9 @@ async def pass_qa(
|
||||
detail=(
|
||||
"QA_NOTES_REQUIRED: QA pass must include notes (>=20 "
|
||||
"chars) summarizing what was verified against the "
|
||||
"acceptance criteria. Use roboco_task_qa_pass("
|
||||
"notes='...')."
|
||||
"acceptance criteria. Call gateway pass(task_id, "
|
||||
"notes='...') or POST /api/tasks/{id}/pass-qa with "
|
||||
"notes set."
|
||||
),
|
||||
)
|
||||
|
||||
@@ -1395,7 +1399,7 @@ async def escalate_task(
|
||||
|
||||
msg = (
|
||||
f"Task escalated to {outcome.target_slug} and set to BLOCKED. "
|
||||
f"PM will receive notification and must call roboco_task_unblock() "
|
||||
f"PM will receive notification and must call gateway unblock(task_id) "
|
||||
"to provide guidance or reassign."
|
||||
)
|
||||
return EscalateResponse(
|
||||
|
||||
+11
-11
@@ -218,28 +218,28 @@ class TaskLifecycleError(TaskError):
|
||||
_TRANSITION_HINTS: ClassVar[dict[tuple[str, str], str]] = {
|
||||
("claimed", "awaiting_documentation"): (
|
||||
"QA pass skipped the in_progress step. "
|
||||
"Call `roboco_task_start(task_id)` first, then "
|
||||
"`roboco_task_qa_pass(task_id, qa_notes=...)`."
|
||||
"Call gateway i_will_work_on(task_id, plan='...') first, "
|
||||
"then pass(task_id, notes=...)."
|
||||
),
|
||||
("claimed", "awaiting_pm_review"): (
|
||||
"Call `roboco_task_start(task_id)` first to move claimed → "
|
||||
"in_progress, then the handoff tool for your role."
|
||||
"Call i_will_work_on(task_id, plan='...') first to "
|
||||
"claimed → in_progress, then the handoff verb for your role."
|
||||
),
|
||||
("claimed", "completed"): (
|
||||
"Call `roboco_task_start(task_id)` before `roboco_task_complete(task_id)`."
|
||||
"Call i_will_work_on(task_id, plan='...') before complete(task_id)."
|
||||
),
|
||||
("claimed", "needs_revision"): (
|
||||
"QA fail from claimed needs the start step first. "
|
||||
"Call `roboco_task_start(task_id)` then "
|
||||
"`roboco_task_qa_fail(task_id, notes=...)`."
|
||||
"Call i_will_work_on(task_id, plan='...') then "
|
||||
"fail(task_id, issues=[...])."
|
||||
),
|
||||
("pending", "in_progress"): (
|
||||
"Pending tasks must be claimed first. "
|
||||
"Call `roboco_task_claim(task_id)` then `roboco_task_start`."
|
||||
"Pending tasks must be claimed + planned first. "
|
||||
"Call gateway i_will_work_on(task_id, plan='...')."
|
||||
),
|
||||
("backlog", "in_progress"): (
|
||||
"Activate the task first via "
|
||||
"`roboco_task_activate(task_id)`, then claim + start."
|
||||
"Activate the task first: PATCH /api/tasks/{id} "
|
||||
"(status=pending), then i_will_work_on(task_id, plan='...')."
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user