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
+15 -4
View File
@@ -142,8 +142,10 @@ WAIVER_MAX_DAYS = 14
# `## v0.206.0 — …` on the FIRST such line: the CHANGELOG is newest-first by convention.
RELEASED_RE = re.compile(r"^##\s+v(\d+)\.(\d+)\.(\d+)\b")
# `golden-0.205.0-2026-08-07/` — the bake-evidence directory the runbook's §4.1 produces.
EVIDENCE_RE = re.compile(r"^golden-(\d+)\.(\d+)\.(\d+)-\d{4}-\d{2}-\d{2}$")
# `golden-0.205.0-2026-08-07/` — the bake-evidence directory the runbook's §4.1 produces — and a same-version
# RE-BAKE, `golden-0.292.0-2026-10-04-rebake/` (R-857): an optional `-<suffix>` after the date. The re-bake
# directory used to be invisible to this regex, so the gate kept reporting the FIRST bake's sha.
EVIDENCE_RE = re.compile(r"^golden-(\d+)\.(\d+)\.(\d+)-(\d{4}-\d{2}-\d{2})(-[a-z0-9][a-z0-9-]*)?$")
def released_versions():
@@ -226,7 +228,12 @@ def newest_baked():
if sha is None:
rejected.append("%s (%s)" % (name, why))
continue
found.append((tuple(int(g) for g in m.groups()), "%s [sha %s…]" % (name, sha[:12])))
# Order (R-857): version, then bake date, then a suffixed re-bake after the plain bake of the same
# date (a re-bake directory is made after the first one), then the name. A tuple of the version
# alone tied two bakes of one version and picked whichever sorted first.
version = tuple(int(g) for g in m.groups()[:3])
key = (version, m.group(4), 1 if m.group(5) else 0, name)
found.append((key, "%s [sha %s…]" % (name, sha[:12])))
if rejected:
print(" NOT counted as bakes — a directory name is not a bake (R-410):")
for r in sorted(rejected):
@@ -235,7 +242,11 @@ def newest_baked():
return None, ("no golden-<VER>-<DATE>/ directory under %s holds a bake log with a "
"GOLDEN_SHA256 line" % EVIDENCE_DIR)
found.sort()
return found[-1]
key, label = found[-1]
same = [lbl for k, lbl in found if k[0] == key[0]]
if len(same) > 1:
print(" %d bakes of %s on file; the NEWEST is read: %s" % (len(same), ".".join(map(str, key[0])), label))
return key[0], label
WAIVER_KEY_RE = re.compile(r"^\s*([a-z_]+)\s*:\s*(.*?)\s*$")