@codyswann/lisa 3.69.0 → 3.69.2
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/sonar-secrets.sh +20 -2
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +1 -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 +4 -3
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- 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/debug-hook.sh +13 -3
- package/plugins/lisa/hooks/sonar-secrets.sh +20 -2
- 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/sonar-secrets.sh +20 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/sonar-secrets.sh +20 -2
- 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/debug-hook.sh +13 -3
- package/plugins/src/base/hooks/sonar-secrets.sh +20 -2
|
@@ -4,14 +4,24 @@
|
|
|
4
4
|
# This script is a no-op when CLAUDE_DEBUG is not set or set to 0
|
|
5
5
|
##
|
|
6
6
|
|
|
7
|
+
# Read JSON input from stdin BEFORE the no-op check can exit.
|
|
8
|
+
#
|
|
9
|
+
# A hook that exits before consuming stdin closes the read end while its
|
|
10
|
+
# caller's write is still in flight, and the CALLER's write raises EPIPE. The
|
|
11
|
+
# hook exits 0 and looks healthy; the harness takes the failure. Measured on
|
|
12
|
+
# this path at 30 EPIPE in 30 invocations once the payload exceeds the pipe
|
|
13
|
+
# buffer, and ~0.5% at the real payload size (CodySwannGT/lisa#2949).
|
|
14
|
+
#
|
|
15
|
+
# This hook is the worst placement of that defect in the tree, because the
|
|
16
|
+
# early exit is the path it takes on every event of every session that has not
|
|
17
|
+
# set CLAUDE_DEBUG — which is all of them.
|
|
18
|
+
INPUT=$(cat)
|
|
19
|
+
|
|
7
20
|
# Exit immediately if debug mode is not enabled
|
|
8
21
|
if [[ "${CLAUDE_DEBUG:-0}" != "1" ]]; then
|
|
9
22
|
exit 0
|
|
10
23
|
fi
|
|
11
24
|
|
|
12
|
-
# Read JSON input from stdin
|
|
13
|
-
INPUT=$(cat)
|
|
14
|
-
|
|
15
25
|
# Parse hook event info using jq
|
|
16
26
|
HOOK_EVENT=$(echo "$INPUT" | jq -r '.hook_event_name // "unknown"')
|
|
17
27
|
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // "N/A"')
|
|
@@ -38,6 +38,26 @@
|
|
|
38
38
|
# Usage: sonar-secrets.sh <vendor-event-name> # hook payload on stdin
|
|
39
39
|
set -uo pipefail
|
|
40
40
|
|
|
41
|
+
# Read the payload FIRST, before anything here can stand aside.
|
|
42
|
+
#
|
|
43
|
+
# The caller pipes the hook envelope into our stdin. A path that exits before
|
|
44
|
+
# consuming it closes the read end while the caller's write is still in flight,
|
|
45
|
+
# and the caller's write raises EPIPE — a failure in the harness, produced by a
|
|
46
|
+
# hook that had nothing to say and exited 0 saying it. The evidence lands
|
|
47
|
+
# entirely on the writing side, which is why it read as a mystery for so long.
|
|
48
|
+
#
|
|
49
|
+
# It is a race, so it only fires when this process wins. Measured against the
|
|
50
|
+
# real payload at a 1-minute load average of 82: 3 EPIPE in 600 invocations of
|
|
51
|
+
# the no-event path (0.50%), and 30 in 30 once the payload exceeds the pipe
|
|
52
|
+
# buffer. Rare enough to look like a real failure, frequent enough to keep
|
|
53
|
+
# costing re-runs (CodySwannGT/lisa#2949).
|
|
54
|
+
#
|
|
55
|
+
# Reading first is the fix that also covers real callers, rather than only the
|
|
56
|
+
# tests: every exit below now happens after stdin has reached EOF. The same
|
|
57
|
+
# obligation is discharged as an explicit `cat >/dev/null` drain in
|
|
58
|
+
# install-pkgs.sh and setup-jira-cli.sh, which never use the payload at all.
|
|
59
|
+
payload="$(cat)"
|
|
60
|
+
|
|
41
61
|
event="${1:-}"
|
|
42
62
|
[[ -n "$event" ]] || exit 0
|
|
43
63
|
|
|
@@ -50,8 +70,6 @@ command -v sonar >/dev/null 2>&1 || exit 0
|
|
|
50
70
|
# is reviewable, not in whatever shell happened to launch the agent.
|
|
51
71
|
[[ "${LISA_SONAR_HOOK:-on}" == "off" ]] && exit 0
|
|
52
72
|
|
|
53
|
-
payload="$(cat)"
|
|
54
|
-
|
|
55
73
|
# The vendor signals its verdict as JSON on stdout and always exits 0, so the
|
|
56
74
|
# exit code carries no information and the reason text is the only channel.
|
|
57
75
|
inactive_marker='secret scanning is inactive'
|