Merge a new run entry into the history[] array of the manifest file at
manifestPath, creating the file if it doesn't exist.
The merge is additive: existing history entries are preserved, and the new
entry is appended. When manifestPath already has a manifest with
top-level fields (runId, date, articleType, etc.), those fields are left
untouched — only history[] is appended to and the top-level
updatedAt timestamp is refreshed.
This supports the stable same-day analysis folder layout
(analysis/daily/${DATE}/${TYPE}/) where repeated analysis runs
overwrite/upgrade artifacts but each attempt adds a history entry.
Merge a new run entry into the
history[]array of the manifest file atmanifestPath, creating the file if it doesn't exist.The merge is additive: existing history entries are preserved, and the new entry is appended. When
manifestPathalready has a manifest with top-level fields (runId, date, articleType, etc.), those fields are left untouched — onlyhistory[]is appended to and the top-levelupdatedAttimestamp is refreshed.This supports the stable same-day analysis folder layout (
analysis/daily/${DATE}/${TYPE}/) where repeated analysis runs overwrite/upgrade artifacts but each attempt adds a history entry.