hub v0.119.0 — English households get English words for their codes (R-597); R-596/R-598 closed
gates / gates (push) Successful in 24s
gates / gates (push) Successful in 24s
The setup code and the owner passphrase now follow the household's language,
one word longer in English so the entropy never drops (setup 3 hu / 4 en,
passphrase 5 hu / 6 en). List and count are chosen together so a caller cannot
pair an English list with a Hungarian count. Hungarian is byte-unchanged.
Three claims in the row were wrong and are recorded as such:
- the RECOVERY CODE is minted by felhom-agent from the EFF list and has
always been English; the hub does not own it and no row was added.
- no claim mail states a word count; the only count wording was the bind
page's passphrase hint, whose English half is now count-free.
- the proposed phone-safe filter removes 68% of the list (5270 of 7772
words) and was measured, then declined, with the reason in source.
Also: guide_quote_gate binds the English volunteer guide's three quoted
messages to the controller's English bundle — nothing did, so the guide would
have gone on quoting Hungarian after the fix. Seven decoys, all convicting,
including the name-for-fact one.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -45,6 +45,12 @@ COVERS = {
|
||||
"golden-currency": "R-410: an empty directory with a perfect name, checked by what it COUNTED",
|
||||
"closed-register": "a verdict cell reading open, and a row with no state cell at all",
|
||||
"decoy-coverage": "a gate registered in a runner with no decoy and no exemption (its red-proof)",
|
||||
"guide-quote": ("R-596: SEVEN cases in scripts/test_guide_quote_gate.py, run from here so "
|
||||
"this suite stays the single entry point. The load-bearing one is "
|
||||
"name-for-fact: a guide that lists every key in a table and quotes none of "
|
||||
"their sentences. Also: a prefix of the real sentence, the OLD Hungarian "
|
||||
"quote, a reworded bundle, a deleted key, and the scope case — an absent "
|
||||
"controller clone must be INCONCLUSIVE, never a pass"),
|
||||
"hub-copy": ("R-558: an English retrieval promise in the NEW bundle (the sentences moved "
|
||||
"out of templates.go, so the surface list had to move with them), the same "
|
||||
"in Hungarian, and an INNOCENT control using the identical verbs without the "
|
||||
@@ -286,6 +292,25 @@ elif "decoy-red-proof" not in _out:
|
||||
else:
|
||||
print(" ok %-20s a new gate with no decoy is convicted BY NAME" % "decoy-coverage")
|
||||
|
||||
# ── guide-quote (R-596) ──────────────────────────────────────────────────────────────────────────
|
||||
#
|
||||
# Its decoys build whole fake workspaces (a guide plus a sibling controller clone), which does not
|
||||
# fit the plant/restore shape above — so they live in their own file and are RUN from here. The
|
||||
# decoy-coverage gate reads COVERS in this file, so this is the seam that keeps that entry honest:
|
||||
# if the separate suite stops passing, this one fails, and the COVERS line stops being a label.
|
||||
ran += 1
|
||||
_gq = subprocess.run([sys.executable, os.path.join("scripts", "test_guide_quote_gate.py")],
|
||||
cwd=ROOT, capture_output=True, text=True)
|
||||
if _gq.returncode == 2:
|
||||
fails.append("guide-quote: its decoy suite could not run (no controller clone beside this one) — "
|
||||
"INCONCLUSIVE is not coverage\n%s" % (_gq.stdout + _gq.stderr)[-500:])
|
||||
elif _gq.returncode != 0:
|
||||
fails.append("guide-quote: its decoy suite FAILED — a decoy did not convict\n%s"
|
||||
% (_gq.stdout + _gq.stderr)[-800:])
|
||||
else:
|
||||
_n = _gq.stdout.strip().splitlines()[-1] if _gq.stdout.strip() else "?"
|
||||
print(" ok %-20s %s" % ("guide-quote", _n))
|
||||
|
||||
print()
|
||||
if fails:
|
||||
for f in fails:
|
||||
|
||||
Reference in New Issue
Block a user