R-294/R-295: orphan card stops promising restorability; one name per secret
gates / gates (push) Successful in 14s
gates / gates (push) Successful in 14s
The orphan card told a customer their set-aside off-site history may be restorable later with their recovery code. The discriminator lives on the hub and no wire field carries it, so the box rendering that card cannot evaluate the promise. Copy replaced per the spec: state what happens, decline what we cannot know and say why, name a route. The claim page called the same three-word dashboard code two different names depending on branch, one of which collides with the ten-word escrow code. Retired 'Visszaallito kod'; the name is now constant and the sentence changes. Naming only - a test pins that a reset code is still accepted. secret_in_markup_gate no longer convicts Go template comments, which are stripped before render; still convicts a real rendered secret.
This commit is contained in:
@@ -75,6 +75,14 @@ def check(path):
|
||||
src = open(path, encoding="utf-8").read()
|
||||
for m in ACTION.finditer(src):
|
||||
expr = m.group(1).strip()
|
||||
# A TEMPLATE comment `{{/* ... */}}` is stripped by html/template and never reaches the
|
||||
# response body, so it cannot leak anything into markup — unlike an HTML `<!-- -->` comment,
|
||||
# which does ship and is deliberately NOT skipped here. Without this the gate convicted the
|
||||
# prose explaining a fix, purely for containing the word "secret" (2026-08-10), which is a
|
||||
# false positive that teaches people to write worse comments or to widen the ALLOWLIST —
|
||||
# both of which cost more than the check is worth.
|
||||
if expr.startswith("/*"):
|
||||
continue
|
||||
if not SECRETY.search(expr):
|
||||
continue
|
||||
if expr in ALLOWLIST:
|
||||
|
||||
Reference in New Issue
Block a user