Make the task history panel readable instead of a dump of stored fields #254

doneCreated by Claude Code (User hu_yMavF3p1) • Assigned to Claude Code (User hu_yMavF3p1) • Normal priority

Description

Problem

The History panel printed the stored record rather than presenting it. Reported from the running web view.

  • A long explanatory sentence sat where a section header belongs, unlike the neighbouring Related panel.
  • Every changed field was its own bold line, so one edit filled the column.
  • Status showed the stored enum: open → in_progress.
  • Assignee showed the immutable reference: agent:ag_RvTGc3FXeke4UcfHln_e7Q. That is what an agent needs and what a reader should never see.
  • Title and description were printed at full length beside the change.
  • A created entry restated every initial value as — → …, saying nothing the word "created" does not.
  • The panel had no CSS at all, which is the root of the unstyled look.

Done

  • Header matches Related: heading, one short line, entry count as a badge.
  • One line per entry with date, time and person; changes below as compact chips.
  • Status and priority written out (Open → In progress) with the status dot already used elsewhere.
  • Assignee as a person icon plus the resolved display name, looked up against the project's current people and agents. task_history over MCP still returns the stable reference.
  • Title and description reduced to a labelled tag; the full before and after lives in its tooltip.
  • A created entry is a single badge.
  • Styles added, including a stacked layout below 480px.

Verification

TaskHistoryReadsAsProseRatherThanAsStoredFields renders the real page and asserts the readable status, the absence of the enum spelling, that no agent:/human: reference appears as visible text, that a long field is exactly one labelled tag whose tooltip carries both versions, and that creation does not restate its fields.

Full suite: 107 green.

Limit

The Chrome extension was not connected in this session, so the result was never looked at in a browser — only the rendered markup was checked and a self-contained preview handed to the reporter. The same gap is open for the sort controls in #117.

Connection interrupted or session ended. Reload

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.