Skip to content

ci(deploy-site): copy every top-level file the build produced, not a named list - #1228

Merged
gHashTag merged 1 commit into
mainfrom
fix/deploy-site-copies-top-level-files
Oct 1, 2026
Merged

gHashTag merged 1 commit into
mainfrom
fix/deploy-site-copies-top-level-files

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 1, 2026

Copy link
Copy Markdown
Owner

deploy-site.yml copied three named top-level files: index.html, manifest.json and cv.pdf. It copied directories generically, and its own comment explains why a named list is wrong. Every other top-level file the build produces stayed behind. Live on t27.ai at 2026-10-01 ~20:30Z, after this job deployed 082196f at 19:00Z:

The fix copies every top-level file in dist/, as the apex publisher's rsync -a dist/ ./ does. The one exception is og-image.png: the apex's build-og.py redraws it after the rsync, so the 220989 B file in dist/ is the older card. The served card is 65901 B and was last written by the publisher on 2026-09-16.

Found by a new check that compares the files t27.ai serves with the trinity commit the apex names as its source.

{
  "version": 1,
  "head_sha": "76a861eb1fa90ba8d353429873c4d9edaf558498",
  "summary": "deploy-site.yml copied only index.html, manifest.json and cv.pdf among top-level build files, so llms.txt, agents.t27 and rss.xml never reached t27.ai through it: the live llms.txt still states 1577 specs beside a manifest stating 1737, and the feed lacks the post the last deploy published. It now copies every top-level file except og-image.png, which the apex's build-og.py owns.",
  "changes": [
    ".github/workflows/deploy-site.yml: the named top-level copy (index.html, manifest.json, cv.pdf) becomes a loop over every file in apps/website/dist, skipping og-image.png with the reason in a comment"
  ],
  "tests": [
    {
      "command": "cd apps/website && npm ci && npm run build && ls dist",
      "status": "passed",
      "result": "exit 0; top-level files the loop now copies: 404.html agents.t27 apple-touch-icon.png cv.pdf favicon-16x16.png favicon-32x32.png favicon.svg index.html llms.txt manifest.json rss.xml trinity-logo-with-label.svg (og-image.png skipped)",
      "evidence": "local build on this branch, tree = main plus this workflow edit"
    },
    {
      "command": "compare https://t27.ai/<file> with git show 082196ffc:apps/website/public/<file> (the apex's named source)",
      "status": "passed",
      "result": "8 of 11 public files match; llms.txt and agents.t27 differ (22487 B served = afc9d38's bytes, 22843 B source); og-image.png differs by design (build-og.py)",
      "evidence": "sha256 comparison of served bytes against the source commit, 2026-10-01"
    },
    {
      "command": "diff of <link> entries: served /rss.xml vs dist/rss.xml",
      "status": "passed",
      "result": "dist adds exactly one entry, https://t27.ai/#/blog/the-seed-moved-it-the-pins-moved-it-more -- the post the 19:00Z deploy was for",
      "evidence": "served 54674 B, dist 55787 B"
    }
  ],
  "limitations": [
    "The live drift stays until the next deploy or publisher run; this PR changes the workflow, not the site.",
    "A future top-level file the apex rewrites after its rsync (like og-image.png) would need the same exception; the served-vs-source check will show it as a difference."
  ],
  "tags": [
    "Engineering",
    "Verification"
  ],
  "blog": {
    "title": "The directories were copied generically; the files were still a list",
    "summary": "A deploy job learned once that a named list of directories goes stale, and kept a named list of files beside it; llms.txt and the RSS feed never left the build.",
    "outline": [
      "t27.ai served an llms.txt counting 1577 specs next to a manifest counting 1737, after the commit that fixed it had been deployed.",
      "The deploy job copied every directory by loop but only three top-level files by name, so llms.txt, agents.t27 and rss.xml stayed behind.",
      "Every top-level file is now copied except og-image.png, which the apex redraws after its own rsync and which the old card must not overwrite."
    ]
  }
}

🤖 Generated with Claude Code

…named list

The list was index.html, manifest.json, cv.pdf. llms.txt, agents.t27 and
rss.xml never left trinity through this job: t27.ai served a llms.txt saying
1577 specs beside a manifest saying 1737, and a feed without the post the
19:00Z deploy was dispatched to publish. og-image.png is skipped: the apex's
build-og.py owns it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the status:in-progress 🔵 Agent working label Oct 1, 2026
@gHashTag
gHashTag merged commit bf6f558 into main Oct 1, 2026
31 of 36 checks passed
@gHashTag
gHashTag deleted the fix/deploy-site-copies-top-level-files branch October 1, 2026 20:14
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant