title: history view strips completion metadata with string replacement status: open labels: [bug] created: 2026-09-18 closed:
Rendering done.txt strips the x <date> prefix from the parsed description with:
strings.Replace(desc, "x "+parts[1], "", 1)
It assumes parts[1] is a 10-character date. That happens to work for lines dew writes itself, but any task whose description contains the literal x <date> gets silently mangled, and the completed date is re-derived from raw fields on every frame (once in the measuring loop and again in the render loop).
Fix: parse the x <date> prefix once in ParseTask (e.g. an IsDone + DoneDate field) and render from that.