@codyswann/lisa 4.10.13 → 4.10.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +4 -1
- package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +233 -60
- package/dist/codex/scripts/block-no-verify.sh +4 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +12 -9
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/block-no-verify.sh +4 -1
- package/dist/opencode/plugin-templates/parity-safety-net.sh +233 -60
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/block-no-verify.agy.sh +4 -1
- package/plugins/lisa/hooks/block-no-verify.sh +4 -1
- package/plugins/lisa/hooks/parity-safety-net.sh +233 -60
- package/plugins/lisa/rules/eager/falsifiable-checks.md +1 -0
- package/plugins/lisa/rules/reference/base-rules.md +1 -1
- package/plugins/lisa/rules/reference/falsifiable-checks.md +14 -0
- package/plugins/lisa-agy/hooks/block-no-verify.agy.sh +4 -1
- package/plugins/lisa-agy/hooks/parity-safety-net.sh +233 -60
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/block-no-verify.sh +4 -1
- package/plugins/lisa-copilot/hooks/parity-safety-net.sh +233 -60
- package/plugins/lisa-copilot/rules/eager/falsifiable-checks.md +1 -0
- package/plugins/lisa-copilot/rules/reference/base-rules.md +1 -1
- package/plugins/lisa-copilot/rules/reference/falsifiable-checks.md +14 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-no-verify.sh +4 -1
- package/plugins/lisa-cursor/hooks/parity-safety-net.sh +233 -60
- package/plugins/lisa-cursor/rules/base-rules-reference.mdc +1 -1
- package/plugins/lisa-cursor/rules/falsifiable-checks-reference.mdc +14 -0
- package/plugins/lisa-cursor/rules/falsifiable-checks.mdc +1 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/block-no-verify.agy.sh +4 -1
- package/plugins/src/base/hooks/block-no-verify.sh +4 -1
- package/plugins/src/base/hooks/parity-safety-net.sh +233 -60
- package/plugins/src/base/rules/eager/falsifiable-checks.md +1 -0
- package/plugins/src/base/rules/reference/base-rules.md +1 -1
- package/plugins/src/base/rules/reference/falsifiable-checks.md +14 -0
- package/typescript/copy-overwrite/scripts/lisa-mutation.mjs +176 -1
|
@@ -112,7 +112,10 @@ def strip_heredocs(text: str) -> str:
|
|
|
112
112
|
words = shlex.split(raw, posix=True)
|
|
113
113
|
except ValueError:
|
|
114
114
|
return None
|
|
115
|
-
|
|
115
|
+
# An explicitly quoted empty word is a valid heredoc delimiter. Bash
|
|
116
|
+
# terminates that heredoc on the next empty line, so preserve "" as a
|
|
117
|
+
# marker instead of treating it as a parse failure.
|
|
118
|
+
return words[0] if len(words) == 1 else None
|
|
116
119
|
|
|
117
120
|
index = 0
|
|
118
121
|
while index < len(lines):
|
|
@@ -130,6 +130,66 @@ EOF
|
|
|
130
130
|
exit 2
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
# grep answers three ways, not two: 0 it matched, 1 it did not match, and >=2 "I
|
|
134
|
+
# could not do this" — it was never exec'd, the pattern was rejected, the input
|
|
135
|
+
# could not be read. Every guard in this file used to reach its verdict through
|
|
136
|
+
# a bare `| grep -q` in a condition, where >=2 is indistinguishable from 1. So
|
|
137
|
+
# "the scan could not run" was read as "this command is safe", and the safety
|
|
138
|
+
# net stopped guarding without ever saying so.
|
|
139
|
+
#
|
|
140
|
+
# Measured rather than feared (CodySwannGT/lisa#3054). With a `grep` that exits
|
|
141
|
+
# 2 first on PATH, this hook ALLOWED `rm -rf /`, `git push --force origin main`,
|
|
142
|
+
# `dd of=/dev/disk0` and `git branch -D main` — every built-in guard, silently,
|
|
143
|
+
# exit 0. And the condition that gets there is live rather than theoretical: on
|
|
144
|
+
# the machine this was found on, 7,679 orphaned processes were outstanding
|
|
145
|
+
# against a `kern.maxprocperuid` of 10,666, putting a fork() that returns EAGAIN
|
|
146
|
+
# a few hundred spawns away.
|
|
147
|
+
#
|
|
148
|
+
# The reasoning is ALREADY in this file, at the bottom, for the project custom
|
|
149
|
+
# rules: a malformed ERE used to silently disable a rule the project believed it
|
|
150
|
+
# had, and that was fixed by reading grep's STATUS instead of its truthiness. It
|
|
151
|
+
# was never extended to the built-in guards. This is that extension.
|
|
152
|
+
#
|
|
153
|
+
# Fails CLOSED, which is this hook's stated contract everywhere else, and NAMES
|
|
154
|
+
# the environment failure — a guard that reports "safe" when it means "I could
|
|
155
|
+
# not tell" is the exact shape #3054 exists to remove.
|
|
156
|
+
#
|
|
157
|
+
# $1 = grep flags (-Ei / -E), $2 = text to scan, $3 = pattern.
|
|
158
|
+
scan() {
|
|
159
|
+
local flags="$1" text="$2" pattern="$3" status=0
|
|
160
|
+
printf '%s' "$text" | grep "$flags" -q -- "$pattern" || status=$?
|
|
161
|
+
case "$status" in
|
|
162
|
+
0) return 0 ;;
|
|
163
|
+
1) return 1 ;;
|
|
164
|
+
*) scan_failed "$status" ;;
|
|
165
|
+
esac
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
# Deny, and say what actually happened. Deliberately NOT block(): block() tells
|
|
169
|
+
# the reader their command matched a destructive pattern, which is a claim about
|
|
170
|
+
# the COMMAND. This is a claim about the MACHINE, and printing the first when
|
|
171
|
+
# the second is true is precisely what sends an operator to re-run instead of to
|
|
172
|
+
# look — the reporting failure #3054 is about.
|
|
173
|
+
scan_failed() {
|
|
174
|
+
cat >&2 <<EOF
|
|
175
|
+
Blocked by safety-net: a guard's pattern scan FAILED TO RUN (grep exited $1); denying fail-closed.
|
|
176
|
+
|
|
177
|
+
This is an ENVIRONMENT failure, not a property of your command. The guard could
|
|
178
|
+
not be evaluated at all, so the safety net denied rather than guessed — a scan
|
|
179
|
+
that cannot answer must never read as "safe".
|
|
180
|
+
|
|
181
|
+
The usual cause is a machine at its per-user process limit, where fork() starts
|
|
182
|
+
returning EAGAIN. Compare:
|
|
183
|
+
|
|
184
|
+
ps -u \$(id -u) | wc -l
|
|
185
|
+
sysctl -n kern.maxprocperuid # Linux: ulimit -u
|
|
186
|
+
|
|
187
|
+
Re-running is reasonable. If it repeats, the machine cannot fork and no number
|
|
188
|
+
of re-runs will change that.
|
|
189
|
+
EOF
|
|
190
|
+
exit 2
|
|
191
|
+
}
|
|
192
|
+
|
|
133
193
|
# Heredoc payloads are data only for a deliberately narrow set of GitHub CLI
|
|
134
194
|
# write commands. A companion parser proves that shape before removing payload
|
|
135
195
|
# text from the destructive-command scans below. Unknown executable heredocs
|
|
@@ -145,8 +205,8 @@ EOF
|
|
|
145
205
|
# this file, after the heredoc dispatch runs) so `git -C <path> commit` and
|
|
146
206
|
# `git -c k=v commit` spellings are still recognized.
|
|
147
207
|
block_heredoc() {
|
|
148
|
-
if
|
|
149
|
-
|
|
208
|
+
if scan -E "$command_str" \
|
|
209
|
+
'(^|[^[:alnum:]_-])git[[:space:]]+(-[^;&|[:space:]]+([[:space:]]+[^-;&|[:space:]][^;&|[:space:]]*)?[[:space:]]+)*commit([^[:alnum:]_-]|$)'; then
|
|
150
210
|
block "$1
|
|
151
211
|
Heredoc commit invocations are blocked (the payload is executable shell).
|
|
152
212
|
Fix: write the commit message to a file and run \`git commit -F <file>\`.
|
|
@@ -211,10 +271,10 @@ normalized_command_str="$(printf '%s' "$command_for_guards" \
|
|
|
211
271
|
# not whitespace to grep -E, so the anchor failed to span the break. Defined
|
|
212
272
|
# after the normalization above so the value exists when these are first called.
|
|
213
273
|
matches() {
|
|
214
|
-
|
|
274
|
+
scan -Ei "$normalized_command_str" "$1"
|
|
215
275
|
}
|
|
216
276
|
matches_cs() {
|
|
217
|
-
|
|
277
|
+
scan -E "$normalized_command_str" "$1"
|
|
218
278
|
}
|
|
219
279
|
|
|
220
280
|
# Shared ERE fragments. GIT_TOKENS walks over intermediate argv tokens without
|
|
@@ -387,7 +447,8 @@ rm_scan_scope() {
|
|
|
387
447
|
printf '%s' "$stmt"
|
|
388
448
|
return
|
|
389
449
|
fi
|
|
390
|
-
local i=0 ch q="" esc=0 outside="" cur_run=""
|
|
450
|
+
local i=0 ch q="" esc=0 outside="" cur_run="" rm_runs="" found=0
|
|
451
|
+
local run_leading=0
|
|
391
452
|
while [ "$i" -lt "$n" ]; do
|
|
392
453
|
ch="${stmt:i:1}"
|
|
393
454
|
i=$((i + 1))
|
|
@@ -402,16 +463,19 @@ rm_scan_scope() {
|
|
|
402
463
|
fi
|
|
403
464
|
if [ -n "$q" ]; then
|
|
404
465
|
if [ "$ch" = "$q" ]; then
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
466
|
+
case "$cur_run" in
|
|
467
|
+
*[Rr][Mm]*)
|
|
468
|
+
if scan -Ei "$cur_run" "$RM_CMD"'([[:space:]]|$)'; then
|
|
469
|
+
found=$((found + 1))
|
|
470
|
+
if [ -n "$rm_runs" ]; then rm_runs="$rm_runs"$'\n'; fi
|
|
471
|
+
rm_runs="$rm_runs$cur_run"
|
|
472
|
+
if scan -Ei "$cur_run" \
|
|
473
|
+
'^[[:space:]]*(\\|\$\(|`|\(|<\(|>\()*[[:space:]]*([[:alnum:]_./-]*/)?rm([[:space:]]|$)'; then
|
|
474
|
+
run_leading=1
|
|
411
475
|
fi
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
476
|
+
fi
|
|
477
|
+
;;
|
|
478
|
+
esac
|
|
415
479
|
q=""
|
|
416
480
|
cur_run=""
|
|
417
481
|
else
|
|
@@ -430,7 +494,7 @@ rm_scan_scope() {
|
|
|
430
494
|
# An unterminated quote is text the scan cannot place: treat it as unquoted so
|
|
431
495
|
# the fallback below hands back the whole statement.
|
|
432
496
|
[ -z "$q" ] || outside="$outside$cur_run"
|
|
433
|
-
if
|
|
497
|
+
if scan -Ei "$outside" "$RM_CMD"'([[:space:]]|$)'; then
|
|
434
498
|
printf '%s' "$stmt"
|
|
435
499
|
return
|
|
436
500
|
fi
|
|
@@ -438,36 +502,118 @@ rm_scan_scope() {
|
|
|
438
502
|
printf '%s' "$stmt"
|
|
439
503
|
return
|
|
440
504
|
fi
|
|
441
|
-
# `rm` first in
|
|
442
|
-
# an invocation, not prose.
|
|
443
|
-
|
|
444
|
-
|
|
505
|
+
# `rm` first in ANY run (modulo whitespace and substitution/alias openers) is
|
|
506
|
+
# an invocation, not prose. Inspect every run before deciding: returning on
|
|
507
|
+
# the first prose run used to hide a real delete in a later quoted run.
|
|
508
|
+
if [ "$run_leading" -eq 1 ]; then
|
|
445
509
|
printf '%s' "$stmt"
|
|
446
510
|
return
|
|
447
511
|
fi
|
|
448
|
-
printf '%s' "$
|
|
512
|
+
printf '%s' "$rm_runs"
|
|
449
513
|
}
|
|
450
514
|
# Look up the ONE unambiguous assignment of NAME inside the command being
|
|
451
515
|
# classified — issue #3106 arm B, the variable half.
|
|
452
516
|
#
|
|
453
|
-
# Prints the recorded right-hand side, or fails when the name is
|
|
454
|
-
#
|
|
455
|
-
#
|
|
456
|
-
#
|
|
457
|
-
#
|
|
458
|
-
#
|
|
517
|
+
# Prints the recorded right-hand side, or fails when the name is not assigned
|
|
518
|
+
# before the first rm token or is assigned more than one distinct value there.
|
|
519
|
+
# A later write cannot affect an earlier delete, and a quoted assignment-like
|
|
520
|
+
# argument can be prose, so neither is considered. Only assignments literally
|
|
521
|
+
# present in this command are ever trusted; nothing is expanded from the hook's
|
|
522
|
+
# own environment.
|
|
523
|
+
rm_assignment_stmt=""
|
|
459
524
|
rm_assignment_value() {
|
|
460
|
-
local name="$1"
|
|
525
|
+
local name="$1"
|
|
461
526
|
case "$name" in
|
|
462
527
|
"" | *[!A-Za-z0-9_]*) return 1 ;;
|
|
463
528
|
esac
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
529
|
+
# Only assignments that occur before this statement's rm token can influence
|
|
530
|
+
# its delete safely. A later assignment is too late at runtime, and an
|
|
531
|
+
# assignment whose NAME begins inside a quoted argument can be prose. The
|
|
532
|
+
# small lexer below preserves quoted right-hand sides such as V="/tmp/x"
|
|
533
|
+
# while excluding an argument such as echo "V=/tmp/x". Any ambiguity fails
|
|
534
|
+
# closed.
|
|
535
|
+
RM_ASSIGNMENT_NAME="$name" RM_ASSIGNMENT_COMMAND="$normalized_command_str" \
|
|
536
|
+
RM_ASSIGNMENT_STATEMENT="$rm_assignment_stmt" \
|
|
537
|
+
python3 - <<'PY'
|
|
538
|
+
import os
|
|
539
|
+
import re
|
|
540
|
+
import sys
|
|
541
|
+
|
|
542
|
+
name = os.environ.get("RM_ASSIGNMENT_NAME", "")
|
|
543
|
+
command = os.environ.get("RM_ASSIGNMENT_COMMAND", "")
|
|
544
|
+
statement = os.environ.get("RM_ASSIGNMENT_STATEMENT", "")
|
|
545
|
+
if not re.fullmatch(r"[A-Za-z_][A-Za-z0-9_]*", name):
|
|
546
|
+
sys.exit(1)
|
|
547
|
+
|
|
548
|
+
rm_pattern = re.compile(
|
|
549
|
+
r"(?i)(?<![A-Za-z0-9_./-])(?:[A-Za-z0-9_./-]*/)?rm(?=$|[\s;&|()'\"`])",
|
|
550
|
+
)
|
|
551
|
+
rm_token = rm_pattern.search(statement)
|
|
552
|
+
if rm_token is None or not statement or command.count(statement) != 1:
|
|
553
|
+
sys.exit(1)
|
|
554
|
+
statement_start = command.find(statement)
|
|
555
|
+
if statement_start < 0:
|
|
556
|
+
sys.exit(1)
|
|
557
|
+
prefix = command[: statement_start + rm_token.start()]
|
|
558
|
+
|
|
559
|
+
tokens = []
|
|
560
|
+
buffer = []
|
|
561
|
+
quote = None
|
|
562
|
+
escaped = False
|
|
563
|
+
started = False
|
|
564
|
+
started_unquoted = False
|
|
565
|
+
|
|
566
|
+
def flush():
|
|
567
|
+
global buffer, started, started_unquoted
|
|
568
|
+
if started:
|
|
569
|
+
tokens.append(("".join(buffer), started_unquoted))
|
|
570
|
+
buffer = []
|
|
571
|
+
started = False
|
|
572
|
+
started_unquoted = False
|
|
573
|
+
|
|
574
|
+
for char in prefix:
|
|
575
|
+
if escaped:
|
|
576
|
+
buffer.append(char)
|
|
577
|
+
escaped = False
|
|
578
|
+
continue
|
|
579
|
+
if quote is not None:
|
|
580
|
+
if char == quote:
|
|
581
|
+
quote = None
|
|
582
|
+
elif char == "\\" and quote == '"':
|
|
583
|
+
escaped = True
|
|
584
|
+
else:
|
|
585
|
+
buffer.append(char)
|
|
586
|
+
continue
|
|
587
|
+
if char in "'\"":
|
|
588
|
+
if not started:
|
|
589
|
+
started = True
|
|
590
|
+
started_unquoted = False
|
|
591
|
+
quote = char
|
|
592
|
+
elif char == "\\":
|
|
593
|
+
if not started:
|
|
594
|
+
started = True
|
|
595
|
+
started_unquoted = True
|
|
596
|
+
escaped = True
|
|
597
|
+
elif char.isspace() or char in ";&|()":
|
|
598
|
+
flush()
|
|
599
|
+
else:
|
|
600
|
+
if not started:
|
|
601
|
+
started = True
|
|
602
|
+
started_unquoted = True
|
|
603
|
+
buffer.append(char)
|
|
604
|
+
flush()
|
|
605
|
+
|
|
606
|
+
needle = f"{name}="
|
|
607
|
+
hits = [token[len(needle):] for token, outside in tokens
|
|
608
|
+
if outside and token.startswith(needle)]
|
|
609
|
+
distinct = set(hits)
|
|
610
|
+
if len(distinct) != 1:
|
|
611
|
+
sys.exit(1)
|
|
612
|
+
value = hits[0]
|
|
613
|
+
if not value:
|
|
614
|
+
sys.exit(1)
|
|
615
|
+
sys.stdout.write(value)
|
|
616
|
+
PY
|
|
471
617
|
}
|
|
472
618
|
# Rewrite a leading `$NAME` / `${NAME}` in a deletion target to the value the
|
|
473
619
|
# command itself assigns it, so the target is classified as if the agent had
|
|
@@ -573,13 +719,29 @@ classify_rm_target() {
|
|
|
573
719
|
esac
|
|
574
720
|
return 0
|
|
575
721
|
}
|
|
722
|
+
# Segmented in the PARENT shell rather than in a process substitution, and the
|
|
723
|
+
# `|| true` that used to sit on the feeder is gone. Both together were the same
|
|
724
|
+
# three-way read as a bare `grep -q` condition (see scan() above), just wearing
|
|
725
|
+
# a loop: a grep that could not run produced no lines, the body never executed,
|
|
726
|
+
# and the guard was silently skipped with the command ALLOWED. `exit` inside a
|
|
727
|
+
# process substitution cannot deny anything either — it ends that subshell, not
|
|
728
|
+
# this hook.
|
|
729
|
+
rm_segments_status=0
|
|
730
|
+
rm_segments="$(printf '%s' "$normalized_command_str" | tr '&|;' '\n' \
|
|
731
|
+
| grep -Ei -- "$RM_CMD"'([[:space:]]|$)')" || rm_segments_status=$?
|
|
732
|
+
case "$rm_segments_status" in
|
|
733
|
+
0 | 1) ;;
|
|
734
|
+
*) scan_failed "$rm_segments_status" ;;
|
|
735
|
+
esac
|
|
576
736
|
while IFS= read -r rm_stmt; do
|
|
577
|
-
|
|
578
|
-
|
|
737
|
+
# A here-string over empty input still yields one empty line.
|
|
738
|
+
[ -n "$rm_stmt" ] || continue
|
|
739
|
+
if ! scan -Ei "$rm_stmt" "$RM_RF_CLUSTER" \
|
|
740
|
+
&& ! scan -Ei "$rm_stmt" "$RM_RF_SPLIT"; then
|
|
579
741
|
continue
|
|
580
742
|
fi
|
|
581
743
|
# Guard 1: catastrophic target named in the SAME statement as the rm -rf.
|
|
582
|
-
if
|
|
744
|
+
if scan -E "$rm_stmt" "$RM_CATASTROPHIC_TARGET"; then
|
|
583
745
|
block "recursive forced delete of a root, home, or wildcard path (rm -rf)"
|
|
584
746
|
fi
|
|
585
747
|
# Physical-path comparison (pwd -P): on macOS $HOME or the cwd may arrive via
|
|
@@ -591,23 +753,25 @@ while IFS= read -r rm_stmt; do
|
|
|
591
753
|
# Scope the walk to the quoting region that actually contains the rm (#3106
|
|
592
754
|
# arm A). Unquoted and run-leading invocations get the whole statement back,
|
|
593
755
|
# so this is a no-op for every real delete.
|
|
756
|
+
rm_assignment_stmt="$rm_stmt"
|
|
594
757
|
rm_walk_text="$(rm_scan_scope "$rm_stmt")"
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
758
|
+
while IFS= read -r rm_scope; do
|
|
759
|
+
set -f
|
|
760
|
+
seen_rm=0
|
|
761
|
+
for raw_token in $rm_scope; do
|
|
762
|
+
token="$(strip_subst_wrappers "$raw_token")"
|
|
763
|
+
if [ "$seen_rm" -eq 0 ]; then
|
|
764
|
+
# Path-prefixed spellings (`/bin/rm`, `./rm`) are still rm (F2).
|
|
765
|
+
case "$token" in
|
|
766
|
+
rm | */rm) seen_rm=1 ;;
|
|
767
|
+
esac
|
|
768
|
+
continue
|
|
769
|
+
fi
|
|
770
|
+
classify_rm_target "$token"
|
|
771
|
+
done
|
|
772
|
+
set +f
|
|
773
|
+
done <<< "$rm_walk_text"
|
|
774
|
+
done <<<"$rm_segments"
|
|
611
775
|
|
|
612
776
|
# 2. Force-pushing a protected branch. `--force-with-lease` is the safe,
|
|
613
777
|
# non-clobbering alternative and is intentionally NOT blocked. Deliberate
|
|
@@ -623,16 +787,25 @@ done < <(printf '%s' "$normalized_command_str" | tr '&|;' '\n' \
|
|
|
623
787
|
# (`;`, `&&`, `||`, `|`, newlines), keep only the `git push` segments, and
|
|
624
788
|
# inspect each in isolation — a real `git push --force origin main` still
|
|
625
789
|
# matches, while a feature-branch push next to `[ -f ]`/`--base main` passes.
|
|
790
|
+
# Same reason as the rm segmentation above: a feeder that swallows grep's error
|
|
791
|
+
# skips the guard entirely and allows the command.
|
|
792
|
+
push_segments_status=0
|
|
793
|
+
push_segments="$(printf '%s' "$normalized_command_str" | tr '&|;' '\n' \
|
|
794
|
+
| grep -Ei -- "${GIT_CMD}push\b")" || push_segments_status=$?
|
|
795
|
+
case "$push_segments_status" in
|
|
796
|
+
0 | 1) ;;
|
|
797
|
+
*) scan_failed "$push_segments_status" ;;
|
|
798
|
+
esac
|
|
626
799
|
while IFS= read -r push_stmt; do
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
&&
|
|
631
|
-
|
|
800
|
+
[ -n "$push_stmt" ] || continue
|
|
801
|
+
if scan -Ei "$push_stmt" \
|
|
802
|
+
'(--force([[:space:]]|=|$)|[[:space:]]-f([[:space:]]|$))' \
|
|
803
|
+
&& ! scan -Ei "$push_stmt" '--force-with-lease' \
|
|
804
|
+
&& scan -Ei "$push_stmt" \
|
|
805
|
+
'(^|[^[:alnum:]_/-])(main|master|production|prod|release)([^[:alnum:]_/-]|$)'; then
|
|
632
806
|
block "force-pushing a protected branch (use --force-with-lease, or push a feature branch)"
|
|
633
807
|
fi
|
|
634
|
-
done
|
|
635
|
-
| grep -Ei -- "${GIT_CMD}push\b" || true)
|
|
808
|
+
done <<<"$push_segments"
|
|
636
809
|
|
|
637
810
|
# 3. `git reset --hard` / `git reset --merge` while the working tree has
|
|
638
811
|
# uncommitted changes — both silently discard them. Only blocks when the tree
|
|
@@ -44,7 +44,10 @@ def strip_heredocs(text: str) -> str:
|
|
|
44
44
|
words = shlex.split(raw, posix=True)
|
|
45
45
|
except ValueError:
|
|
46
46
|
return None
|
|
47
|
-
|
|
47
|
+
# An explicitly quoted empty word is a valid heredoc delimiter. Bash
|
|
48
|
+
# terminates that heredoc on the next empty line, so preserve "" as a
|
|
49
|
+
# marker instead of treating it as a parse failure.
|
|
50
|
+
return words[0] if len(words) == 1 else None
|
|
48
51
|
|
|
49
52
|
index = 0
|
|
50
53
|
while index < len(lines):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAiqBjC,CAAC"}
|
|
@@ -469,6 +469,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
469
469
|
"a6ed91576efebb6ba40cfa4e9d8a3e8566314909210ae8d5860be62a3feb4cff",
|
|
470
470
|
"aa95a84f9f9224914947a09b858535aa8bd052199ff64cb53768cf78fb69b687",
|
|
471
471
|
"b9f299cb9d3ad75b71296376ae2c40eb207a3b2706dafdaa41fc586050a53aad",
|
|
472
|
+
"cdf59a4423ced0c1744a9742cd20a3e59eb728972be0657acde7c4658528fbfc",
|
|
472
473
|
"d18448d642f40d46f690a7c868ed39627cb10b0fdcbd5a9505c26d05163a95d7",
|
|
473
474
|
"dd1aea1b9fdd0da023bf704b331b350bc14620f4364afa5001c6690fcbc940cc",
|
|
474
475
|
"e3407d63eae16662923d46b75b6a41e7ca7ab206b428ea2cbb0b4fee226f6516",
|
|
@@ -482,10 +483,12 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
482
483
|
"scripts/lisa-hooks/parity-safety-net.sh": Object.freeze([
|
|
483
484
|
"062c69eea85157f1e941ec3626d8912aa9f182af6ccdbe19687588a6074db5ce",
|
|
484
485
|
"07002535de10d89f6d73e8922517550a02a8974549aaf200c9c314e6f4f83c70",
|
|
486
|
+
"1026cf31eceae774ceb055f023ea0edd70d8dcca6132161a932289adea04ba7e",
|
|
485
487
|
"1162ffd16cef3b23282d2f5207abcb88429462a74a9df1035f0df4968f6dd456",
|
|
486
488
|
"14fc5e292aebf83dd24fec12fb32e2beb509a9324f127a24a64d5c5d4d05c576",
|
|
487
489
|
"1bf3512bb94923a6cb25b1e7a619a3fc8e1336bffa16f499b459aaee3eaed66d",
|
|
488
490
|
"1d4fbe135f1bb4e861d286a6512ed201d4522250dfe3f9eba6584bc5ff166a95",
|
|
491
|
+
"2b1ca7d317dea3af106df1a74b1718e3df9c18e76e9d9d769aa3271b7abf8a3f",
|
|
489
492
|
"388cf8847581d96a1ff8ea98290a33a5f96d67cdd502ea807a0b8d88efe90e19",
|
|
490
493
|
"64546813f168fb446f39e34bc674fd3af85b15bd5e7f4f6bf4503463e701a7b9",
|
|
491
494
|
"772202ddd42d626625ff719666afbbe83445d8bae1bc7c0fb5ffdcb402be83f8",
|
|
@@ -494,6 +497,8 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
494
497
|
"9404c374cbd90a0860410080f1044d087c51d84bb4c0a37343c2b632c3a9d03b",
|
|
495
498
|
"a22fd1b7c483f1a538202353ee85c82be17a8910e03c0a930635ce8cb3595c64",
|
|
496
499
|
"b83c5043a0f29b2d8851258acfe6906aab7922cd80f486e25220e55f26a8c0a5",
|
|
500
|
+
"baf3c78b7c333735142cc1a7bc19369f953a4699f7be517bb4e3c12167d5c60b",
|
|
501
|
+
"c4a51de3f1512e7e18935612137e4ddaf548db68f878d8239fcc85436b0f27c7",
|
|
497
502
|
"c57b70eed03b74e7c8335c40b0c2b1102e217e507337b71fcf3d2bec5a450bf8",
|
|
498
503
|
"caea02a07027fc1c74d47e08b36299d369c5c9f7c4043da8828fbca3c64eb2aa",
|
|
499
504
|
"d12583803e8ff5e4b64e68eafc8d3c377af4c400d8b7ecd1c7fe699d8f92784a",
|
|
@@ -513,7 +518,9 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
513
518
|
"ce4bc224a102e3ac2bc29d8f2038eefd619129d4639c25954c93f05011f7f977",
|
|
514
519
|
]),
|
|
515
520
|
"scripts/lisa-mutation.mjs": Object.freeze([
|
|
521
|
+
"03dda43b5813b5b6a083c1e0302ce3e9fec13818864ed38dce180cbdaa4e2de2",
|
|
516
522
|
"0cd013a51a81d8eeebced9f2646bdb3fe0a9247fcd74b57c03e95cc2db3fe7de",
|
|
523
|
+
"11bc91eb0ab1f669fc6531201f16747dc8b5bfcebb1650ad8c29038e9ec8f89e",
|
|
517
524
|
"20bc2e58a54d7ef3c99b91393b85aa2f59d42984cbcbdb0a710b2c8d12d46b39",
|
|
518
525
|
"227dfa273802d6a5c03c3bf67136b743de98370127c7417db454f2e7424e98a0",
|
|
519
526
|
"48394f771485db4b7863d2307f9ca0750cba4ce3750c615dd3c54fa47178a50e",
|
|
@@ -522,6 +529,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
522
529
|
"52b9837102608b86635d11832274fd582091032db5f2692f1c2b4065c515c20d",
|
|
523
530
|
"587ab62a419ca6f104f5b82a3bd89c11f04600faec1824876ba536699ad59f7e",
|
|
524
531
|
"660d0b833ac5ffcb93cb3c478b6b840492a0ae049ff3b6f87275f78537ef7258",
|
|
532
|
+
"6e41817a015d5360336ca4e078fa1c787d9976b762e8d9a07d62c41a2fb52f25",
|
|
525
533
|
"7d8d24dea151ef2178807046e97aea7ebfadd9c88eb50347feb7bb4bb190227d",
|
|
526
534
|
"7ea75f5ff66b71ec551b7116ef855ac1d1c48a3ce3d7b51b3aea893a017dcd0c",
|
|
527
535
|
"86fd0c6f6b8106a10af937bfbce94927603ffa8adcb188e350a659c96e3fc502",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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EAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAk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"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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EAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAk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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAw5EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAw5EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAipPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -19,9 +19,9 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
19
19
|
"all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "2e030d5a394d3edb48c391db49661fb3d45545c85f88ea03d1ab07ad3787c089",
|
|
20
20
|
"all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
|
|
21
21
|
"all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "d3ef2562b718156912f0877f8a0668026f5966fcca43eb9e064aa57a4e9a4976",
|
|
22
|
-
"all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "
|
|
22
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "cdf59a4423ced0c1744a9742cd20a3e59eb728972be0657acde7c4658528fbfc",
|
|
23
23
|
"all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh": "234cb82cc9033bd04940a553d4ddc95b078e585e41777d6529d887676edc40b1",
|
|
24
|
-
"all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "
|
|
24
|
+
"all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "baf3c78b7c333735142cc1a7bc19369f953a4699f7be517bb4e3c12167d5c60b",
|
|
25
25
|
"all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh": "f21cdcb54b353714a92c2d1e25fd6b76318e8e8d7cb90cdb016f174923c532ef",
|
|
26
26
|
"all/copy-overwrite/scripts/lisa-lint-staged-preflight.mjs": "ce4bc224a102e3ac2bc29d8f2038eefd619129d4639c25954c93f05011f7f977",
|
|
27
27
|
"all/copy-overwrite/scripts/lisa-postinstall.mjs": "d22fe47acf9a68828ca28b19b88e269bf535e77bc38952dec9f7a703269f1c44",
|
|
@@ -350,8 +350,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
350
350
|
"plugins/src/base/hooks/block-instruction-file-edits.agy.sh": "aa249cae53caeb3e0fb6d6af114e2756084f45a2896332fb063a9f20e4902125",
|
|
351
351
|
"plugins/src/base/hooks/block-instruction-file-edits.sh": "d47314b66d6ce85f77d6e058f861eede4462b2b0a33d54e82ff1c931167ec3f7",
|
|
352
352
|
"plugins/src/base/hooks/block-managed-file-edits.sh": "9b566bd1ff465147955300ce66b75c866db461a04dc67866c22bb928c757a616",
|
|
353
|
-
"plugins/src/base/hooks/block-no-verify.agy.sh": "
|
|
354
|
-
"plugins/src/base/hooks/block-no-verify.sh": "
|
|
353
|
+
"plugins/src/base/hooks/block-no-verify.agy.sh": "c328ee87bae9a5bb99baf8be59c29b79fbaa64089033ce19b9aff2745a669f05",
|
|
354
|
+
"plugins/src/base/hooks/block-no-verify.sh": "c352ba8b4467d839f3388d92b4609c603a9b4f2a61f6a8d2687015ed1ec060cb",
|
|
355
355
|
"plugins/src/base/hooks/block-shell-json-parsing.agy.sh": "dc688efe382e7b8fe6f6c88bb0fde851527128cae778599559f23a93f1c9ec86",
|
|
356
356
|
"plugins/src/base/hooks/block-shell-json-parsing.sh": "90601e31603c440d8f19d213d63bfef8d18596c60f88cb6e28c93d12453c5c0c",
|
|
357
357
|
"plugins/src/base/hooks/cleanup-stale-worktrees.sh": "c9b2fcca1b34d6f636b5289ece11b254cbb8ee2c2bac5c2e426b6f4dcfa972f2",
|
|
@@ -363,7 +363,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
363
363
|
"plugins/src/base/hooks/install-pkgs.sh": "e9a13faba849a277410dde911ab102ee6f88ef915b33571bb1d4eef904172db5",
|
|
364
364
|
"plugins/src/base/hooks/parity-safety-net-heredoc.py": "f21b1232ac82bd0e42d2ba43c68f4cc4546334fc885ba31747881f427097ef78",
|
|
365
365
|
"plugins/src/base/hooks/parity-safety-net.agy.sh": "ce9bd2b4566ad9147e4ace56434cffbbe87edb4ccbb57549ab3fd9f4c671ced4",
|
|
366
|
-
"plugins/src/base/hooks/parity-safety-net.sh": "
|
|
366
|
+
"plugins/src/base/hooks/parity-safety-net.sh": "124d102d7f3d54e636927f3a1610aa8dbf24745139c09ff40a5c10509d4fc165",
|
|
367
367
|
"plugins/src/base/hooks/secrets-preflight.sh": "cdc638627e5769770aefb061ea0ddfacc1888a8eab3a5fade6c43129a2d3ff6e",
|
|
368
368
|
"plugins/src/base/hooks/setup-jira-cli.sh": "384bc8d935a2ed5788d7185979b3e74c75c17cd4bc5c230d7d8f086ab2703443",
|
|
369
369
|
"plugins/src/base/hooks/shell-write-nudge.sh": "69839af423f8792b1e52c71097316c3264425553031627c0a2f9409a9d5becd0",
|
|
@@ -394,7 +394,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
394
394
|
"plugins/src/base/rules/eager/documentation-source-paths.md": "3a7c2a6264654a3cc44dd326441ba211a39c1c267033cc189c1c635adb84b52b",
|
|
395
395
|
"plugins/src/base/rules/eager/empirical-inquiry.md": "67aa64ba3ecc4f3cd761111d2562662e0a2acf7892703b14ec83f7f7b073e670",
|
|
396
396
|
"plugins/src/base/rules/eager/factory-model.md": "dee39b4276926ee27a2614bf26b985fd33bb3d115313fa6e2893de12da13ed7c",
|
|
397
|
-
"plugins/src/base/rules/eager/falsifiable-checks.md": "
|
|
397
|
+
"plugins/src/base/rules/eager/falsifiable-checks.md": "dcd6e061a238fbf1991586b4be0634c2c9dd05adc738b85ec02b9d4c3ee2337f",
|
|
398
398
|
"plugins/src/base/rules/eager/history-audit.md": "e2365e3fb28230c643e943d26688a93906afa68e3e1355d3e86d4b22ab3db559",
|
|
399
399
|
"plugins/src/base/rules/eager/integration-access-layer.md": "e5675ec414d0dcfbbf7a29912f39ea5fb02747aa4e6045493e636cba1e635eb7",
|
|
400
400
|
"plugins/src/base/rules/eager/intent-routing.md": "a2ef2397a98fb3d991fcfb39b669e289c1e2b697191cbeb6c071d71eca836207",
|
|
@@ -426,7 +426,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
426
426
|
"plugins/src/base/rules/eager/wiki-knowledge-source.md": "b3ae63fca40461fef19779d8f0c971553963ed8fe9c22fc504da3d8e757b3a36",
|
|
427
427
|
"plugins/src/base/rules/eager/work-item-definition-of-ready.md": "4285953f749aabee90dd44d7bff7e28a50e0a8c910917a96ebf81abfa425d836",
|
|
428
428
|
"plugins/src/base/rules/reference/automation-runbook-contract.md": "427be7bddf9a581dbb1c1fdbe07c02d4a1ff4ec96f4d91f409651b6ac4ff8a45",
|
|
429
|
-
"plugins/src/base/rules/reference/base-rules.md": "
|
|
429
|
+
"plugins/src/base/rules/reference/base-rules.md": "9d9705a6e7430f0324b7b7741d6e86d62ef42d1f6d585d1f169cae9289d505a3",
|
|
430
430
|
"plugins/src/base/rules/reference/bdd-e2e-coverage.md": "c4b2bd970145451ab9f95e21f2b48d42fa4dd14e8a5077664ff391e47e13d8a6",
|
|
431
431
|
"plugins/src/base/rules/reference/claim-archaeology.md": "fff025d47848c768d5b2c7047de744b7151eb2e44148d2df058c87310859457b",
|
|
432
432
|
"plugins/src/base/rules/reference/claim-evidence-mapping.md": "49a3bbf4e8a9a8ca9e13eeafa672517d077060cfeb5d9710881ec9f5c3f3ec75",
|
|
@@ -445,7 +445,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
445
445
|
"plugins/src/base/rules/reference/documentation-source-paths.md": "555155889c9cf279865b9d8fc554bdd461c96a3ec76a5001dfeb361a71056999",
|
|
446
446
|
"plugins/src/base/rules/reference/empirical-inquiry.md": "8cb166ab9eff4eb30287822a4d7843f76884d70d683d7c61d6a7ffd4ff9f7159",
|
|
447
447
|
"plugins/src/base/rules/reference/factory-model.md": "b28a2ea4df7c33390111667a2807d9003cf8c9a14829f6fb0dbc929b05bfed3a",
|
|
448
|
-
"plugins/src/base/rules/reference/falsifiable-checks.md": "
|
|
448
|
+
"plugins/src/base/rules/reference/falsifiable-checks.md": "f72797f148aed2e5e2c451b83be7ea089961493894b041b2180c356f2fb838ab",
|
|
449
449
|
"plugins/src/base/rules/reference/history-audit.md": "20a46390f71fadda499c61193d430c3d53df49b55a4cefa50a112f82fa4b05ef",
|
|
450
450
|
"plugins/src/base/rules/reference/integration-access-layer.md": "c5fc07f5f46ba1f99403b6e4fd5603d153411a9bb1838bea320b26a5bd5273d6",
|
|
451
451
|
"plugins/src/base/rules/reference/intent-routing.md": "988f8f45b41056c2adaa1a3e5f6ea926ac56a2fd041c07f98a9c2b271050efdd",
|
|
@@ -1196,7 +1196,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1196
1196
|
"typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "777e46c8e8147935f0b944dc21536f6238b26b5b7dca06c5fdb2d2898a9790dc",
|
|
1197
1197
|
"typescript/copy-overwrite/scripts/lib/bounded-spawn.mjs": "72e277ada531914d7bc51c3cb8dc67b8881aa817d96fa2f9f4d81668a3d3bbc1",
|
|
1198
1198
|
"typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
1199
|
-
"typescript/copy-overwrite/scripts/lisa-mutation.mjs": "
|
|
1199
|
+
"typescript/copy-overwrite/scripts/lisa-mutation.mjs": "11bc91eb0ab1f669fc6531201f16747dc8b5bfcebb1650ad8c29038e9ec8f89e",
|
|
1200
1200
|
"typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "bce579fc87a3ca892dc96f0366ef8afdc650a20015f4623f2561662ec7a1f6c8",
|
|
1201
1201
|
"typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "874f0792beab000939d480c1a0547ce4dd351421b4e5f0fbb495aae246ab85c2",
|
|
1202
1202
|
"typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "47d44b2bca383ae395b4e415e06c97a127327ab13762ee95b8c43d0198639bbb",
|
|
@@ -7674,6 +7674,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7674
7674
|
"tests/helpers/template-toolchain.ts": true,
|
|
7675
7675
|
"tests/helpers/test-utils.ts": true,
|
|
7676
7676
|
"tests/helpers/tracked-files.ts": true,
|
|
7677
|
+
"tests/helpers/unanswerable-grep.ts": true,
|
|
7677
7678
|
"tests/helpers/unbounded-spawn-scan.ts": true,
|
|
7678
7679
|
"tests/helpers/verification-gate-fixtures.ts": true,
|
|
7679
7680
|
"tests/helpers/verification-gate-harness.ts": true,
|
|
@@ -8142,6 +8143,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8142
8143
|
"tests/unit/hooks/enforcement-fallback.test.ts": true,
|
|
8143
8144
|
"tests/unit/hooks/enforcement-gates-e2e.test.ts": true,
|
|
8144
8145
|
"tests/unit/hooks/gate-coverage-handover.test.ts": true,
|
|
8146
|
+
"tests/unit/hooks/generated-shell-parsing-regressions.test.ts": true,
|
|
8145
8147
|
"tests/unit/hooks/hook-scripts-parse.test.ts": true,
|
|
8146
8148
|
"tests/unit/hooks/hook-stdin-epipe.test.ts": true,
|
|
8147
8149
|
"tests/unit/hooks/host-enforcement-fallback.test.ts": true,
|
|
@@ -8158,6 +8160,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8158
8160
|
"tests/unit/hooks/parity-safety-net-heredoc-literal.test.ts": true,
|
|
8159
8161
|
"tests/unit/hooks/parity-safety-net-heredoc.test.ts": true,
|
|
8160
8162
|
"tests/unit/hooks/parity-safety-net-line-continuation.test.ts": true,
|
|
8163
|
+
"tests/unit/hooks/parity-safety-net-scan-failure.test.ts": true,
|
|
8161
8164
|
"tests/unit/hooks/parity-safety-net.test.ts": true,
|
|
8162
8165
|
"tests/unit/hooks/post-checkout.test.ts": true,
|
|
8163
8166
|
"tests/unit/hooks/pre-push-audit-transport-parity.test.ts": true,
|