feat(sf): /sf escalate list distinguishes auto-accepted from user-resolved
Auto-mode resolutions stamp the artifact with userRationale prefix "auto-mode: ..." (set by auto-dispatch.ts when it auto-resolves an escalation). The list view now shows "auto-accepted (accept)" for those entries vs "resolved (option-id)" for user-resolved ones, so an operator scanning `/sf escalate list --all` can tell at a glance which decisions were autonomous and which had explicit human input. The artifact JSON is unchanged — this is purely a list-formatter refinement that surfaces information already recorded. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4fb3476912
commit
e104f17ad2
1 changed files with 5 additions and 1 deletions
|
|
@ -73,12 +73,16 @@ export async function handleEscalate(
|
|||
const art = readEscalationArtifact(task.escalation_artifact_path);
|
||||
if (!art) continue;
|
||||
count++;
|
||||
const isAutoResolved =
|
||||
art.respondedAt && art.userRationale?.startsWith("auto-mode:");
|
||||
const status = task.escalation_pending === 1
|
||||
? "PENDING"
|
||||
: task.escalation_awaiting_review === 1
|
||||
? "awaiting-review"
|
||||
: art.respondedAt
|
||||
? `resolved (${art.userChoice})`
|
||||
? isAutoResolved
|
||||
? `auto-accepted (${art.userChoice})`
|
||||
: `resolved (${art.userChoice})`
|
||||
: "(unknown)";
|
||||
lines.push(` ${task.slice_id}/${task.id} [${status}]: ${art.question}`);
|
||||
if (status === "PENDING") {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue