| ... | @@ -1168,18 +1168,10 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: { | ... | @@ -1168,18 +1168,10 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: { |
| 1168 | ) : null} | 1168 | ) : null} |
| 1169 | </div> | 1169 | </div> |
| 1170 | <div className="mt-0.5 flex min-w-0 items-center gap-1.5 text-secondary-label text-xs"> | 1170 | <div className="mt-0.5 flex min-w-0 items-center gap-1.5 text-secondary-label text-xs"> |
| 1171 | {/* While working, the current plan step outranks the branch: | 1171 | {/* Always the branch. The plan step used to take this slot while |
| 1172 | it's the one line that says what the thread is doing. */} | 1172 | working, but it truncated to a half-sentence and dropped the |
| 1173 | {status === "working" && thread.planProgress ? ( | 1173 | branch, so the row lost its most stable identifier. */} |
| 1174 | <span className="min-w-0 flex-1 truncate whitespace-nowrap"> | 1174 | {thread.branch ? ( |
| 1175 | {thread.planProgress.step} | | |
| 1176 | {/* Completed count, matching the transcript chip's n/m. */} | | |
| 1177 | <span className="text-icon-muted tabular-nums"> | | |
| 1178 | {" "} | | |
| 1179 | {thread.planProgress.completedSteps}/{thread.planProgress.totalSteps} | | |
| 1180 | </span> | | |
| 1181 | </span> | | |
| 1182 | ) : thread.branch ? ( | | |
| 1183 | <span className="min-w-0 flex-1 truncate whitespace-nowrap">{thread.branch}</span> | 1175 | <span className="min-w-0 flex-1 truncate whitespace-nowrap">{thread.branch}</span> |
| 1184 | ) : ( | 1176 | ) : ( |
| 1185 | <span className="flex-1" /> | 1177 | <span className="flex-1" /> |