@codyswann/lisa 2.217.3 → 2.217.5

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 (74) hide show
  1. package/dist/cli/doctor-monitor-thresholds.d.ts +7 -4
  2. package/dist/cli/doctor-monitor-thresholds.d.ts.map +1 -1
  3. package/dist/cli/doctor-monitor-thresholds.js +57 -66
  4. package/dist/cli/doctor-monitor-thresholds.js.map +1 -1
  5. package/dist/sync/config-sync.d.ts.map +1 -1
  6. package/dist/sync/config-sync.js +22 -6
  7. package/dist/sync/config-sync.js.map +1 -1
  8. package/dist/sync/legacy-aliases.d.ts +27 -0
  9. package/dist/sync/legacy-aliases.d.ts.map +1 -0
  10. package/dist/sync/legacy-aliases.js +53 -0
  11. package/dist/sync/legacy-aliases.js.map +1 -0
  12. package/dist/sync/registry.d.ts +6 -0
  13. package/dist/sync/registry.d.ts.map +1 -1
  14. package/dist/sync/registry.js +11 -4
  15. package/dist/sync/registry.js.map +1 -1
  16. package/package.json +1 -1
  17. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  19. package/plugins/lisa/.codex-plugin/skills/lisa-monitor/SKILL.md +63 -8
  20. package/plugins/lisa/skills/lisa-monitor/SKILL.md +63 -8
  21. package/plugins/lisa-agy/plugin.json +1 -1
  22. package/plugins/lisa-agy/skills/lisa-monitor/SKILL.md +63 -8
  23. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  26. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  27. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/skills/lisa-monitor/SKILL.md +63 -8
  30. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-cursor/skills/lisa-monitor/SKILL.md +63 -8
  32. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  34. package/plugins/lisa-expo-agy/plugin.json +1 -1
  35. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  54. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  55. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  59. package/plugins/lisa-rails-agy/plugin.json +1 -1
  60. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  64. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  65. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  69. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  70. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  72. package/plugins/src/base/skills/lisa-monitor/SKILL.md +63 -8
  73. package/ui/README.md +5 -3
  74. package/ui/index.html +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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.217.3",
3
+ "version": "2.217.5",
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"
@@ -15,14 +15,69 @@ Spot-check application health, **audit observability completeness**, and **file
15
15
  - `--all-gaps` — also file `recommended`-tier gaps (session replay, product analytics, etc.), not just `core`. Does not change anomaly thresholds.
16
16
  - `max_candidates=<n>` — cap tickets filed this run (default 20; config `monitor.maxCandidates`).
17
17
 
