Check whether the outcome improved
Define temporal outcomes
Write expected raw preservation, normalized instant, sort order, expiry decision, and display for equivalent offsets, distinct times, missing offset, reduced precision, and invalid input. State which cases are rejected or require review.
Run parser boundaries
Feed fixtures through the real client and compare serialized value, timezone assumption, normalized storage, ordering, and expiry. Confirm precision loss cannot reorder equal-boundary records. Check both a list and a state transition that uses time.
Exercise recovery and display
Repeat a changed timestamp after refresh and process restart, then compare original and normalized values. Verify visible timezone labels match the chosen meaning without altering the instant. Retain evidence for an unparseable value instead of defaulting to local time.
What to carry forward
Accept when equivalent representations produce one instant, distinct values keep intended order, expiry decisions are stable, and invalid timestamps remain visible. Keep field semantics partial if undocumented. Record fixtures, timezone assumptions, parser revision, and consumer results. Keep invalid values out of automatic expiry decisions.
Technical background: Project documentation on GitHub.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow