@codyswann/lisa 2.189.9 → 2.189.11

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 (57) hide show
  1. package/expo/copy-overwrite/jest.expo.ts +4 -120
  2. package/expo/package-lisa/package.lisa.json +5 -0
  3. package/package.json +1 -1
  4. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  6. package/plugins/lisa-agy/plugin.json +1 -1
  7. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  8. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  9. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  10. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  11. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-expo-agy/plugin.json +1 -1
  17. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  22. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  27. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  32. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  37. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-rails-agy/plugin.json +1 -1
  42. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  47. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  52. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  54. package/scripts/lib/per-agent-hook-filter.mjs +3 -1
  55. package/typescript/copy-contents/.husky/pre-commit +21 -4
  56. package/typescript/copy-overwrite/{.gitleaksignore → .gitleaksignore.local} +1 -1
  57. package/typescript/create-only/.gitleaksignore +5 -0
@@ -1,130 +1,14 @@
1
1
  /**
2
2
  * This file is managed by Lisa.
3
- * Do not edit directly changes will be overwritten on the next `lisa` run.
3
+ * Do not edit directly - changes will be overwritten on the next `lisa` run.
4
4
  */
5
5
 
6
- /**
7
- * Jest Configuration - Expo Stack
8
- *
9
- * Provides Expo/React Native-specific Jest configuration without using
10
- * the `jest-expo` preset directly. The preset's `setupFiles` include
11
- * `react-native/jest/setup.js` which redefines `window` via
12
- * `Object.defineProperties` — incompatible with jsdom's non-configurable
13
- * `window` property, causing "Cannot redefine property: window" errors.
14
- *
15
- * Instead, this config manually replicates the preset's resolution,
16
- * transform, and haste settings without any preset setupFiles.
17
- *
18
- * `setupFiles` and `setupFilesAfterEnv` are configured here to wire up
19
- * the base jest setup files (`jest.setup.pre.js` and `jest.setup.ts`).
20
- * These base files import project-local overrides (`jest.setup.pre.local.js`
21
- * and `jest.setup.local.ts`) which are create-only templates that projects
22
- * can customize without Lisa overwriting them.
23
- *
24
- * Coverage collection is scoped to standard Expo source directories
25
- * rather than a catch-all glob, preventing config files, scripts, and
26
- * plugins from distorting coverage numbers. The `app/` directory is
27
- * excluded because Expo Router file-based routing makes those files thin
28
- * wrappers (8-15 lines) that just re-export feature components.
29
- * `*View.{ts,tsx}` files are excluded because the Container/View pattern
30
- * puts all logic in Container files — Views are purely presentational.
31
- *
32
- * Inheritance chain:
33
- * jest.expo.ts (this file)
34
- * └── @codyswann/lisa/jest/base
35
- *
36
- * @see https://jestjs.io/docs/configuration
37
- * @see https://github.com/expo/expo/issues/40184
38
- * @module jest.expo
39
- */
40
- import type { Config } from "jest";
41
-
42
- import {
43
- defaultCoverageExclusions,
44
- defaultThresholds,
45
- mergeConfigs,
46
- mergeThresholds,
47
- worktreeTestPathIgnorePatterns,
48
- } from "@codyswann/lisa/jest/base";
49
-
50
- // Re-export base utilities for entry-point configs
51
6
  export {
52
7
  defaultCoverageExclusions,
53
8
  defaultThresholds,
9
+ getExpoJestConfig,
54
10
  mergeConfigs,
55
11
  mergeThresholds,
12
+ selectExpoJestResolver,
56
13
  worktreeTestPathIgnorePatterns,
57
- };
58
-
59
- /**
60
- * Options for configuring the Expo Jest config factory.
61
- */
62
- interface ExpoJestOptions {
63
- /** Coverage thresholds (merged defaults + project overrides) */
64
- readonly thresholds?: Config["coverageThreshold"];
65
- }
66
-
67
- /**
68
- * Creates a Jest configuration for Expo/React Native projects.
69
- *
70
- * @param options - Configuration options for threshold overrides
71
- * @param options.thresholds - Coverage thresholds (merged defaults + project overrides)
72
- * @returns Jest config object with jsdom environment, babel-jest transform, and React Native resolver
73
- * @remarks Avoids `jest-expo` preset to prevent jsdom + `react-native/jest/setup.js`
74
- * incompatibility. Manually configures haste, resolver, and transform to match the
75
- * preset's behavior without the problematic window redefinition.
76
- */
77
- export const getExpoJestConfig = ({
78
- thresholds = defaultThresholds,
79
- }: ExpoJestOptions = {}): Config => ({
80
- testEnvironment: "jsdom",
81
- haste: {
82
- defaultPlatform: "ios",
83
- platforms: ["android", "ios", "native"],
84
- },
85
- resolver: "react-native/jest/resolver.js",
86
- setupFiles: ["<rootDir>/jest.setup.pre.js"],
87
- setupFilesAfterEnv: ["<rootDir>/jest.setup.ts"],
88
- transform: {
89
- "\\.[jt]sx?$": [
90
- "babel-jest",
91
- {
92
- caller: {
93
- name: "metro",
94
- bundler: "metro",
95
- platform: "ios",
96
- },
97
- },
98
- ],
99
- "^.+\\.(bmp|gif|jpg|jpeg|mp4|png|psd|svg|webp|ttf|otf|woff|woff2)$":
100
- "jest-expo/src/preset/assetFileTransformer.js",
101
- },
102
- testMatch: ["<rootDir>/**/*.test.ts", "<rootDir>/**/*.test.tsx"],
103
- testPathIgnorePatterns: [
104
- "/node_modules/",
105
- "/dist/",
106
- "/.expo/",
107
- ...worktreeTestPathIgnorePatterns(),
108
- ],
109
- transformIgnorePatterns: [
110
- "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@sentry/react-native|native-base|react-native-svg|@gluestack-ui/.*|@gluestack-style/.*|nativewind|react-native-css-interop|react-native-reanimated|react-native-worklets|lucide-react-native|@gorhom|@shopify)",
111
- ],
112
- moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
113
- collectCoverageFrom: [
114
- "components/**/*.{ts,tsx}",
115
- "config/**/*.{ts,tsx}",
116
- "constants/**/*.{ts,tsx}",
117
- "features/**/*.{ts,tsx}",
118
- "hooks/**/*.{ts,tsx}",
119
- "lib/**/*.{ts,tsx}",
120
- "providers/**/*.{ts,tsx}",
121
- "shared/**/*.{ts,tsx}",
122
- "stores/**/*.{ts,tsx}",
123
- "types/**/*.{ts,tsx}",
124
- "utils/**/*.{ts,tsx}",
125
- "!**/*View.{ts,tsx}",
126
- ...defaultCoverageExclusions,
127
- ],
128
- coverageThreshold: thresholds,
129
- testTimeout: 10000,
130
- });
14
+ } from "@codyswann/lisa/jest/expo";
@@ -170,5 +170,10 @@
170
170
  "expo-atlas": "^0.4.0",
