diff --git a/.github/scripts/landing-constants-guard.sh b/.github/scripts/landing-constants-guard.sh
index 9cdb56804..7ff3b42ac 100755
--- a/.github/scripts/landing-constants-guard.sh
+++ b/.github/scripts/landing-constants-guard.sh
@@ -52,6 +52,17 @@ if [ -z "${VERSION:-}" ]; then
VERSION="$(git tag --list 'v1.0.0-rc.*' 2>/dev/null | sort -V | tail -1 | sed 's/^v//')"
fi
+# The tree's own version (engine/Cargo.toml). A release PR stamps the footers
+# with the version it is cutting BEFORE that version's tag exists, so requiring
+# tag-equality on a release branch is unsatisfiable by construction — rc.76
+# dodged it only by cutting directly on main, which skipped every release gate
+# (#474). A footer matching the version of the tree it ships in is
+# self-consistent, not drift; the stale-footer drift this check exists for is a
+# footer matching NEITHER the tag NOR the tree. The allowed set is therefore
+# {newest released tag, engine/Cargo.toml version} — which collapses to just
+# the tag on every non-release branch.
+TREE_VERSION="$(awk -F'"' '/^version = /{print $2; exit}' engine/Cargo.toml 2>/dev/null || true)"
+
fails=0
note() { printf ' %s\n' "$1"; }
fail() { printf 'FAIL %s\n' "$1"; fails=$((fails + 1)); }
@@ -114,15 +125,20 @@ rm -f /tmp/.lcg_conf.$$
# falsify a real run. Only the footer claims "this is the current release".
if [ -n "${VERSION:-}" ]; then
vre="$(echo "$VERSION" | sed 's/\./\\./g')"
+ tre="$(printf '%s' "$TREE_VERSION" | sed 's/\./\\./g')"
+ allow_ver="V${vre}([^0-9]|$)"
+ if [ -n "$tre" ] && [ "$tre" != "$vre" ]; then
+ allow_ver="V(${vre}|${tre})([^0-9]|$)"
+ fi
bad_ver="$(grep -rniE 'XERJ\.AI[^<]*V1\.0\.0-RC\.?[0-9]+' "$LANDING" --include='*.html' 2>/dev/null \
- | grep -viE "V${vre}([^0-9]|$)" \
+ | grep -viE "$allow_ver" \
| grep -v '
diff --git a/landing/blog/does-xerj-beat-jev.html b/landing/blog/does-xerj-beat-jev.html
index 8dd35feec..5b42bcb7f 100644
--- a/landing/blog/does-xerj-beat-jev.html
+++ b/landing/blog/does-xerj-beat-jev.html
@@ -763,7 +763,7 @@
Reprod
diff --git a/landing/blog/index.html b/landing/blog/index.html
index 84323a13b..248fc353d 100644
--- a/landing/blog/index.html
+++ b/landing/blog/index.html
@@ -294,7 +294,7 @@ Does XERJ beat JEV? On the bill, outright. On FiQA, no.
diff --git a/landing/docs/agents/endpoints.html b/landing/docs/agents/endpoints.html
index df6221d74..b7272b512 100644
--- a/landing/docs/agents/endpoints.html
+++ b/landing/docs/agents/endpoints.html
@@ -472,7 +472,7 @@ Data endpoints the ops build on
diff --git a/landing/docs/agents/index.html b/landing/docs/agents/index.html
index d27e73724..a1faf8847 100644
--- a/landing/docs/agents/index.html
+++ b/landing/docs/agents/index.html
@@ -322,7 +322,7 @@ What is honest to claim
diff --git a/landing/docs/agents/quickstart.html b/landing/docs/agents/quickstart.html
index f3ecbaa4c..5ddfafd53 100644
--- a/landing/docs/agents/quickstart.html
+++ b/landing/docs/agents/quickstart.html
@@ -380,7 +380,7 @@ Clean up
diff --git a/landing/docs/aggregations.html b/landing/docs/aggregations.html
index e560e2e0e..2c363c2e8 100644
--- a/landing/docs/aggregations.html
+++ b/landing/docs/aggregations.html
@@ -322,7 +322,7 @@ Request shape
@@ -380,7 +380,7 @@ Request shape
diff --git a/landing/docs/analyzers.html b/landing/docs/analyzers.html
index 179822161..6329e9b29 100644
--- a/landing/docs/analyzers.html
+++ b/landing/docs/analyzers.html
@@ -248,7 +248,7 @@ Per-field override
@@ -306,7 +306,7 @@ Per-field override
diff --git a/landing/docs/api-es-compat.html b/landing/docs/api-es-compat.html
index 4a33aa7ca..5c1cd26d9 100644
--- a/landing/docs/api-es-compat.html
+++ b/landing/docs/api-es-compat.html
@@ -351,7 +351,7 @@ Bulk indexing example
@@ -409,7 +409,7 @@ Bulk indexing example
diff --git a/landing/docs/api-native.html b/landing/docs/api-native.html
index 9f7848c11..35c93d8b1 100644
--- a/landing/docs/api-native.html
+++ b/landing/docs/api-native.html
@@ -303,7 +303,7 @@ Request body shape — /v1/indices/:name/search
@@ -361,7 +361,7 @@ Request body shape — /v1/indices/:name/search
diff --git a/landing/docs/backup-restore.html b/landing/docs/backup-restore.html
index 623d65835..73f7659fe 100644
--- a/landing/docs/backup-restore.html
+++ b/landing/docs/backup-restore.html
@@ -288,7 +288,7 @@ Clustered backup
@@ -346,7 +346,7 @@ Clustered backup
diff --git a/landing/docs/cli.html b/landing/docs/cli.html
index bd13bba74..6552abe01 100644
--- a/landing/docs/cli.html
+++ b/landing/docs/cli.html
@@ -327,7 +327,7 @@ xerj mcp
@@ -385,7 +385,7 @@ xerj mcp
diff --git a/landing/docs/clustering.html b/landing/docs/clustering.html
index 6b41c54c2..9a79edfd9 100644
--- a/landing/docs/clustering.html
+++ b/landing/docs/clustering.html
@@ -343,7 +343,7 @@ When not to cluster
@@ -401,7 +401,7 @@ When not to cluster
diff --git a/landing/docs/compression.html b/landing/docs/compression.html
index f6da7af3f..86e9c98a4 100644
--- a/landing/docs/compression.html
+++ b/landing/docs/compression.html
@@ -252,7 +252,7 @@ Column encodings
@@ -310,7 +310,7 @@ Column encodings
diff --git a/landing/docs/config.html b/landing/docs/config.html
index ddcd60814..0f4927b63 100644
--- a/landing/docs/config.html
+++ b/landing/docs/config.html
@@ -359,7 +359,7 @@ [rerank]
@@ -417,7 +417,7 @@ [rerank]
diff --git a/landing/docs/env.html b/landing/docs/env.html
index 98e340828..bcfb49e75 100644
--- a/landing/docs/env.html
+++ b/landing/docs/env.html
@@ -264,7 +264,7 @@ Rerank provider
@@ -322,7 +322,7 @@ Rerank provider
diff --git a/landing/docs/index.html b/landing/docs/index.html
index 822e00055..69cc8221e 100644
--- a/landing/docs/index.html
+++ b/landing/docs/index.html
@@ -356,7 +356,7 @@ Start here
@@ -414,7 +414,7 @@ Start here
diff --git a/landing/docs/ingest.html b/landing/docs/ingest.html
index a2108876f..ac677857e 100644
--- a/landing/docs/ingest.html
+++ b/landing/docs/ingest.html
@@ -254,7 +254,7 @@ Back-pressure
@@ -312,7 +312,7 @@ Back-pressure
diff --git a/landing/docs/install.html b/landing/docs/install.html
index e4a1eba3f..f33b39dc0 100644
--- a/landing/docs/install.html
+++ b/landing/docs/install.html
@@ -338,7 +338,7 @@ Docker
@@ -396,7 +396,7 @@ Docker
diff --git a/landing/docs/metrics.html b/landing/docs/metrics.html
index c9fffe0e7..30c932fba 100644
--- a/landing/docs/metrics.html
+++ b/landing/docs/metrics.html
@@ -267,7 +267,7 @@ Scrape config
@@ -325,7 +325,7 @@ Scrape config
diff --git a/landing/docs/migration-from-es.html b/landing/docs/migration-from-es.html
index f5157b6c6..2e95a594a 100644
--- a/landing/docs/migration-from-es.html
+++ b/landing/docs/migration-from-es.html
@@ -289,7 +289,7 @@ A 10-minute migration
@@ -347,7 +347,7 @@ A 10-minute migration
diff --git a/landing/docs/operations.html b/landing/docs/operations.html
index 66ee56cf3..e54d49701 100644
--- a/landing/docs/operations.html
+++ b/landing/docs/operations.html
@@ -328,7 +328,7 @@ File descriptors
@@ -386,7 +386,7 @@ File descriptors
diff --git a/landing/docs/playbooks/full-text.html b/landing/docs/playbooks/full-text.html
index 92f87e5bf..7d224da26 100644
--- a/landing/docs/playbooks/full-text.html
+++ b/landing/docs/playbooks/full-text.html
@@ -283,7 +283,7 @@ Filtered search with facets
@@ -341,7 +341,7 @@ Filtered search with facets
diff --git a/landing/docs/playbooks/log-analytics.html b/landing/docs/playbooks/log-analytics.html
index 7535d8a7a..15592ece6 100644
--- a/landing/docs/playbooks/log-analytics.html
+++ b/landing/docs/playbooks/log-analytics.html
@@ -291,7 +291,7 @@ Dashboard
@@ -349,7 +349,7 @@ Dashboard
diff --git a/landing/docs/playbooks/observability.html b/landing/docs/playbooks/observability.html
index b07062da0..9cc591168 100644
--- a/landing/docs/playbooks/observability.html
+++ b/landing/docs/playbooks/observability.html
@@ -289,7 +289,7 @@ Dashboards
@@ -347,7 +347,7 @@ Dashboards
diff --git a/landing/docs/playbooks/siem.html b/landing/docs/playbooks/siem.html
index 8672e2a30..89ac613de 100644
--- a/landing/docs/playbooks/siem.html
+++ b/landing/docs/playbooks/siem.html
@@ -341,7 +341,7 @@ Dashboard
@@ -399,7 +399,7 @@ Dashboard
diff --git a/landing/docs/playbooks/vector-search.html b/landing/docs/playbooks/vector-search.html
index d1d670a5a..6a911cca1 100644
--- a/landing/docs/playbooks/vector-search.html
+++ b/landing/docs/playbooks/vector-search.html
@@ -299,7 +299,7 @@ Dashboards
@@ -357,7 +357,7 @@ Dashboards
diff --git a/landing/docs/queries.html b/landing/docs/queries.html
index fc2742276..37e0ad406 100644
--- a/landing/docs/queries.html
+++ b/landing/docs/queries.html
@@ -322,7 +322,7 @@ Recognised and rejected
@@ -380,7 +380,7 @@ Recognised and rejected
diff --git a/landing/docs/quickstart.html b/landing/docs/quickstart.html
index 8b2d87fdc..da5e66311 100644
--- a/landing/docs/quickstart.html
+++ b/landing/docs/quickstart.html
@@ -284,7 +284,7 @@ 5 · Scrape metrics
@@ -342,7 +342,7 @@ 5 · Scrape metrics
diff --git a/landing/docs/recipes/agentic-memory.html b/landing/docs/recipes/agentic-memory.html
index 00c79075a..2ed87d49d 100644
--- a/landing/docs/recipes/agentic-memory.html
+++ b/landing/docs/recipes/agentic-memory.html
@@ -424,7 +424,7 @@ Notes, limits, and going to production
diff --git a/landing/docs/recipes/anomaly-detection.html b/landing/docs/recipes/anomaly-detection.html
index 427e436d3..55ae12967 100644
--- a/landing/docs/recipes/anomaly-detection.html
+++ b/landing/docs/recipes/anomaly-detection.html
@@ -443,7 +443,7 @@ Endpoint cheat-sheet
diff --git a/landing/docs/recipes/continuous-anomaly-datafeeds.html b/landing/docs/recipes/continuous-anomaly-datafeeds.html
index 257f35b0c..5093c1de8 100644
--- a/landing/docs/recipes/continuous-anomaly-datafeeds.html
+++ b/landing/docs/recipes/continuous-anomaly-datafeeds.html
@@ -457,7 +457,7 @@ Endpoint cheat-sheet
diff --git a/landing/docs/recipes/document-folder-index.html b/landing/docs/recipes/document-folder-index.html
index 7c6c350ab..8d26d8b62 100644
--- a/landing/docs/recipes/document-folder-index.html
+++ b/landing/docs/recipes/document-folder-index.html
@@ -457,7 +457,7 @@ Reproduce it yourself
@@ -515,7 +515,7 @@ Reproduce it yourself
diff --git a/landing/docs/recipes/hybrid-search.html b/landing/docs/recipes/hybrid-search.html
index 4bf1e94ae..10e6af770 100644
--- a/landing/docs/recipes/hybrid-search.html
+++ b/landing/docs/recipes/hybrid-search.html
@@ -357,7 +357,7 @@ Notes & limits
@@ -415,7 +415,7 @@ Notes & limits
diff --git a/landing/docs/recipes/index.html b/landing/docs/recipes/index.html
index df9e99911..5b3cae1e7 100644
--- a/landing/docs/recipes/index.html
+++ b/landing/docs/recipes/index.html
@@ -283,7 +283,7 @@ Recipes
@@ -341,7 +341,7 @@ Recipes
diff --git a/landing/docs/recipes/log-analytics.html b/landing/docs/recipes/log-analytics.html
index 618045b3e..2b4144709 100644
--- a/landing/docs/recipes/log-analytics.html
+++ b/landing/docs/recipes/log-analytics.html
@@ -362,7 +362,7 @@ Notes and honest limits
@@ -420,7 +420,7 @@ Notes and honest limits
diff --git a/landing/docs/recipes/migrate-from-elasticsearch.html b/landing/docs/recipes/migrate-from-elasticsearch.html
index 201b433d3..ad300f3c8 100644
--- a/landing/docs/recipes/migrate-from-elasticsearch.html
+++ b/landing/docs/recipes/migrate-from-elasticsearch.html
@@ -463,7 +463,7 @@ Benchmarks
diff --git a/landing/docs/recipes/passage-retrieval.html b/landing/docs/recipes/passage-retrieval.html
index 3cb04b620..d4d34061d 100644
--- a/landing/docs/recipes/passage-retrieval.html
+++ b/landing/docs/recipes/passage-retrieval.html
@@ -298,7 +298,7 @@ Notes and limits
@@ -356,7 +356,7 @@ Notes and limits
diff --git a/landing/docs/recipes/semantic-search-rag.html b/landing/docs/recipes/semantic-search-rag.html
index cd207baac..9c4652b0c 100644
--- a/landing/docs/recipes/semantic-search-rag.html
+++ b/landing/docs/recipes/semantic-search-rag.html
@@ -395,7 +395,7 @@ Measuring ranking quality with _rank_eval
@@ -453,7 +453,7 @@ Measuring ranking quality with _rank_eval
diff --git a/landing/docs/recipes/vector-quantization.html b/landing/docs/recipes/vector-quantization.html
index 8e5afb11c..0870a10ea 100644
--- a/landing/docs/recipes/vector-quantization.html
+++ b/landing/docs/recipes/vector-quantization.html
@@ -367,7 +367,7 @@ Notes and limits
diff --git a/landing/docs/recipes/vector-search-knn.html b/landing/docs/recipes/vector-search-knn.html
index ac7f1c727..f5c078b9e 100644
--- a/landing/docs/recipes/vector-search-knn.html
+++ b/landing/docs/recipes/vector-search-knn.html
@@ -362,7 +362,7 @@ Gotchas
@@ -420,7 +420,7 @@ Gotchas
diff --git a/landing/docs/recipes/zero-config-autoindex.html b/landing/docs/recipes/zero-config-autoindex.html
index c1f1d87ef..bf61f4e11 100644
--- a/landing/docs/recipes/zero-config-autoindex.html
+++ b/landing/docs/recipes/zero-config-autoindex.html
@@ -389,7 +389,7 @@ Honest caveats
@@ -447,7 +447,7 @@ Honest caveats
diff --git a/landing/docs/security.html b/landing/docs/security.html
index b6d03d627..8b4a9b411 100644
--- a/landing/docs/security.html
+++ b/landing/docs/security.html
@@ -254,7 +254,7 @@ Network
@@ -312,7 +312,7 @@ Network
diff --git a/landing/docs/storage.html b/landing/docs/storage.html
index ba9563ab1..dad57d2c8 100644
--- a/landing/docs/storage.html
+++ b/landing/docs/storage.html
@@ -272,7 +272,7 @@ Cluster metadata
@@ -330,7 +330,7 @@ Cluster metadata
diff --git a/landing/docs/troubleshooting.html b/landing/docs/troubleshooting.html
index 0a0b075d6..f28f2636c 100644
--- a/landing/docs/troubleshooting.html
+++ b/landing/docs/troubleshooting.html
@@ -281,7 +281,7 @@ Getting help
@@ -339,7 +339,7 @@ Getting help
diff --git a/landing/docs/upgrades.html b/landing/docs/upgrades.html
index 78cf95247..9eb68d5d9 100644
--- a/landing/docs/upgrades.html
+++ b/landing/docs/upgrades.html
@@ -297,7 +297,7 @@ Rolling back
@@ -355,7 +355,7 @@ Rolling back
diff --git a/landing/docs/vectors.html b/landing/docs/vectors.html
index 853fc39fb..a1ccbee50 100644
--- a/landing/docs/vectors.html
+++ b/landing/docs/vectors.html
@@ -300,7 +300,7 @@ Hybrid — BM25 + KNN in one planner pass
@@ -358,7 +358,7 @@ Hybrid — BM25 + KNN in one planner pass
diff --git a/landing/for-agents.html b/landing/for-agents.html
index c94f0fdaf..d6abe6f80 100644
--- a/landing/for-agents.html
+++ b/landing/for-agents.html
@@ -485,7 +485,7 @@ THE SEARCH · DATA ·MEMORY LAY
diff --git a/landing/index.html b/landing/index.html
index 499979ab6..f713e3486 100644
--- a/landing/index.html
+++ b/landing/index.html
@@ -289,7 +289,7 @@
RECIPES
DASHBOARDS
GITHUB
- ↓ v1.0.0-rc.76
+ ↓ v1.0.0-rc.77
DAY
·
@@ -702,7 +702,7 @@ THE ADVANTAGE,FEATURE BY FEATURE.