[Bug]: Per-Task completion time in the "tasks" panel wraps pporly#13447

openedSep 24, 2026byRRyanLatimer

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

  1. Open the app and have the agent do a task that would require using the todolist ot tasklist, I encountered this issue while using opencode as the provider.
  2. Once a task has completed and has taken over 1hr the text wraps in an ugly way
Image

Expected behavior

The time should not overflow to a new line if there is more than enough space to just expand leftward.

Actual behavior

The time wraps to a new line

Impact

Cosmetic issue

Version or commit

0.0.43-nightly.20260924.2200

Environment

Zen Browser version 1.22.1b

Logs or stack traces

shell
1

Screenshots, recordings, or supporting files

No response

Workaround

No response

Confirmed on current main. This is a layout bug in the composer task list, not an OpenCode timing bug. Any provider that emits turn.plan.updated can hit it; the elapsed time is computed in the client from plan activity timestamps.

The duration in your screenshot (1h 16m 16s) is what formatDuration returns for a step a little over an hour. That string is drawn in a fixed w-12 box (3rem, 48px at the default root font size) at 10px with no whitespace-nowrap:

https://github.com/pingdotgg/t3code/blob/main/apps/web/src/components/chat/ComposerTasksBadge.tsx#L201-L211

w-12 was set in #12165 so short labels such as 59m 59s share a right edge. Hour formatting from #9894 was already in place, and a three-part hour label does not fit that box. At Inter 10px with tabular figures, 1h 16m 16s is about 58px, so it breaks on the spaces inside the 48px span. 1h and 1h 16m still fit, which is why this only shows up on long steps. The row is items-start, so the check stays on the first line while the time wraps under it.

The row grid already allows the fix you described. The actions column is auto and the title column is minmax(0,1fr), so the time can grow left into the empty title space:

https://github.com/pingdotgg/t3code/blob/main/apps/web/src/components/chat/ComposerBanner.tsx#L190

Drop the fixed width in favor of min-w-12 shrink-0 whitespace-nowrap on that duration span. Short times stay aligned; longer ones stay on one line. Desktop uses this same web UI. Mobile does not render this column.

Already addressed by the open fix PR #13472, which has maintainer takeover and integrated before/after captures for wide and narrow web layouts. No duplicate PR created. Leaving this issue open until the fix lands.