@codyswann/lisa 4.68.1 → 4.69.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 (85) hide show
  1. package/all/copy-overwrite/scripts/lisa-work-item.mjs +96 -5
  2. package/all/deletions.json +4 -2
  3. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  4. package/dist/core/lisa-owned-hash-ledger.js +8 -0
  5. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  6. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  7. package/dist/core/project-config.d.ts +6 -0
  8. package/dist/core/project-config.d.ts.map +1 -1
  9. package/dist/core/project-config.js.map +1 -1
  10. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  11. package/dist/core/upstream-evidence-manifest.js +20 -14
  12. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  13. package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +41 -1
  14. package/package.json +4 -4
  15. package/plugins/lisa/.claude-plugin/plugin.json +11 -1
  16. package/plugins/lisa/.codex-plugin/hooks.json +10 -0
  17. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  18. package/plugins/lisa/hooks/auto-update.mjs +756 -0
  19. package/plugins/lisa/hooks/auto-update.sh +31 -0
  20. package/plugins/lisa/hooks/enforcement-vintage-npm.mjs +2 -2
  21. package/plugins/lisa-agy/plugin.json +1 -1
  22. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  25. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-copilot/.claude-plugin/plugin.json +11 -1
  28. package/plugins/lisa-copilot/hooks/auto-update.mjs +756 -0
  29. package/plugins/lisa-copilot/hooks/auto-update.sh +31 -0
  30. package/plugins/lisa-copilot/hooks/enforcement-vintage-npm.mjs +2 -2
  31. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-cursor/hooks/auto-update.mjs +756 -0
  33. package/plugins/lisa-cursor/hooks/auto-update.sh +31 -0
  34. package/plugins/lisa-cursor/hooks/enforcement-vintage-npm.mjs +2 -2
  35. package/plugins/lisa-cursor/hooks/hooks.json +4 -0
  36. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-expo-agy/plugin.json +1 -1
  39. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  49. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  54. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  59. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-rails-agy/plugin.json +1 -1
  64. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  69. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  73. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  74. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  76. package/plugins/src/base/.claude-plugin/plugin.json +10 -0
  77. package/plugins/src/base/hooks/auto-update.mjs +756 -0
  78. package/plugins/src/base/hooks/auto-update.sh +31 -0
  79. package/plugins/src/base/hooks/enforcement-vintage-npm.mjs +2 -2
  80. package/scripts/lib/per-agent-hook-filter.mjs +13 -0
  81. package/scripts/two-channel-couplings.json +1 -1
  82. package/typescript/copy-overwrite/.prettierignore +0 -1
  83. package/all/copy-overwrite/scripts/lisa-self-update.mjs +0 -1047
  84. package/all/create-only/.github/workflows/lisa-update.yml +0 -99
  85. package/scripts/lisa-self-update.mjs +0 -14
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env bash
2
+ # SessionStart: keep the project on the latest Lisa, locally
3
+ # (CodySwannGT/lisa#4337). `autoUpdate` in .lisa.config.json defaults to on;
4
+ # `false` opts out.
5
+ #
6
+ # All the work lives in the sibling `.mjs`, which is unit-tested. This wrapper
7
+ # only resolves the project root and hands off — the same division
8
+ # `enforcement-vintage.sh` beside it makes.
9
+ #
10
+ # FAIL SOFT, ALWAYS. Every exit is 0: a session must start even when the update
11
+ # cannot run, and the `.mjs` reports what it could not do in the context.
12
+ set -uo pipefail
13
+
14
+ cat >/dev/null 2>&1 || true
15
+
16
+ ROOT="${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}}"
17
+ RUNNER="$ROOT/hooks/auto-update.mjs"
18
+
19
+ [ -f "$RUNNER" ] || exit 0
20
+ command -v node >/dev/null 2>&1 || exit 0
21
+
22
+ # CLAUDE_PROJECT_DIR is the harness's own declaration of the root; the git
23
+ # toplevel is the fallback, because the manifest and node_modules this updates
24
+ # live at the repository root, not at whatever directory the session opened in.
25
+ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-}"
26
+ if [ -z "${PROJECT_DIR}" ] || [ ! -d "${PROJECT_DIR}" ]; then
27
+ PROJECT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
28
+ fi
29
+
30
+ node "$RUNNER" --project-dir "$PROJECT_DIR" || true
31
+ exit 0
@@ -259,8 +259,8 @@ export function renderNpmRows(state) {
259
259
  const guidance = state.projectBehind
260
260
  ? [
261
261
  `PROJECT BEHIND — this project installs lisa ${state.pin?.version} while lisa ${state.latest?.version} is published.`,
262
- "- Do NOT upgrade Lisa inside the current task: a version bump plus its template apply belongs in its own pull request, never mixed into feature work.",
263
- "- Check for an open pull request on a `lisa/update-*` branch. If none is open, the project's Lisa Update workflow (`.github/workflows/lisa-update.yml`) opens one on its schedule; say so in your report, and if that workflow is missing, recommend running `lisa apply` once so the project receives it.",
262
+ "- Do NOT upgrade Lisa by hand inside the current task. The session-start auto-update applies it on a clean tree as its own commit; see the lisa-auto-update block for what it did this session.",
263
+ '- If it did not run (autoUpdate is false, the tree was dirty, or it failed), say so in your report; the update happens at the start of the next session on a clean tree, or with "autoUpdate" left on.',
264
264
  ]
265
265
  : [];
266
266
  return { rows, guidance };
@@ -170,6 +170,19 @@ const SCRIPT_RULES = {
170
170
  agy: false,
171
171
  copilot: true,
172
172
  },
173
+ // Session-start local Lisa update (CodySwannGT/lisa#4337). Every harness with
174
+ // a session-start event gets it; OpenCode runs the same engine from its
175
+ // session bootstrap plugin. Documented gap: agy has no SessionStart event, so
176
+ // agy sessions never auto-update — the project still updates the next time a
177
+ // session on any other harness starts in it, and `lisa doctor` reports a
178
+ // stale install on every agent.
179
+ "auto-update.sh": {
180
+ claude: true,
181
+ codex: true,
182
+ cursor: true,
183
+ agy: false,
184
+ copilot: true,
185
+ },
173
186
  "inject-flow-context.sh": {
174
187
  claude: true,
175
188
  codex: true,
@@ -97,7 +97,7 @@
97
97
  "workflows": 23,
98
98
  "steps": 784,
99
99
  "couplings": 33,
100
- "inventory": 91
100
+ "inventory": 90
101
101
  },
102
102
  "counts": {
103
103
  "package-backed": 10,
@@ -92,7 +92,6 @@ scripts/lisa-postinstall.mjs
92
92
  scripts/lisa-reconcile-policy.mjs
93
93
  scripts/lisa-run-gates.mjs
94
94
  scripts/lisa-schema-validate.mjs
95
- scripts/lisa-self-update.mjs
96
95
  scripts/lisa-test-node.mjs
97
96
  scripts/lisa-work-item.mjs
98
97
  scripts/lisa-worktree-guard.mjs