Make the task history panel readable instead of a dump of stored fields #254
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
createdentry 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_historyover MCP still returns the stable reference. - Title and description reduced to a labelled tag; the full before and after lives in its tooltip.
- A
createdentry 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.