fix(site): anchor the bind-mount ignores, and commit platform.json
Some checks failed
PR checks / checks (pull_request) Failing after 1m1s
Some checks failed
PR checks / checks (pull_request) Failing after 1m1s
`data/` without a leading slash matches a directory of that name at any depth, so it silently swallowed src/data/platform.json -- the single file every page and checkFacts.mjs reads. The working tree still had it, so `npm run verify` passed locally with all 14 facts green. CI cloned fresh and `astro check` failed on the missing module. Anchored both patterns to the repository root. Verified the way it should have been the first time: exported HEAD to a clean directory, npm ci, and ran the checks there rather than in the tree that was hiding the problem. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
10
.gitignore
vendored
10
.gitignore
vendored
@@ -9,8 +9,14 @@ node_modules/
|
||||
# The bind mounts (PLAN.md §6, §7). Neither belongs in the repo: `brand/` is the
|
||||
# operator's override of the stock branding, and `data/` is the beta signup store.
|
||||
# `brand-default/` IS committed — it is baked into the image and must always be complete.
|
||||
brand/
|
||||
data/
|
||||
#
|
||||
# Both patterns are anchored with a leading slash, and that is load-bearing: an
|
||||
# unanchored `data/` matches a directory of that name at ANY depth, so it silently
|
||||
# swallowed `src/data/platform.json` — the one file the whole accuracy machinery reads.
|
||||
# The working tree still had it, so every local check passed; CI, cloning fresh, failed
|
||||
# on the missing module. Anchor anything meant to match only the repository root.
|
||||
/brand/
|
||||
/data/
|
||||
|
||||
# Environment
|
||||
.env
|
||||
|
||||
60
src/data/platform.json
Normal file
60
src/data/platform.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$comment": [
|
||||
"PLAN.md §12: one file holding every externally-sourced fact. Every page reads from",
|
||||
"here, and NO version number is ever hardcoded in prose.",
|
||||
"",
|
||||
"`scripts/checkFacts.mjs` fetches the authority for each value below and fails the build",
|
||||
"on any disagreement. When the platform moves, this repo goes red so someone updates the",
|
||||
"site — that failure is the feature, exactly as in the Integration Kit's checkCoreApi.js.",
|
||||
"",
|
||||
"Do not edit a value here to make the check pass without also re-reading the page that",
|
||||
"quotes it. §1's process rule exists because a stale local `main` is what produced the",
|
||||
"wrong protocol number in the first place."
|
||||
],
|
||||
|
||||
"verifiedOn": "2026-08-19",
|
||||
|
||||
"protocol": 4,
|
||||
|
||||
"moduleApi": "1.6.0",
|
||||
|
||||
"bundle": {
|
||||
"tag": "2026.08.19",
|
||||
"sidecar": "v2.0.0",
|
||||
"overlay": "v1.0.0",
|
||||
"servuoMin": "57.4"
|
||||
},
|
||||
|
||||
"releases": {
|
||||
"link": "v2.0.0",
|
||||
"installer": "v0.1.0",
|
||||
"Module-uo": "v1.0.1",
|
||||
"Android-app": "v0.5.0"
|
||||
},
|
||||
|
||||
"$comment_website": [
|
||||
"`website` publishes no releases at all — it ships as container images and is never",
|
||||
"tagged. The site must never print a 'website version'; it refers to the platform by",
|
||||
"bundle tag and Module API version instead. checkFacts.mjs asserts the releases list is",
|
||||
"still empty, so the day that changes, this repo notices."
|
||||
],
|
||||
"websiteHasReleases": false,
|
||||
|
||||
"moduleUoCapabilities": [
|
||||
"shard",
|
||||
"atlas",
|
||||
"market",
|
||||
"governors",
|
||||
"guilds",
|
||||
"houses",
|
||||
"champs",
|
||||
"cliloc"
|
||||
],
|
||||
|
||||
"androidApplicationId": "com.runicgateway.app",
|
||||
|
||||
"gitea": {
|
||||
"base": "https://gitea.whitlocktech.com",
|
||||
"org": "RunicGateway"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user