171
171
  "jest-expo": "~56.0.4"
172
172
  }
173
+ },
174
+ "remove": {
175
+ "devDependencies": [
176
+ "@stryker-mutator/vitest-runner"
177
+ ]
173
178
  }
174
179
  }
package/package.json CHANGED
@@ -94,7 +94,7 @@
94
94
  "ws": ">=8.20.1"
95
95
  },
96
96
  "name": "@codyswann/lisa",
97
- "version": "2.189.9",
97
+ "version": "2.189.11",
98
98
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
99
99
  "main": "dist/index.js",
100
100
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
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": "2.189.9",
3
+ "version": "2.189.11",
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": "2.189.9",
3
+ "version": "2.189.11",
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": "2.189.9",
3
+ "version": "2.189.11",
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": "2.189.9",
3
+ "version": "2.189.11",
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-phaser",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.189.9",
3
+ "version": "2.189.11",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -105,7 +105,9 @@ const SCRIPT_EXCLUDE_PATTERNS = [/debug/i, /\.agy\.sh$/];
105
105
  /** Hook command shape: { type: "command", command: "..." } */
106
106
  const isEntireClaudeCodeCommand = cmd =>
107
107
  typeof cmd === "string" &&
108
- /^command -v entire >\/dev\/null 2>&1 && entire hooks claude-code /.test(cmd);
108
+ cmd.startsWith(
109
+ "command -v entire >/dev/null 2>&1 && entire hooks claude-code "
110
+ );
109
111
 
