@codyswann/lisa 4.33.5 → 4.33.6
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/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/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.js +2 -2
- 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-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-cursor/.claude-plugin/plugin.json +1 -1
- 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/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +414 -6
- package/typescript/create-only/.github/workflows/review-evidence.yml +78 -3
|
@@ -30,6 +30,25 @@
|
|
|
30
30
|
# `Review skipped: manual review required for this OSS repository`. They stay
|
|
31
31
|
# loud and nonblocking because a pull request author cannot fix the entitlement.
|
|
32
32
|
#
|
|
33
|
+
# AND "LOUD" IS A RENDERING, NOT A LOG LINE (#3639). This job exits 0 for a
|
|
34
|
+
# satisfied gate and 0 for a waived one, so on its own `gh pr checks` prints
|
|
35
|
+
# `pass` for a pull request nothing read, character for character what it
|
|
36
|
+
# prints for a reviewed one. Measured on the repository that ships this: 39 of
|
|
37
|
+
# the last 40 merged pull requests waived, which makes the waiver the DEFAULT
|
|
38
|
+
# path rather than an exception. The second step republishes the verdict as its
|
|
39
|
+
# own check run whose conclusion the guard chose — `success` reviewed,
|
|
40
|
+
# `neutral` WAIVED, `failure` unsatisfied. `neutral` blocks nothing and buckets
|
|
41
|
+
# as `skipping`, so the waiver keeps its rationale and loses its disguise. Do
|
|
42
|
+
# not "simplify" that step away, and do not turn the waiver into a failure:
|
|
43
|
+
# a gate that reddens every pull request on a vendor's billing state gets
|
|
44
|
+
# deleted, and then nothing is watching at all.
|
|
45
|
+
#
|
|
46
|
+
# `--waive-rate-sample=<N>` samples recently merged pull requests and reports
|
|
47
|
+
# how many of them waived, in the job summary and in the verdict title. It runs
|
|
48
|
+
# ONLY when this pull request is itself waived, is one GraphQL call, and is
|
|
49
|
+
# best-effort: a failed sample costs one sentence, never the verdict. Omit the
|
|
50
|
+
# flag to disable the sample entirely.
|
|
51
|
+
#
|
|
33
52
|
# A rate-limit queue may be roughly hour-long. Agentic delivery retries through
|
|
34
53
|
# it, with an auditable admin-merge only at the exterior governance gate after
|
|
35
54
|
# every other required check and independent review has passed.
|
|
@@ -70,7 +89,11 @@ on:
|
|
|
70
89
|
permissions:
|
|
71
90
|
contents: read
|
|
72
91
|
actions: read
|
|
73
|
-
checks:
|
|
92
|
+
# `checks: write` is what publishing the verdict needs. A check run is the
|
|
93
|
+
# only artefact that can carry a `neutral` conclusion, and `neutral` is the
|
|
94
|
+
# only rendering that is neither a pass nor a failure; a commit status has no
|
|
95
|
+
# such state, so a waiver posted that way would be a `pass` again.
|
|
96
|
+
checks: write
|
|
74
97
|
statuses: read
|
|
75
98
|
pull-requests: read
|
|
76
99
|
|
|
@@ -102,6 +125,7 @@ jobs:
|
|
|
102
125
|
node-version: '22.21.1'
|
|
103
126
|
|
|
104
127
|
- name: 🕵️ Refuse a required check that reviewed nothing
|
|
128
|
+
id: review_evidence
|
|
105
129
|
env:
|
|
106
130
|
GH_TOKEN: ${{ github.token }}
|
|
107
131
|
# Absent on a `pull_request` run, where the guard reads the event
|
|
@@ -124,7 +148,58 @@ jobs:
|
|
|
124
148
|
exit 1
|
|
125
149
|
fi
|
|
126
150
|
if [ -n "${VACUITY_PR:-}" ]; then
|
|
127
|
-
node scripts/check-skipped-required-checks.mjs --vacuity --require-review-evidence --pr="$VACUITY_PR"
|
|
151
|
+
node scripts/check-skipped-required-checks.mjs --vacuity --require-review-evidence --waive-rate-sample=40 --pr="$VACUITY_PR"
|
|
128
152
|
else
|
|
129
|
-
node scripts/check-skipped-required-checks.mjs --vacuity --require-review-evidence
|
|
153
|
+
node scripts/check-skipped-required-checks.mjs --vacuity --require-review-evidence --waive-rate-sample=40
|
|
154
|
+
fi
|
|
155
|
+
|
|
156
|
+
# ---------------------------------------------------------------------
|
|
157
|
+
# The point of #3639: render the verdict where a merge decision reads it.
|
|
158
|
+
# ---------------------------------------------------------------------
|
|
159
|
+
# The job above exits 0 for a SATISFIED gate and 0 for a WAIVED one, so
|
|
160
|
+
# `gh pr checks` printed `pass` for a pull request nothing had read,
|
|
161
|
+
# character for character what it prints for a reviewed one. The waiver
|
|
162
|
+
# was honest in the run log and invisible at the only layer anybody
|
|
163
|
+
# consults before pressing merge; measured on this repository, 39 of the
|
|
164
|
+
# last 40 merged pull requests took that path, so the disguise was the
|
|
165
|
+
# DEFAULT rendering rather than an edge case.
|
|
166
|
+
#
|
|
167
|
+
# This step republishes the same verdict as its own check run, whose
|
|
168
|
+
# conclusion the guard chose: `success` reviewed, `neutral` WAIVED,
|
|
169
|
+
# `failure` unsatisfied. `gh pr checks` buckets NEUTRAL as `skipping`, so
|
|
170
|
+
# a waiver stops looking like a pass without acquiring the power to block
|
|
171
|
+
# — the waiver's rationale is untouched, because a pull request author
|
|
172
|
+
# still cannot fix a vendor's billing state.
|
|
173
|
+
#
|
|
174
|
+
# `continue-on-error` and `if: always()`: this is RENDERING, downstream of
|
|
175
|
+
# a verdict already reached and already exited on. A fork pull request
|
|
176
|
+
# gets a read-only token and cannot write a check run at all, and losing
|
|
177
|
+
# the rendering there must not invert the verdict above it.
|
|
178
|
+
- name: 🕵️ Publish the review verdict where a merge decision reads it
|
|
179
|
+
if: always() && steps.review_evidence.outputs.review_evidence_conclusion != ''
|
|
180
|
+
continue-on-error: true
|
|
181
|
+
env:
|
|
182
|
+
GH_TOKEN: ${{ github.token }}
|
|
183
|
+
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
|
184
|
+
# Empty on the `workflow_dispatch` path, where there is no
|
|
185
|
+
# `pull_request` payload to read a head SHA from. The step resolves it
|
|
186
|
+
# from the dispatched number instead, so it needs the number too.
|
|
187
|
+
VACUITY_PR: ${{ inputs.pr }}
|
|
188
|
+
VERDICT_CONCLUSION: ${{ steps.review_evidence.outputs.review_evidence_conclusion }}
|
|
189
|
+
VERDICT_TITLE: ${{ steps.review_evidence.outputs.review_evidence_title }}
|
|
190
|
+
run: |
|
|
191
|
+
set -eu
|
|
192
|
+
if [ -z "${HEAD_SHA:-}" ]; then
|
|
193
|
+
HEAD_SHA="$(gh api "repos/${GITHUB_REPOSITORY}/pulls/${VACUITY_PR}" --jq .head.sha)"
|
|
130
194
|
fi
|
|
195
|
+
gh api "repos/${GITHUB_REPOSITORY}/check-runs" \
|
|
196
|
+
--method POST \
|
|
197
|
+
--field name='🕵️ Review evidence verdict' \
|
|
198
|
+
--field head_sha="$HEAD_SHA" \
|
|
199
|
+
--field status=completed \
|
|
200
|
+
--field conclusion="$VERDICT_CONCLUSION" \
|
|
201
|
+
--field output[title]="$VERDICT_TITLE" \
|
|
202
|
+
--field output[summary]="$VERDICT_TITLE
|
|
203
|
+
|
|
204
|
+
Published by the \`🕵️ Review Evidence\` workflow. A \`neutral\` conclusion here means WAIVED: a declared review check said in its own words that it could not review, this pull request is UNREVIEWED, and merging it is a decision taken on that basis. It is deliberately not a failure — a pull request author cannot fix a vendor entitlement — and deliberately not a pass." \
|
|
205
|
+
> /dev/null
|