Website: list the machine estimator — menu, sitemap, FAQ and apps-page links; R-997 closed
gates / gates (push) Failing after 6m33s

noindex and the robots Disallow lines removed; both URLs in the sitemap with their hreflang pair; the pair
moves from UNLISTED to TWINS in site_gates.py. The explaining sentence's base figure was already the drawn
box's base; a test now pins it (red-proved).
This commit is contained in:
2026-10-13 19:26:55 +02:00
parent 750b55e90c
commit ed59bf3cbd
33 changed files with 92 additions and 17 deletions
+7
View File
@@ -1,3 +1,10 @@
## 2026-10-13 (night) — site_gates: the machine estimator moves from UNLISTED to TWINS (R-997)
- `site_gates.py`: the `gepigeny`/`en/sizing` pair is a normal twin; `UNLISTED` is empty and gate 25 stays for the next
such pair. The sitemap check now requires both URLs.
- `test_build_sizing_web.py`: `test_sentence_base_is_the_drawn_box_base` (13 tests) — the sentence's base figure is the
bar box's base (4.0 GB at 8 GB, 4.6 GB for the household preset). Red-proved: a fixed 4,708 MB base fails it.
## 2026-10-13 (evening) — power-off spike on the N100: plugswitch, wall-power figures
- New `scripts/bench/plugswitch.py` (`on`/`off`/`status`) + `test_plugswitch.py` (7 tests): `off` refuses unless 20 s of
+3 -1
View File
@@ -84,6 +84,7 @@ TWINS = {
"letoltes.html": os.path.join("en", "download.html"), # R-559 (2026-09-18) — the first twin
"teszteles.html": os.path.join("en", "testing.html"), # 2026-10-10 — the tester recruitment page
"szolgaltatasok.html": os.path.join("en", "services.html"), # 2026-10-12 — was a section of the home page
"gepigeny.html": os.path.join("en", "sizing.html"), # 2026-10-13 — the machine estimator; listed the same day (R-997)
}
URL = {"index.html": "/", "alkalmazasok.html": "/alkalmazasok", "technologiak.html": "/technologiak",
"biztonsagimentes.html": "/biztonsagimentes", "gyik.html": "/gyik", "kapcsolat.html": "/kapcsolat",
@@ -114,7 +115,8 @@ NO_TWIN = {"szolgaltatasok-nonpublic.html", "404.html", "adatkezeles.html", "fel
# English page), and gate 25 adds what unlisted means: `noindex` on both pages, a `Disallow:` line for each URL in
# robots.txt, absent from sitemap.xml, and linked from no other page. To LIST it: move the pair into TWINS, drop
# noindex and the Disallow lines, add both URLs to the sitemap and a link from the menu — in one commit.
UNLISTED = {"gepigeny.html": os.path.join("en", "sizing.html")}
# Empty since 2026-10-13: the machine estimator was listed (R-997). The machinery stays for the next such pair.
UNLISTED = {}
URL.update({"gepigeny.html": "/gepigeny", os.path.join("en", "sizing.html"): "/en/sizing"})
ALL_TWINS = dict(TWINS, **UNLISTED)
+11
View File
@@ -158,6 +158,17 @@ class SizingWeb(unittest.TestCase):
self.assertEqual(dict(segs)["base"], 4096) # 8 GB: 8,192 - guest 4,096 — not the 1,636 of a 2.3 GB box
self.assertEqual(dict(segs)["spare"], 4096 - self.d["platform_mb"])
def test_sentence_base_is_the_drawn_box_base(self):
# the explaining sentence's „kb. {base} GB a gép alaprendszeréé” is the base part of the box the BAR draws,
# from the same rule: 4.0 GB when the bar is an 8 GB box, 4.6 GB for the household preset (a 12.7 GB bar)
for name, sel, want in (("files and passwords", ["nextcloud", "vaultwarden"], "4.0"),
("household", HOUSEHOLD, "4.6")):
_, segs = segments(self.d, sel)
self.assertEqual("%.1f" % (dict(segs)["base"] / 1024), want, name)
js = io.open(JS, encoding="utf-8").read()
self.assertIn("base_mb: boxMb - guestMb", js)
self.assertIn(".replace('{base}', dec(r.base_mb / 1024))", js)
def test_grouping_keeps_a_single_leftover_named(self):
by_peak = [a["slug"] for a in sorted((a for a in self.d["apps"] if not a.get("builtin")), key=lambda a: -a["peak_mb"])]
named, grouped = legend_parts(self.d, by_peak[:9])