@codyswann/lisa 4.45.11 → 4.45.13

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 (67) hide show
  1. package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +9 -1
  2. package/all/copy-overwrite/scripts/lisa-work-item.mjs +67 -3
  3. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  4. package/dist/core/lisa-owned-hash-ledger.js +4 -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/upstream-evidence-manifest.d.ts.map +1 -1
  8. package/dist/core/upstream-evidence-manifest.js +6 -4
  9. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  10. package/dist/opencode/plugin-templates/parity-safety-net.sh +9 -1
  11. package/package.json +4 -4
  12. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa/hooks/parity-safety-net.sh +9 -1
  15. package/plugins/lisa-agy/hooks/parity-safety-net.sh +9 -1
  16. package/plugins/lisa-agy/plugin.json +1 -1
  17. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  20. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  21. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-copilot/hooks/parity-safety-net.sh +9 -1
  24. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cursor/hooks/parity-safety-net.sh +9 -1
  26. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  28. package/plugins/lisa-expo-agy/plugin.json +1 -1
  29. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  34. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  39. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  44. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  49. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-rails-agy/plugin.json +1 -1
  54. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  59. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  64. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/src/base/hooks/parity-safety-net.sh +9 -1
  67. package/scripts/merge-generated-artifact.mjs +31 -2
@@ -662,11 +662,40 @@ export function runMergeGeneratedArtifact(
662
662
  theirsText,
663
663
  options.path
664
664
  );
665
+ // The remedy is spelled with `git show` into a redirect, NOT `git checkout
666
+ // --theirs --`, and that is load-bearing rather than stylistic
667
+ // (CodySwannGT/lisa#3692). `parity-safety-net` refuses every `git checkout`
668
+ // that discards worktree state, so the shape this driver used to print was
669
+ // one its own sibling guard blocked: an operator following the refusal
670
+ // faithfully was stopped by a second control, mid-conflict, with the
671
+ // guard's own suggestion at the time being `git stash` — repo-global, shared
672
+ // by every worktree, and a race against concurrent agents' work.
673
+ //
674
+ // The replacement is strictly safer than the command it replaces rather than
675
+ // merely permitted: the merge has already staged both sides, so writing one
676
+ // of them back over the working tree cannot discard anything, which is not
677
+ // true of `git checkout --theirs --`.
678
+ //
679
+ // Keep every command here runnable under the shipped guards. The suite
680
+ // extracts these lines from live output and classifies each one, so a
681
+ // reworded remedy that a guard refuses fails the build rather than reaching
682
+ // an operator.
665
683
  if (!result.ok) {
666
684
  error(
667
685
  `merge-generated-artifact: ${label} could not be merged mechanically — ${result.reason}.\n` +
668
- `Both sides are preserved in the index (stages 2 and 3). Resolve by regenerating against the merged tree:\n` +
669
- ` git checkout --theirs -- ${label} && bun run build:upstream-evidence-manifest && bun run build:lisa-owned-hash-ledger && git add ${label}\n`
686
+ `Both sides are preserved in the index — stage 2 is ours, stage 3 is theirs — so\n` +
687
+ `overwriting the working-tree copy with either one discards nothing. Resolve by\n` +
688
+ `regenerating against the merged tree:\n` +
689
+ `\n` +
690
+ ` git show ":3:${label}" > "${label}"\n` +
691
+ ` bun run build:upstream-evidence-manifest\n` +
692
+ ` bun run build:lisa-owned-hash-ledger\n` +
693
+ ` git add "${label}" src/core/upstream-evidence-manifest.ts src/core/lisa-owned-hash-ledger.ts\n` +
694
+ `\n` +
695
+ `Take the other side instead with \`git show ":2:${label}"\`. The redirect truncates\n` +
696
+ `${label} before git writes, so a failed first command leaves it empty — re-run it,\n` +
697
+ `or take stage 2; the index still holds both. Do not hand-resolve a generated\n` +
698
+ `artifact.\n`
670
699
  );
671
700
  return 1;
672
701
  }