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
+52
View File
@@ -53,6 +53,12 @@ COVERS = {
"(2026-10-03) an old-shape row under the new header, a near-miss category, an "
"old rank tag as Sev, an undefined state word, and a pipe outside backticks"),
"decoy-coverage": "a gate registered in a runner with no decoy and no exemption (its red-proof)",
"wire-contract": ("R-555: an emitted tag whose name the receiver carries ONLY in a // and a /* */ comment "
"must convict (it passed for months as `language` did); the genuine article — the same "
"name in a struct tag beside a `//` inside a string literal — must pass"),
"stands": ("R-819: a stand citing a register id that exists in NEITHER register, and a stand "
"marked 'walked' whose only source is a register row (a green dot from a label); "
"plus the genuine article — a stand citing only a CLOSED row, which must PASS"),
"site": "R-423: a NEW page under website/ that PAGES does not list (the gate used to scan 7 of 9)",
"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), "
@@ -486,6 +492,52 @@ _rsg_case("pipe-outside-backticks",
_HEALTHY.replace("**A finding.**", "**A finding.** owner: CC | operator"),
must_convict=True, expect_rule="RULE 5")
# ── wire-contract (R-555) ────────────────────────────────────────────────────────────────────────
#
# The real receiver (the hub tree) with ONE received tag taken out of its token set and put back only
# through a file that names it in prose. The gate runs end to end against the real emitters, so the
# decoy needs the controller and agent clones beside this one (CI fetches both; a missing clone is
# INCONCLUSIVE and fails this suite, never a pass). `repo_size_bytes` is `offsite.repo_size_bytes`,
# which the hub really decodes, so the genuine case passes for the right reason.
_WC = r"""
import os, sys, tempfile
sys.path.insert(0, "scripts")
import wire_contract_gate as g
T, mode = "repo_size_bytes", sys.argv[1]
tmp = tempfile.mkdtemp(prefix="r555-")
body = {"comment": "package prose\n// %s is described here, in prose only.\n/* and %s again */\n" % (T, T),
"genuine": "package prose\nvar u = \"http://x\" // not a comment start inside a string\n"
"type X struct { A int `json:\"%s\"` }\n" % T}[mode]
open(os.path.join(tmp, "prose.go"), "w").write(body)
orig, hub = g.receiver_tokens, os.path.abspath(g.REPOS["hub"])
g.receiver_tokens = lambda p: ((orig(p) - {T}) | orig(tmp)) if os.path.abspath(p) == hub else orig(p)
rc, conv = g.run(quiet=True)
print("rc=%d convicted_T=%s" % (rc, any(T in str(c) for c in conv)))
sys.exit(0 if rc == 0 else (10 if any(T in str(c) for c in conv) else 11))
"""
for _mode, _want in (("comment", 10), ("genuine", 0)):
ran += 1
_p = subprocess.run([sys.executable, "-c", _WC, _mode], cwd=ROOT, capture_output=True, text=True)
if _p.returncode != _want:
fails.append("wire-contract/%s: rc=%d, want %d (10 = the comment-only tag convicted, 0 = passed)\n%s"
% (_mode, _p.returncode, _want, (_p.stdout + _p.stderr)[-500:]))
else:
print(" ok %-20s %s" % ("wire-contract/" + _mode,
"decoy rejected" if _want else "genuine accepted"))
# ── stands (R-819) ───────────────────────────────────────────────────────────────────────────────
#
# check_stands.py was red and in no runner. Its decoys are stand files written as a session would write
# them, checked with the real registers. The genuine case is the one R-819 fixed: a citation of a row
# that CLOSED (R-273, the never-tagged agent) is a valid source, not a dangling one.
_STANDS = os.path.join(ROOT, "documentation", "architecture", "zz-r819-decoy-stands.yaml")
_stand = lambda status, ref: (u"claims:\n - id: decoy.stand\n title: \"decoy\"\n status: %s\n"
u" sources:\n - register: %s\n" % (status, ref))
decoy("stands/dangling-id", "check_stands.py", plant_file(_STANDS, _stand("built", "R-99999")), args=(_STANDS,))
decoy("stands/walked-no-walk", "check_stands.py", plant_file(_STANDS, _stand("walked", "R-273")), args=(_STANDS,))
decoy("stands/closed-row-ok", "check_stands.py", plant_file(_STANDS, _stand("built", "R-273")), args=(_STANDS,),
expect="pass")
print()
if fails:
for f in fails: