@codyswann/lisa 4.39.0 → 4.40.0

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 (63) hide show
  1. package/all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs +276 -0
  2. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  3. package/dist/core/lisa-owned-hash-ledger.js +10 -0
  4. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  5. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  6. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  7. package/dist/core/upstream-evidence-manifest.js +9 -4
  8. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  9. package/npm-package/create-only/.github/workflows/publish-to-npm.yml +48 -19
  10. package/package.json +4 -4
  11. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-agy/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  17. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-agy/plugin.json +1 -1
  24. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  29. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  34. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  39. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  44. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-agy/plugin.json +1 -1
  49. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  54. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  59. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  61. package/scripts/two-channel-couplings.json +1 -1
  62. package/typescript/copy-contents/.husky/pre-commit +40 -0
  63. package/typescript/copy-overwrite/.prettierignore +1 -0
@@ -107,6 +107,46 @@ if [ -f ".lintstagedrc.json" ]; then
107
107
  fi
108
108
  fi
109
109
 
110
+ # ---------------------------------------------------------------------------
111
+ # Cross-worktree staged-blob guard.
112
+ #
113
+ # Refuses a commit that stages a NEW file byte-identical to uncommitted work
114
+ # sitting in a different linked worktree. Where several agents share one
115
+ # repository through worktrees, one agent's in-progress file can be committed
116
+ # by another: the file is real, the branch is real, the commit succeeds and
117
+ # every other gate passes, so nothing reports it. Confirmed once — a 284-line
118
+ # test file staged in one worktree, committed an hour later from elsewhere,
119
+ # byte-identical, under a reworded subject.
120
+ #
121
+ # HERE RATHER THAN IN THE GATE REGISTRY, deliberately. This is a property of
122
+ # the machine — which other worktrees exist and what is sitting in them —
123
+ # not of the project, so there is no task a project could declare to prove it.
124
+ # It also has to run on EVERY commit: the whole failure mode is that nobody
125
+ # notices, so a check that waits to be invoked is a check that was not running
126
+ # on the commit where it mattered.
127
+ #
128
+ # Fails OPEN when the script is missing, unlike the lint-staged preflight
129
+ # above. That preflight guards a tool that reports success for work it did not
130
+ # do, so skipping it cannot be read as a pass. This one only ever adds a
131
+ # refusal — a repository without it is exactly as safe as it was before the
132
+ # guard existed, and blocking every commit in a project that has not yet
133
+ # re-applied templates would be a worse trade than the window it closes.
134
+ # ---------------------------------------------------------------------------
135
+ CROSS_WORKTREE_GUARD="node_modules/@codyswann/lisa/all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs"
136
+ if [ ! -f "$CROSS_WORKTREE_GUARD" ]; then
137
+ CROSS_WORKTREE_GUARD="scripts/lisa-cross-worktree-guard.mjs"
138
+ fi
139
+ if [ ! -f "$CROSS_WORKTREE_GUARD" ]; then
140
+ CROSS_WORKTREE_GUARD="all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs"
141
+ fi
142
+ if [ -f "$CROSS_WORKTREE_GUARD" ] && command -v node >/dev/null 2>&1; then
143
+ node "$CROSS_WORKTREE_GUARD"
144
+ CROSS_WORKTREE_GUARD_STATUS=$?
145
+ if [ $CROSS_WORKTREE_GUARD_STATUS -ne 0 ]; then
146
+ exit $CROSS_WORKTREE_GUARD_STATUS
147
+ fi
148
+ fi
149
+
110
150
  # ---------------------------------------------------------------------------
111
151
  # Gate-driven checks.
112
152
  #
@@ -80,6 +80,7 @@ scripts/check-verification-coverage.mjs
80
80
  scripts/classify-maestro-failures.mjs
81
81
  scripts/lisa-command-envelope.mjs
82
82
  scripts/lisa-commit-msg-gates.mjs
83
+ scripts/lisa-cross-worktree-guard.mjs
83
84
  scripts/lisa-destructive-guard.mjs
84
85
  scripts/lisa-environment-prepare.mjs
85
86
  scripts/lisa-floor-collisions.mjs