website: one picture viewer (assets/gallery.js) for app and dashboard pictures — declared data-gallery sets, a click on the big picture closes, JS-off still opens the file; site gate 20 + 4 decoys; demo-hp language read back (hu); R-908 (old Resend key in homelab-manifests history); 131 -> 132
gates / gates (push) Successful in 4m25s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
This commit is contained in:
2026-10-08 13:14:24 +02:00
parent 460135a15a
commit 79c53b5f1a
27 changed files with 711 additions and 734 deletions
+18 -1
View File
@@ -82,7 +82,7 @@ COVERS = {
"switch at the wrong twin, lang=\"hu\" on an English page, an app missing from one apps page, "
"ASCII-only Hungarian in English text and in a script message, a 'please', an English "
"retrieval promise the Hungarian does not make, a FAQ JSON-LD drifting from the visible "
"answer, text after </html>, and a Hungarian dashboard picture on an English page — each must convict WITH its own failure line"),
"answer, text after </html>, a Hungarian dashboard picture on an English page, and four picture-viewer faults (an opener without href, an opener to a missing file, openers with no gallery.js, the inline viewer put back) — each must convict WITH its own failure line"),
"script-tests": ("R-885: FIVE cases in scripts/test_script_tests_gate.py, run from here: a suite that PRINTS "
"OK and exits 1 (label without fact), a failing suite three levels deep (scope is a walk), "
"an empty scripts/ tree (checked nothing), the genuine article (must pass), the nested mark"),
@@ -544,6 +544,23 @@ decoy("site/leftover-text-switch", "site_gates.py",
decoy("site/dashboard-picture-wrong-language", "site_gates.py",
replace_in(_EN("index.html"), 'src="/assets/dashboard-start-en.webp"', 'src="/assets/dashboard-start-hu.webp"'),
must="en/index.html: a hu dashboard picture (/assets/dashboard-start-hu.webp) on a en page")
# the one picture viewer (2026-10-08): an opener without href, an opener to a missing file, openers with no script,
# and the old inline viewer put back
decoy("site/viewer-opener-without-href", "site_gates.py",
replace_in(_EN("apps.html"), '<a href="/assets/immich-screenshot-1.webp" data-gallery="immich" class="app-shot-link">',
'<a data-gallery="immich" class="app-shot-link">'),
must="en/apps.html: a data-gallery opener that is not an <a href=")
decoy("site/viewer-opener-missing-file", "site_gates.py",
replace_in(os.path.join(_WEB, "index.html"), '<a href="/assets/dashboard-apps-hu.webp" data-gallery="dashboard">',
'<a href="/assets/dashboard-apps-hu-old.webp" data-gallery="dashboard">'),
must="index.html: a data-gallery opener points at a missing file")
decoy("site/viewer-openers-no-script", "site_gates.py",
replace_in(_EN("technology.html"), ' <script defer src="/assets/gallery.js?v=1"></script>\n', ""),
must="en/technology.html: 2 picture opener(s) (data-gallery) but no")
decoy("site/viewer-inline-copy-back", "site_gates.py",
replace_in(os.path.join(_WEB, "alkalmazasok.html"), "</body>",
" <script>\n /**\n * Screenshot Gallery / Lightbox functionality\n */\n </script>\n</body>"),
must="alkalmazasok.html: an inline copy of the picture viewer")
decoy("site/lang-attr", "site_gates.py",
replace_in(_EN("backups.html"), '<html lang="en">', '<html lang="hu">'),
must="the English set needs lang='en'")