18
- ## Threshold compatibility
19
-
20
- Resolve monitor thresholds from `.lisa.config.local.json` first and `.lisa.config.json` second, using the local-overrides-global semantics from the `config-resolution` rule. For renamed thresholds, prefer the provider-neutral key when present, then fall back to the legacy provider-named key, then fall back to the documented default:
21
-
22
- - `monitor.thresholds.minEvents24h` falls back to `monitor.thresholds.sentryMinEvents24h`, then default `1`.
23
- - `monitor.thresholds.faultRatePct` falls back to `monitor.thresholds.xrayFaultRatePct`, then default `5`.
24
-
25
- A project carrying both keys uses the provider-neutral value. A project carrying only the legacy key keeps using that explicit legacy value; never silently substitute the new default just because the new key is absent.
18
+ ## Monitor threshold compatibility
19
+
20
+ Before resolving anomaly thresholds, inspect the committed
21
+ `.lisa.config.json` and local `.lisa.config.local.json` separately with `jq`.
22
+ Use a literal, fixed-path projection that returns presence and value for only
23
+ these four exact paths; do not use `Read`, `cat`, interpolation, or a filter
24
+ that emits either entire config into agent context:
25
+
26
+ - `monitor.thresholds.minEvents24h`, then
27
+ `monitor.thresholds.sentryMinEvents24h`.
28
+ - `monitor.thresholds.faultRatePct`, then
29
+ `monitor.thresholds.xrayFaultRatePct`.
30
+
31
+ Run this fixed filter once with literal final argument `.lisa.config.json` and
32
+ once with literal final argument `.lisa.config.local.json` when the respective
33
+ file exists:
34
+
35
+ ```bash
36
+ jq 'def threshold($object; $name):
37
+ if ($object | has($name)) then
38
+ ($object[$name] | type) as $type |
39
+ if $type == "number" then
40
+ if ($object[$name] | isfinite and (isnan | not)) then
41
+ {present: true, valid: true, type: "number", value: $object[$name]}
42
+ else
43
+ {present: true, valid: false, type: "non-finite-number"}
44
+ end
45
+ else
46
+ {present: true, valid: false, type: $type}
47
+ end
48
+ else
49
+ {present: false, valid: false, type: "missing"}
50
+ end;
51
+ (.monitor.thresholds | if type == "object" then . else {} end) as $t |
52
+ {
53
+ "monitor.thresholds.minEvents24h": threshold($t; "minEvents24h"),
54
+ "monitor.thresholds.sentryMinEvents24h": threshold($t; "sentryMinEvents24h"),
55
+ "monitor.thresholds.faultRatePct": threshold($t; "faultRatePct"),
56
+ "monitor.thresholds.xrayFaultRatePct": threshold($t; "xrayFaultRatePct")
57
+ }' .lisa.config.json
58
+ ```
59
+
60
+ A nonzero `jq` result fails threshold collection; do not treat an uninspectable
61
+ present file as if it were absent.
62
+
63
+ For each exact path, keep the raw `jq` presence/value result from each file;
64
+ do not inject defaults during this merge. Local presence overrides committed
65
+ presence per path. After that merge, resolve the current key before the legacy
66
+ key, then use default `1` for `monitor.thresholds.minEvents24h` or default `5`
67
+ for `monitor.thresholds.faultRatePct`. Current key wins over legacy key even
68
+ when its configured value is invalid.
69
+
70
+ Every configured threshold must be a finite JSON number. If the selected path
71
+ is null, a string, a boolean, an object, an array, or otherwise non-finite,
72
+ fail threshold collection and report the exact path and source without echoing
73
+ the invalid value; never fall through to a legacy value or default. Never quote
74
+ or report either whole config. The fixed `jq` projection itself must redact
75
+ invalid configured content: it emits only presence, validity, and a fixed type
76
+ classification, and includes the numeric `value` field only for a finite number.
77
+ For a valid resolution, the monitor report must include the resolved value and
78
+ source. Report only a validated numeric resolved value and one fixed source enum:
79
+ `local-current`, `committed-current`, `local-legacy`, `committed-legacy`, or
80
+ `default`.
26
81
 
27
82
  ## Orchestration: agent team
28
83
 
package/ui/README.md CHANGED
@@ -58,9 +58,11 @@ AWS CloudWatch Alarms, AWS X-Ray, and future providers, so
58
58
  and `faultRatePct` replace the legacy `sentryMinEvents24h` /
59
59
  `xrayFaultRatePct`. The Monitoring section shows which providers are
60
60
  connected (detected from credentials and instrumentation, not configured by
61
- hand). The runtime `lisa-monitor` skill still reads the legacy keys
62
- renaming them in `config-resolution.md` and the skill is a tracked
63
- follow-up.
61
+ hand). `lisa sync` migrates a legacy monitor block when provenance proves Lisa
62
+ auto-populated the old default, while leaving human-chosen legacy values
63
+ untouched. The runtime keeps accepting those deprecated aliases, prefers the
64
+ provider-neutral key when both are present, and `lisa doctor` warns until a
65
+ project finishes migrating.
64
66
 
65
67
  ## Starter provenance & sync (planned — documented, not wired)
66
68
 
package/ui/index.html CHANGED
@@ -3632,7 +3632,7 @@
3632
3632
  },
3633
3633
  {
3634
3634
  type: "callout",
3635
- text: "The runtime monitor skill still reads the legacy provider-prefixed keys (sentryMinEvents24h, xrayFaultRatePct) renaming them to these provider-neutral keys in config-resolution.md and the lisa-monitor skill is a tracked follow-up.",
3635
+ text: "lisa sync migrates a legacy monitor block when provenance proves Lisa auto-populated the old default, while preserving human-chosen legacy values. The runtime keeps accepting the deprecated aliases, prefers the provider-neutral key when both are present, and lisa doctor warns until migration is complete.",
3636
3636
  },
3637
3637
  ],
3638
3638
  };