@codyswann/lisa 4.45.15 → 4.45.17
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 +2 -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 +4 -1
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- 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 +53 -17
package/package.json
CHANGED
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"zod-validation-error": "^4.0.0"
|
|
177
177
|
},
|
|
178
178
|
"name": "@codyswann/lisa",
|
|
179
|
-
"version": "4.45.
|
|
179
|
+
"version": "4.45.17",
|
|
180
180
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
181
181
|
"main": "dist/index.js",
|
|
182
182
|
"exports": {
|
|
@@ -324,7 +324,7 @@
|
|
|
324
324
|
"test": "tests"
|
|
325
325
|
},
|
|
326
326
|
"types": "./dist/index.d.ts",
|
|
327
|
-
"lisaReleaseCommit": "
|
|
328
|
-
"gitHead": "
|
|
329
|
-
"lisaReleaseTag": "v4.45.
|
|
327
|
+
"lisaReleaseCommit": "53295857b272a117727fd228c2fb27334b292cee",
|
|
328
|
+
"gitHead": "53295857b272a117727fd228c2fb27334b292cee",
|
|
329
|
+
"lisaReleaseTag": "v4.45.17"
|
|
330
330
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.17",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.17",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.17",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.17",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.17",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -484,6 +484,45 @@ export const NEVER_BLOCKING = Object.freeze([
|
|
|
484
484
|
VIOLATIONS.reviewCarried,
|
|
485
485
|
]);
|
|
486
486
|
|
|
487
|
+
/**
|
|
488
|
+
* Kinds that stay report-only under EVERY flag, including `--fail-on-vacuous`.
|
|
489
|
+
*
|
|
490
|
+
* ## Why this is a named array rather than a condition
|
|
491
|
+
*
|
|
492
|
+
* These two are also members of {@link NEVER_BLOCKING}, and that array's own
|
|
493
|
+
* rule is `return policy.failOnVacuous` — so reaching it would make them block
|
|
494
|
+
* the moment the flag is passed. They were kept apart by an `if` immediately
|
|
495
|
+
* above the lookup, which meant **deleting or reordering one line silently
|
|
496
|
+
* converted two deliberately report-only findings into build failures**, with
|
|
497
|
+
* nothing in the suite noticing (CodySwannGT/lisa#3902). Naming the set makes
|
|
498
|
+
* the exemption a value that can be asserted rather than a position that
|
|
499
|
+
* happens to come first.
|
|
500
|
+
*
|
|
501
|
+
* The behaviour is unchanged: same two kinds, same answer, same place in the
|
|
502
|
+
* order. Only the reason it holds moved from a line's position into a name.
|
|
503
|
+
*
|
|
504
|
+
* ## The two policies, which are different and both deliberate
|
|
505
|
+
*
|
|
506
|
+
* `reviewWaived` is report-only under the owner's ruling on
|
|
507
|
+
* CodySwannGT/lisa#3221. A waived pull request is an unreviewed one, the
|
|
508
|
+
* operator must see it, and it must never fail the build. `--fail-on-vacuous`
|
|
509
|
+
* governs checks that claimed success without proving work; it must not turn a
|
|
510
|
+
* vendor entitlement waiver into a failure through a shared array.
|
|
511
|
+
*
|
|
512
|
+
* `reviewCarried` (CodySwannGT/lisa#3658) is report-only for a second reason on
|
|
513
|
+
* top of that one: it is about ANOTHER pull request, whose own gate already
|
|
514
|
+
* reached its own verdict on its own diff. `--fail-on-vacuous` asks "did the
|
|
515
|
+
* checks on THIS pull request prove their work?", and answering it with a
|
|
516
|
+
* constituent's condition would fail an author for a diff they did not write
|
|
517
|
+
* and cannot change.
|
|
518
|
+
*
|
|
519
|
+
* Changing either policy is out of scope here; this records that they hold.
|
|
520
|
+
*/
|
|
521
|
+
export const REPORT_ONLY = Object.freeze([
|
|
522
|
+
VIOLATIONS.reviewWaived,
|
|
523
|
+
VIOLATIONS.reviewCarried,
|
|
524
|
+
]);
|
|
525
|
+
|
|
487
526
|
/**
|
|
488
527
|
* Kinds the review gate blocks on, and only when a caller asks it to.
|
|
489
528
|
*
|
|
@@ -3436,11 +3475,17 @@ function writeGuardError(argv, error) {
|
|
|
3436
3475
|
/**
|
|
3437
3476
|
* Reads the CLI switches that change which findings block.
|
|
3438
3477
|
*
|
|
3478
|
+
* Exported so a test can prove `--fail-on-vacuous` reaches `failOnVacuous`.
|
|
3479
|
+
* Without that, a case asserting a finding does NOT block under the flag
|
|
3480
|
+
* cannot tell "the flag was live and chose not to block" from "the flag never
|
|
3481
|
+
* arrived" — and the second is the vacuous test this whole file is about
|
|
3482
|
+
* (CodySwannGT/lisa#3902).
|
|
3483
|
+
*
|
|
3439
3484
|
* @param {ReadonlyArray<string>} argv - Arguments
|
|
3440
3485
|
* @param {object} result - Guard result
|
|
3441
3486
|
* @returns {{warnOnly: boolean, failOnVacuous: boolean, requireReviewEvidence: boolean}} Active policy
|
|
3442
3487
|
*/
|
|
3443
|
-
function cliPolicy(argv, result) {
|
|
3488
|
+
export function cliPolicy(argv, result) {
|
|
3444
3489
|
return {
|
|
3445
3490
|
warnOnly: result.enforcement === "warn",
|
|
3446
3491
|
// The supported alternative to a per-consumer `--json` wrapper.
|
|
@@ -3454,29 +3499,20 @@ function cliPolicy(argv, result) {
|
|
|
3454
3499
|
/**
|
|
3455
3500
|
* True when one violation blocks under the active CLI policy.
|
|
3456
3501
|
*
|
|
3502
|
+
* Exported for the same reason `cliPolicy` is: the property
|
|
3503
|
+
* CodySwannGT/lisa#3902 asks for is a MATRIX — two kinds that must not block
|
|
3504
|
+
* under `--fail-on-vacuous` beside two that must — and a suite that could
|
|
3505
|
+
* produce only one half of it would pass while the other half rotted.
|
|
3506
|
+
*
|
|
3457
3507
|
* @param {{kind: string}} violation - One violation
|
|
3458
3508
|
* @param {{warnOnly: boolean, failOnVacuous: boolean, requireReviewEvidence: boolean}} policy - Active policy
|
|
3459
3509
|
* @returns {boolean} True when the finding blocks
|
|
3460
3510
|
*/
|
|
3461
|
-
function violationBlocks(violation, policy) {
|
|
3511
|
+
export function violationBlocks(violation, policy) {
|
|
3462
3512
|
if (REVIEW_GATE_BLOCKING.includes(violation.kind)) {
|
|
3463
3513
|
return policy.requireReviewEvidence;
|
|
3464
3514
|
}
|
|
3465
|
-
|
|
3466
|
-
// governs checks that claimed success without proving work; it must not
|
|
3467
|
-
// turn a vendor entitlement waiver into a failure through a shared array.
|
|
3468
|
-
//
|
|
3469
|
-
// A carried finding (#3658) is report-only for a second reason on top of
|
|
3470
|
-
// that one: it is about ANOTHER pull request, whose own gate already
|
|
3471
|
-
// reached its own verdict on its own diff. `--fail-on-vacuous` asks "did
|
|
3472
|
-
// the checks on THIS pull request prove their work?", and answering it with
|
|
3473
|
-
// a constituent's condition would fail an author for a diff they did not
|
|
3474
|
-
// write and cannot change.
|
|
3475
|
-
if (
|
|
3476
|
-
violation.kind === VIOLATIONS.reviewWaived ||
|
|
3477
|
-
violation.kind === VIOLATIONS.reviewCarried
|
|
3478
|
-
)
|
|
3479
|
-
return false;
|
|
3515
|
+
if (REPORT_ONLY.includes(violation.kind)) return false;
|
|
3480
3516
|
if (NEVER_BLOCKING.includes(violation.kind)) return policy.failOnVacuous;
|
|
3481
3517
|
return !policy.warnOnly || ALWAYS_BLOCKING.includes(violation.kind);
|
|
3482
3518
|
}
|