Prowlarr evidence (R-1048) + its apps-page card; the stated app count 62 -> 63; R-1057 filed
gates / gates (push) Successful in 6m34s
gates / gates (push) Successful in 6m34s
- documentation/audits/prowlarr-2026-10-15/: bench (update test proven, C3 failed as it must, soak 7.6 %, volume-persistence CLEAN, official-image check), 9202 runs 1-3 (run 1's bump emptied the drill .felhom.yml — a test-tool bug, fixed; run 3 re-proved the step and backup -> remove -> restore with the full template), tools. - website: a Prowlarr card on both apps pages; every stated count 62 -> 63, the media group 19 -> 20; sizing.json + sizing-data.json carry Prowlarr (41/44 MB, onboarding), the sizing test and SIZING.md table moved to 63 apps. - OPEN-ITEMS: R-1057 (a restore of a removed gated app returns without the gate, even from a backup made before the setup — measured on 9202); R-1036 notes the count and that wger/plant-it are hidden/abandoned. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -92,8 +92,8 @@ class SizingWeb(unittest.TestCase):
|
||||
self.assertEqual(io.open(DATA, encoding="utf-8").read(), B.render(B.build()),
|
||||
"sizing-data.json differs from a fresh build — run scripts/build_sizing_web.py")
|
||||
|
||||
def test_offers_the_62_listed_apps_plus_builtin(self):
|
||||
self.assertEqual(len(self.all), 62)
|
||||
def test_offers_the_63_listed_apps_plus_builtin(self):
|
||||
self.assertEqual(len(self.all), 63) # 62 + Prowlarr (2026-10-15, R-1048)
|
||||
self.assertEqual([a["slug"] for a in self.d["apps"] if a.get("builtin")], ["filebrowser"])
|
||||
|
||||
def test_guest_sizes_follow_the_installer(self):
|
||||
@@ -109,7 +109,7 @@ class SizingWeb(unittest.TestCase):
|
||||
"household": (HOUSEHOLD, [N, T, W, W, W, W, W], 16, 12),
|
||||
"household without immich": ([s for s in HOUSEHOLD if s != "immich"], [T, W, W, W, W, W, W], 12, 8), # 2026-10-14 HP raise: 2,731 x 1.5 = 4,096.5 > 4,096
|
||||
"immich alone": (["immich"], [T, W, W, W, W, W, W], 12, 8),
|
||||
"all 62": (self.all, [N, N, N, N, T, W, W], 48, 32), # 24 GB: guest 19,868 < peak 22,333
|
||||
"all 63": (self.all, [N, N, N, N, T, W, W], 48, 32), # 24 GB: guest 19,868 < peak 22,377 (22,333 before Prowlarr)
|
||||
"nothing": ([], [W] * 7, 8, None),
|
||||
}
|
||||
for name, (sel, want, rec, tight) in cases.items():
|
||||
@@ -133,7 +133,7 @@ class SizingWeb(unittest.TestCase):
|
||||
|
||||
def test_segments_add_up_to_the_bar(self):
|
||||
for name, sel in {"household": HOUSEHOLD, "household without immich": [x for x in HOUSEHOLD if x != "immich"],
|
||||
"immich alone": ["immich"], "all 62": self.all, "nothing": []}.items():
|
||||
"immich alone": ["immich"], "all 63": self.all, "nothing": []}.items():
|
||||
well, segs = segments(self.d, sel)
|
||||
self.assertAlmostEqual(sum(mb for _, mb in segs), well * 1024, delta=1, msg=name)
|
||||
self.assertGreaterEqual(dict(segs)["base"], 0, name + ": base system negative")
|
||||
@@ -148,7 +148,7 @@ class SizingWeb(unittest.TestCase):
|
||||
base8 = small * 1024 - guest_mib(self.d, small)
|
||||
tiny = ["glance"] # 6 MB: its fits-well size is far below 8 GB
|
||||
self.assertLess(min_box_gb(self.d, (self.d["platform_mb"] + 7) * self.d["headroom"]), small)
|
||||
for name, sel in {"nothing": [], "tiny": tiny, "household": HOUSEHOLD, "all 62": self.all}.items():
|
||||
for name, sel in {"nothing": [], "tiny": tiny, "household": HOUSEHOLD, "all 63": self.all}.items():
|
||||
bar, segs = segments(self.d, sel)
|
||||
self.assertGreaterEqual(bar, small, name)
|
||||
self.assertAlmostEqual(sum(mb for _, mb in segs), bar * 1024, delta=1, msg=name)
|
||||
@@ -217,7 +217,7 @@ class SizingWeb(unittest.TestCase):
|
||||
elif len(cells) > 2 and not cells[0].startswith("---"):
|
||||
rows[cells[0]] = cells
|
||||
sel = {"Household set": HOUSEHOLD, "Household set without Immich": [s for s in HOUSEHOLD if s != "immich"],
|
||||
"Immich alone": ["immich"], "All 62 apps": self.all}
|
||||
"Immich alone": ["immich"], "All 63 apps": self.all}
|
||||
self.assertEqual(set(rows), set(sel))
|
||||
for name, slugs in sel.items():
|
||||
peak, verdicts = estimate(self.d, slugs)
|
||||
|
||||
Reference in New Issue
Block a user