install_info() — installs packaged docs and examples together
(install_docs() then install_examples()) and returns their target
directories; the install helpers were refactored onto a shared, hardened
_install module that faithfully replaces the target on each run.
LogView timestamp formatting — the log's first column now renders each
line's UTC timestamp in the browser's local timezone, showing only the time
with microseconds by default; show_date=True adds the date and
show_utc_offset=True adds the local offset to UTC.
Animated HTML export froze on frame 0 — the exported animation's playback
engine referenced updateEntityMesh/removeEntityMesh without them being
exposed on the window.__tanga bridge, so playback threw ReferenceError:
updateEntityMesh is not defined on the first frame change; both names are
now exposed on the bridge (including the committed CDN bundle).
"Loop" checkbox had no effect in exported animations — the render loop
short-circuited on a baked-in loop literal (|| true / && !true), so
unchecking "Loop" never stopped playback; the loop now reads the live
animData.loop state, making the checkbox work in both directions.