Two copies of the same 1,545-line file — index.html (root, live) and site/index.html (stale copy). Changes to one didn't propagate to the other. This caused 3 hotfix commits trying to sync them, and left the Release Notes tab stuck at v1.3 and the Dev Artifacts tab showing only 11 of 42 artifacts.
The dual file also caused confusion about which was authoritative for Cloudflare Pages deploys, leading to the "broke everything" incident where edits landed in the wrong file.
The site/ directory was created early in the project as a deploy folder. When Cloudflare Pages was configured to serve from root (./), the root index.html became the live file — but site/index.html was never deleted. Every build command had a 50/50 chance of editing the wrong one.
Previous fixes attempted to sync the files (commits deaac86, 931da94, 3d1bd35, f667442). That approach is fundamentally broken — you can't keep two 1,545-line files in sync by hand.
| Fix | Detail |
|---|---|
Deleted site/index.html | One file, one truth. The root index.html is the single source. site/ directory removed entirely. |
Added site/ to .gitignore | Prevents the duplicate from ever being recreated. |
| Release Notes v1.4–v1.8 | Added 5 missing release entries. Tab now shows all 9 versions (v1.0–v1.8) with accurate changelogs. |
| Dev Artifacts backfilled | Added 31 missing artifacts from Apr 3–5. Tab now shows all 42 artifacts — plans, builds, tests, ships, retros, inspects, estimates. |
| Version bump to v1.9 | New version reflects the fix. |
site/index.html gone — confirmed deleted from git and filesystemsite/ in .gitignore — can never drift again./ — unaffected by this fix| File | Action |
|---|---|
site/index.html | Deleted (git rm) |
index.html | v1.8 → v1.9: added release notes v1.4–v1.8, backfilled 31 dev artifacts |
.gitignore | Added site/ |
This class of bug is permanently dead. There is one index.html. There will only ever be one index.html. The gitignore enforces it.
Deploy to Cloudflare Pages to push v1.9 live. Then Board 5 — the real app work begins.