feat(sf): /sf escalate show also distinguishes auto-accepted

Same UX refinement as e104f17ad applied to /sf escalate show <slice>/<task>.
Auto-mode resolutions now display "Auto-accepted <ts> → choice=..." instead
of the generic "Resolved <ts>". The userRationale prefix "auto-mode:"
already disambiguates the source; surfacing the verb makes the show view
match the list view's status semantics.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mikael Hugo 2026-05-02 23:16:41 +02:00
parent e104f17ad2
commit 083a7d5eb6

View file

@ -148,8 +148,10 @@ export async function handleEscalate(
}
out.push(`\nRationale for recommendation: ${art.recommendationRationale}`);
if (art.respondedAt) {
const isAutoResolved = art.userRationale?.startsWith("auto-mode:");
const verb = isAutoResolved ? "Auto-accepted" : "Resolved";
out.push(
`\nResolved ${art.respondedAt} → choice="${art.userChoice}"${art.userRationale ? ` (rationale: ${art.userRationale})` : ""}`,
`\n${verb} ${art.respondedAt} → choice="${art.userChoice}"${art.userRationale ? ` (rationale: ${art.userRationale})` : ""}`,
);
} else {
out.push(