gh-pages is written by a force-push of a single commit, and read over HTTP by the same pipeline that writes it. Nothing coordinates the two, and there is no stated answer for what a reader sees mid-write.
The concrete case is the history file. Each run does this:
curl the published history.jsonl from https://translatorsri.github.io/babel-validation/data/history.jsonl;
- append one line for this run;
- force-push the whole site, including the new file, as a single commit.
Step 1 is a read of the live site, which is the source of truth precisely because step 3 replaces the branch rather than appending to it. That is a reasonable design — but it means the history is only as durable as that one fetch:
Worth deciding rather than patching around: options include keeping history.jsonl in the repository instead of only on gh-pages (making it a real append log with git history behind it), reading it from the gh-pages branch by checkout rather than over the CDN, or keeping the published file but refusing to deploy a history shorter than the one just read — a guard that turns silent truncation into a failed run.
Noticed while working on #120; not something to fold into it, since it is a design call about where the run history actually lives.
gh-pagesis written by a force-push of a single commit, and read over HTTP by the same pipeline that writes it. Nothing coordinates the two, and there is no stated answer for what a reader sees mid-write.The concrete case is the history file. Each run does this:
curlthe publishedhistory.jsonlfromhttps://translatorsri.github.io/babel-validation/data/history.jsonl;Step 1 is a read of the live site, which is the source of truth precisely because step 3 replaces the branch rather than appending to it. That is a reasonable design — but it means the history is only as durable as that one fetch:
curl -fsSLon a 404 or a network blip means the run starts from nothing, appends its own line and publishes a one-line file. Every prior run is then gone, because the branch is replaced, not amended.Worth deciding rather than patching around: options include keeping
history.jsonlin the repository instead of only ongh-pages(making it a real append log with git history behind it), reading it from thegh-pagesbranch by checkout rather than over the CDN, or keeping the published file but refusing to deploy a history shorter than the one just read — a guard that turns silent truncation into a failed run.Noticed while working on #120; not something to fold into it, since it is a design call about where the run history actually lives.