@codyswann/lisa 4.38.7 → 4.38.8
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/lib/gate-failure-diagnosis.mjs +23 -1
- package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +23 -0
- package/all/copy-overwrite/scripts/lisa-run-gates.mjs +30 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +6 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/parity-safety-net.sh +23 -0
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/parity-safety-net.sh +23 -0
- package/plugins/lisa-agy/hooks/parity-safety-net.sh +23 -0
- 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/parity-safety-net.sh +23 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/parity-safety-net.sh +23 -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/parity-safety-net.sh +23 -0
|
@@ -901,6 +901,7 @@ follow_scan() {
|
|
|
901
901
|
redirected=""
|
|
902
902
|
heredoc=0
|
|
903
903
|
stdin_mode=0
|
|
904
|
+
noexec=0
|
|
904
905
|
j=$((i + 1))
|
|
905
906
|
while [ "$j" -lt "$n" ]; do
|
|
906
907
|
follow_unwrap "${toks[j]}"
|
|
@@ -931,13 +932,35 @@ follow_scan() {
|
|
|
931
932
|
*) j=$((j + 1)) ;;
|
|
932
933
|
esac
|
|
933
934
|
;;
|
|
935
|
+
# `-n` is NOEXEC: the shell reads and parses its operand, then exits
|
|
936
|
+
# without running a line of it. So a syntax check is the one shape
|
|
937
|
+
# that puts a path at a command position while provably executing
|
|
938
|
+
# nothing, and following it reads a file the command never runs.
|
|
939
|
+
#
|
|
940
|
+
# This guard hit that on ITSELF: its pattern list is destructive
|
|
941
|
+
# command literals living inside the guard, so `bash -n` on its own
|
|
942
|
+
# source was refused by its own patterns — and the same held for any
|
|
943
|
+
# file documenting destructive commands. See CodySwannGT/lisa#3803.
|
|
944
|
+
#
|
|
945
|
+
# `bash <file>` still executes and is still followed. Noexec is the
|
|
946
|
+
# distinction, not the program: this is not a read-only exemption.
|
|
947
|
+
--noexec) noexec=1; break ;;
|
|
934
948
|
--*) j=$((j + 1)) ;;
|
|
935
949
|
-*c*) inline=1; j=$((j + 1)) ;;
|
|
950
|
+
-*n*) noexec=1; break ;;
|
|
936
951
|
-s | -[a-zA-Z]*s[a-zA-Z]*) stdin_mode=1; j=$((j + 1)) ;;
|
|
937
952
|
-*) j=$((j + 1)) ;;
|
|
938
953
|
*) break ;;
|
|
939
954
|
esac
|
|
940
955
|
done
|
|
956
|
+
if [ "$noexec" -eq 1 ]; then
|
|
957
|
+
# Nothing runs, so there is no script to follow and nothing to fail
|
|
958
|
+
# closed about. Checked before the heredoc and dispatcher arms: those
|
|
959
|
+
# decide WHICH text to read, and here there is no execution at all.
|
|
960
|
+
cmd_pos=0
|
|
961
|
+
i=$((j + 1))
|
|
962
|
+
continue
|
|
963
|
+
fi
|
|
941
964
|
if [ "$heredoc" -eq 1 ] && [ "$inline" -eq 0 ]; then
|
|
942
965
|
cmd_pos=0
|
|
943
966
|
i=$((j + 1))
|