110
112
  const scriptNameFromCommand = cmd => {
111
113
  if (typeof cmd !== "string") return null;
@@ -46,9 +46,26 @@ fi
46
46
  # Check for Gitleaks and run secret detection
47
47
  echo "🔐 Checking for secrets with Gitleaks..."
48
48
  if command -v gitleaks >/dev/null 2>&1; then
49
- # Run gitleaks on staged files
50
- gitleaks protect --staged --redact -v
51
- if [ $? -ne 0 ]; then
49
+ # Run gitleaks on staged files. Lisa keeps the host-owned allowlist in
50
+ # .gitleaksignore and shared managed entries in .gitleaksignore.local.
51
+ GITLEAKS_IGNORE_ARGS=""
52
+ GITLEAKS_COMBINED_IGNORE=""
53
+ if [ -f ".gitleaksignore.local" ]; then
54
+ GITLEAKS_COMBINED_IGNORE="$(mktemp)"
55
+ if [ -f ".gitleaksignore" ]; then
56
+ cat .gitleaksignore > "$GITLEAKS_COMBINED_IGNORE"
57
+ printf '\n' >> "$GITLEAKS_COMBINED_IGNORE"
58
+ fi
59
+ cat .gitleaksignore.local >> "$GITLEAKS_COMBINED_IGNORE"
60
+ GITLEAKS_IGNORE_ARGS="--gitleaks-ignore-path=$GITLEAKS_COMBINED_IGNORE"
61
+ fi
62
+
63
+ gitleaks protect --staged --redact -v $GITLEAKS_IGNORE_ARGS
64
+ GITLEAKS_STATUS=$?
65
+ if [ -n "$GITLEAKS_COMBINED_IGNORE" ]; then
66
+ rm -f "$GITLEAKS_COMBINED_IGNORE"
67
+ fi
68
+ if [ $GITLEAKS_STATUS -ne 0 ]; then
52
69
  echo ""
53
70
  echo "❌ Secrets detected in staged files!"
54
71
  echo ""
@@ -93,4 +110,4 @@ fi
93
110
  # Run lint-staged for incremental lint and format checks
94
111
  echo "🚀 Running lint-staged..."
95
112
  $EXECUTOR lint-staged --config .lintstagedrc.json
96
- # END: AI GUARDRAILS
113
+ # END: AI GUARDRAILS
@@ -1,5 +1,5 @@
1
1
  # This file is managed by Lisa.
2
- # Do not edit directly changes will be overwritten on the next `lisa` run.
2
+ # Do not edit directly - changes will be overwritten on the next `lisa` run.
3
3
 
4
4
  # CDK snapshot files contain asset hashes that can trigger false positives
5
5
  __tests__/infra/__snapshots__/sse-stream-stack.test.ts.snap:generic-api-key:380
@@ -0,0 +1,5 @@
1
+ # This file is host-owned after Lisa creates it.
2
+ # Add project-specific false positives here; Lisa will not overwrite them.
3
+ #
4
+ # Lisa-managed shared entries live in .gitleaksignore.local and are loaded by
5
+ # the Lisa pre-commit hook when present.