hub v0.137.0 source + burn-down round 2 in felhom.eu: R-277 R-581 R-600 R-544 R-855 R-134 R-92 R-292 R-599 R-725 R-728 (hub), R-819 R-857 R-555 R-364 R-587 (gates/tools), R-571 R-129 R-124-runbook (docs); 28 rows closed incl. catalog + agent v0.147.0 rows, R-350 merged into R-132, R-888 opened, R-887 mechanism (249 -> 222)
gates / gates (push) Successful in 2m3s

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:
2026-10-05 19:43:37 +02:00
parent e0d884565f
commit 557629d2bf
65 changed files with 2680 additions and 122 deletions
+39
View File
@@ -118,6 +118,7 @@ def main():
print("CASE 4 ok: the tree is unchanged; the gate's verdict is the same as the baseline")
fails += waiver_cases()
fails += rebake_cases()
if fails:
print()
@@ -245,4 +246,42 @@ def waiver_cases():
return fails
# ── R-857: a golden baked TWICE under one version ───────────────────────────────────────────────
#
# 2026-10-04: 0.292.0 was re-baked into `golden-0.292.0-2026-10-04-rebake/`. The gate's regex did not
# match the suffix, so it kept reporting the FIRST bake's sha (d6cf8b33…) while the registry held the
# second. The CONSEQUENCE asserted: the newer bake's sha is the one reported.
def rebake_cases():
fails = []
OLD_SHA, NEW_SHA = "d6" * 32, "79" * 32
env, tmp = synthetic_tree(["9.9.9"], "9.9.9", None)
try:
ev = env["GOLDEN_GATE_EVIDENCE_DIR"]
shutil.rmtree(os.path.join(ev, "golden-9.9.9-2026-01-01"))
for name, sha in (("golden-9.9.9-2026-01-04", OLD_SHA), ("golden-9.9.9-2026-01-04-rebake", NEW_SHA)):
os.makedirs(os.path.join(ev, name))
with io.open(os.path.join(ev, name, "bake.log"), "w", encoding="utf-8") as fh:
fh.write("[golden] upload OK (HTTP 201)\nGOLDEN_SHA256=%s\n" % sha)
rc, out = run_gate_env(env)
if rc != 0:
fails.append("CASE 16 (R-857): the gate failed on a current golden baked twice (rc=%d)\n%s" % (rc, out[-400:]))
elif NEW_SHA[:12] not in out or OLD_SHA[:12] in out.split("newest golden baked")[-1].splitlines()[0]:
fails.append("CASE 16 (R-857): two bakes of one version — the gate did not report the RE-BAKE's sha\n%s"
% out[-400:])
else:
print("CASE 16 ok (R-857): of two bakes of one version, the re-bake's sha is the one reported")
# A later DATE of the same version beats an earlier suffixed one.
os.makedirs(os.path.join(ev, "golden-9.9.9-2026-01-05"))
with io.open(os.path.join(ev, "golden-9.9.9-2026-01-05", "bake.log"), "w", encoding="utf-8") as fh:
fh.write("GOLDEN_SHA256=%s\n" % ("ab" * 32))
rc, out = run_gate_env(env)
if ("ab" * 32)[:12] not in out:
fails.append("CASE 17 (R-857): a later-dated bake of the same version was not preferred\n%s" % out[-400:])
else:
print("CASE 17 ok (R-857): a later-dated bake of the same version wins")
finally:
shutil.rmtree(tmp, ignore_errors=True)
return fails
sys.exit(main())