@codyswann/lisa 4.34.5 → 4.34.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.
Files changed (97) hide show
  1. package/all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh +436 -9
  2. package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +636 -101
  3. package/all/copy-overwrite/scripts/lisa-test-node.mjs +44 -1
  4. package/dist/codex/scripts/block-no-verify.sh +608 -99
  5. package/dist/configs/vitest/scratch-global-setup.d.ts +29 -0
  6. package/dist/configs/vitest/scratch-global-setup.d.ts.map +1 -1
  7. package/dist/configs/vitest/scratch-global-setup.js +77 -12
  8. package/dist/configs/vitest/scratch-global-setup.js.map +1 -1
  9. package/dist/core/config-shadowing.d.ts +72 -0
  10. package/dist/core/config-shadowing.d.ts.map +1 -0
  11. package/dist/core/config-shadowing.js +152 -0
  12. package/dist/core/config-shadowing.js.map +1 -0
  13. package/dist/core/config.d.ts +16 -1
  14. package/dist/core/config.d.ts.map +1 -1
  15. package/dist/core/config.js +1 -0
  16. package/dist/core/config.js.map +1 -1
  17. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  18. package/dist/core/lisa-owned-hash-ledger.js +8 -0
  19. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  20. package/dist/core/lisa.d.ts +21 -0
  21. package/dist/core/lisa.d.ts.map +1 -1
  22. package/dist/core/lisa.js +46 -0
  23. package/dist/core/lisa.js.map +1 -1
  24. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  25. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  26. package/dist/core/upstream-evidence-manifest.js +17 -9
  27. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  28. package/dist/opencode/plugin-templates/block-no-verify.sh +636 -101
  29. package/dist/strategies/copy-overwrite.d.ts +42 -0
  30. package/dist/strategies/copy-overwrite.d.ts.map +1 -1
  31. package/dist/strategies/copy-overwrite.js +69 -5
  32. package/dist/strategies/copy-overwrite.js.map +1 -1
  33. package/expo/copy-overwrite/scripts/check-lighthouse-details.mjs +138 -11
  34. package/expo/create-only/.github/workflows/deploy.yml +51 -4
  35. package/package.json +4 -4
  36. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa/hooks/block-managed-file-edits.sh +436 -9
  39. package/plugins/lisa/hooks/block-no-verify.agy.sh +608 -99
  40. package/plugins/lisa/hooks/block-no-verify.sh +636 -101
  41. package/plugins/lisa-agy/hooks/block-no-verify.agy.sh +608 -99
  42. package/plugins/lisa-agy/plugin.json +1 -1
  43. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  45. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  46. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-copilot/hooks/block-managed-file-edits.sh +436 -9
  50. package/plugins/lisa-copilot/hooks/block-no-verify.sh +636 -101
  51. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-cursor/hooks/block-managed-file-edits.sh +436 -9
  53. package/plugins/lisa-cursor/hooks/block-no-verify.sh +636 -101
  54. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-expo-agy/plugin.json +1 -1
  57. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  61. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  62. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  66. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  67. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  71. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  72. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  76. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  77. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  78. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  79. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  81. package/plugins/lisa-rails-agy/plugin.json +1 -1
  82. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  84. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  85. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  86. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  87. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  88. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  89. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  91. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  92. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  93. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  94. package/plugins/src/base/hooks/block-managed-file-edits.sh +436 -9
  95. package/plugins/src/base/hooks/block-no-verify.agy.sh +608 -99
  96. package/plugins/src/base/hooks/block-no-verify.sh +636 -101
  97. package/rails/create-only/.github/workflows/deploy.yml +45 -1
@@ -71,6 +71,36 @@ export const EXCLUDED_SEGMENTS = Object.freeze([
71
71
  ".worktrees",
72
72
  ]);
73
73
 
74
+ /**
75
+ * The same policy as {@link EXCLUDED_SEGMENTS}, spelled as prune patterns for
76
+ * the walker so those trees are never descended into in the first place.
77
+ *
78
+ * Derived from the segment list rather than written out beside it, so a
79
+ * segment added to one cannot go missing from the other.
80
+ *
81
+ * ## Two traps worth knowing before editing this
82
+ *
83
+ * The intuitive spelling is `ignore: [...]`, which is the **`glob` NPM
84
+ * package's** option. This is `node:fs`, whose option is `exclude` — and
85
+ * `node:fs` **silently discards unknown keys**. Measured on v22.22.0, passing
86
+ * `ignore` returns a result byte-identical to passing no options at all, so
87
+ * the plausible fix is a no-op that still exhausts the heap and still looks
88
+ * correct in review.
89
+ *
90
+ * The array form is used rather than the function form because node documents
91
+ * `exclude` as taking a list of glob patterns, whereas what the function form
92
+ * is handed on v22 is a bare basename — an undocumented shape not worth
93
+ * pinning a contract to.
94
+ *
95
+ * The dot-leading entries are inert and kept deliberately: measured on
96
+ * v22.22.0, `**` matches no dot-leading segment and the walk never descends
97
+ * into one, so `.worktrees` costs nothing either way. Deriving the whole list
98
+ * is what keeps this honest if that behaviour ever changes.
99
+ */
100
+ export const EXCLUDED_GLOBS = Object.freeze(
101
+ EXCLUDED_SEGMENTS.map(segment => `**/${segment}/**`)
102
+ );
103
+
74
104
  /**
75
105
  * Whether a matched path belongs to this project rather than to a dependency,
76
106
  * a build output, or another checkout parked inside the tree.
@@ -89,7 +119,20 @@ export function isOwnTest(relativePath) {
89
119
  * @returns {string[]} Project-relative paths.
90
120
  */
91
121
  export function collect(cwd = process.cwd()) {
92
- return globSync(TEST_GLOB, { cwd })
122
+ // Both filters are load-bearing and neither replaces the other: `exclude`
123
+ // decides what is WALKED, `isOwnTest` decides what is a SUITE.
124
+ //
125
+ // Filtering alone runs after the walk has already materialised every
126
+ // matching path in the tree. Where agent sessions park nested `git worktree`
127
+ // checkouts inside the repository — which Lisa's own worktree-isolation
128
+ // guidance encourages — that walk descends into every nested checkout's
129
+ // `node_modules` and exhausts the heap. Measured downstream on v22.22.0 with
130
+ // 107 nested checkouts: a heap-limit abort, exit 134, at
131
+ // `--max-old-space-size=4096`; with `exclude`, 43 suites in 362 ms and 10 MB.
132
+ //
133
+ // That took the whole gate down, not just this runner: the guard that
134
+ // imports `collect` runs in the pre-push hook, so every push was refused.
135
+ return globSync(TEST_GLOB, { cwd, exclude: EXCLUDED_GLOBS })
93
136
  .filter(isOwnTest)
94
137
  .sort((left, right) => left.localeCompare(right));
95
138
  }