outcome.replaceChildren(h("p",{class:"muted","data-jobs":result.data.jobs.join(" ")},`Signed and handed to the runner (job ${result.data.jobs.join(", ")}); it calls rasci.py on the host.`));
toast(`${label}: handed to the runner`,[shownArgv(argv)],true);
constpin=h("button",{type:"button",class:"btn small primary",...named("Pin","Pin: sign the priority with the passkey")},icon("bi-pin-angle-fill"),"Pin");
constestimate=h("button",{type:"button",class:"btn small primary",...named("Save estimate","Hand the estimate to the runner, signed")},icon("bi-calculator"),"Save estimate");
constdrop=own?h("button",{type:"button",class:"btn small danger",...named("Discard estimate","Discard estimate: delete your estimate, signed with the passkey"),on:{click:()=>changeTask(row,["estimate",row.task,ESTIMATOR,"--drop"],`WSJF ${row.task}`,outcome)}},icon("bi-x-circle"),"Discard estimate"):null;
h("p",{class:"muted"},"Your passkey signs exactly this call; the runner on the host checks the signature and the shape of the arguments and starts rasci.py without a shell. The agent priority stays untouched."),
onLocalhost()?null:h("p",{class:"muted"},"Signing works only under ",localLink()),
entries.length?h("ul",{class:"mini"},entries.map(([party,entry])=>h("li",{},h("div",{class:"row"},h("strong",{},party),h("span",{class:"muted"},`Business value ${entry.value} · complexity ${entry.complexity}`))))):h("p",{class:"muted"},"No estimate yet: the task ranks after the estimated ones."),
constfacts=[["Objective",row.objective],["Key Results",row.total?`${row.met} of ${row.total} met`:""],["Workdir",row.workdir],["Branch",row.branch],["Worktree",row.worktree],["Repository",row.repo]];
row.editable?priorityForm(row):h("p",{class:"muted"},row.ended?"Ended: priority and WSJF stay as they are.":"Priority and WSJF exist only for tasks of the register, not for commands, hotfixes and queue jobs."),