@codyswann/lisa 4.28.3 → 4.28.4
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.
- package/dist/cli/doctor-merge-drivers.d.ts.map +1 -1
- package/dist/cli/doctor-merge-drivers.js +4 -2
- package/dist/cli/doctor-merge-drivers.js.map +1 -1
- package/dist/core/learnings.d.ts +1 -1
- package/dist/core/learnings.d.ts.map +1 -1
- package/dist/core/learnings.js +1 -1
- package/dist/core/learnings.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/project-config-learnings.d.ts +49 -0
- package/dist/core/project-config-learnings.d.ts.map +1 -0
- package/dist/core/project-config-learnings.js +87 -0
- package/dist/core/project-config-learnings.js.map +1 -0
- package/dist/core/project-config.d.ts +2 -18
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +4 -57
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +7 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/ensure-learnings-gitattributes.d.ts.map +1 -1
- package/dist/migrations/ensure-learnings-gitattributes.js +6 -5
- package/dist/migrations/ensure-learnings-gitattributes.js.map +1 -1
- package/dist/migrations/ensure-learnings-merge-driver.d.ts.map +1 -1
- package/dist/migrations/ensure-learnings-merge-driver.js +6 -3
- package/dist/migrations/ensure-learnings-merge-driver.js.map +1 -1
- package/package.json +3 -3
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-persist-learning/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/lisa/skills/lisa-persist-learning/SKILL.md +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/lisa-agy/skills/lisa-persist-learning/SKILL.md +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/lisa-copilot/skills/lisa-persist-learning/SKILL.md +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/lisa-cursor/skills/lisa-persist-learning/SKILL.md +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +7 -3
- package/plugins/src/base/skills/lisa-persist-learning/SKILL.md +1 -1
- package/scripts/verify-packed-learnings-contract.mjs +101 -2
- package/dist/core/learnings-merge-driver-config.d.ts +0 -7
- package/dist/core/learnings-merge-driver-config.d.ts.map +0 -1
- package/dist/core/learnings-merge-driver-config.js +0 -58
- package/dist/core/learnings-merge-driver-config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-learnings-gitattributes.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-gitattributes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensure-learnings-gitattributes.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-gitattributes.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,qCAAsC,YAAW,SAAS;IACrE,QAAQ,CAAC,IAAI,oCAAoC;IACjD,QAAQ,CAAC,WAAW,qGACgF;IAEpG;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB5D;;;;OAIG;YACW,cAAc;CAqB7B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as fse from "fs-extra";
|
|
2
2
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import * as path from "node:path";
|
|
4
|
-
import { isLearningsMergeDriverEnabled } from "../core/learnings-merge-driver-config.js";
|
|
5
4
|
import { renderLearningsGitattributesBlock } from "../core/learnings-merge-driver.js";
|
|
6
|
-
import { readProjectConfig
|
|
5
|
+
import { readProjectConfig } from "../core/project-config.js";
|
|
6
|
+
import { resolveLearningsSettings } from "../core/project-config-learnings.js";
|
|
7
7
|
import { mergeCopyContents } from "../strategies/copy-contents.js";
|
|
8
8
|
const GITATTRIBUTES = ".gitattributes";
|
|
9
9
|
/**
|
|
@@ -72,6 +72,8 @@ export class EnsureLearningsGitattributesMigration {
|
|
|
72
72
|
* @returns Existing content and the content this migration would write
|
|
73
73
|
*/
|
|
74
74
|
async resolveContent(ctx) {
|
|
75
|
+
const config = await readProjectConfig(ctx.projectDir);
|
|
76
|
+
const settings = resolveLearningsSettings(config);
|
|
75
77
|
const target = path.join(ctx.projectDir, GITATTRIBUTES);
|
|
76
78
|
const current = (await fse.pathExists(target))
|
|
77
79
|
? await readFile(target, "utf8")
|
|
@@ -79,11 +81,10 @@ export class EnsureLearningsGitattributesMigration {
|
|
|
79
81
|
// Honour the same opt-out as the driver registration: shipping an
|
|
80
82
|
// attribute that binds the ledger to a driver the host declined would be
|
|
81
83
|
// inert at best and confusing at worst.
|
|
82
|
-
if (!
|
|
84
|
+
if (!settings.mergeDriverEnabled) {
|
|
83
85
|
return { current, next: current };
|
|
84
86
|
}
|
|
85
|
-
const
|
|
86
|
-
const block = renderLearningsGitattributesBlock(resolveProjectLearningsFile(config));
|
|
87
|
+
const block = renderLearningsGitattributesBlock(settings.learningsFile);
|
|
87
88
|
return {
|
|
88
89
|
current,
|
|
89
90
|
next: current === "" ? block : mergeCopyContents(block, current),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-learnings-gitattributes.js","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-gitattributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ensure-learnings-gitattributes.js","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-gitattributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-learnings-merge-driver.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-merge-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensure-learnings-merge-driver.d.ts","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-merge-driver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,mCAAoC,YAAW,SAAS;IACnE,QAAQ,CAAC,IAAI,mCAAmC;IAChD,QAAQ,CAAC,WAAW,2HAA2I;IAE/J;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtD;;;;OAIG;IACG,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;CAqB7D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { canInstallLearningsMergeDriver, installLearningsMergeDriver, } from "../core/learnings-merge-driver-install.js";
|
|
2
2
|
import { LEARNINGS_MERGE_DRIVER_NAME } from "../core/learnings-merge-driver.js";
|
|
3
|
-
import {
|
|
3
|
+
import { readProjectConfig } from "../core/project-config.js";
|
|
4
|
+
import { resolveLearningsSettings } from "../core/project-config-learnings.js";
|
|
4
5
|
/**
|
|
5
6
|
* Migration: register the project-learnings union merge driver locally.
|
|
6
7
|
*
|
|
@@ -38,7 +39,8 @@ export class EnsureLearningsMergeDriverMigration {
|
|
|
38
39
|
* @returns True when there is work to do
|
|
39
40
|
*/
|
|
40
41
|
async applies(ctx) {
|
|
41
|
-
|
|
42
|
+
const config = await readProjectConfig(ctx.projectDir);
|
|
43
|
+
if (!resolveLearningsSettings(config).mergeDriverEnabled) {
|
|
42
44
|
return false;
|
|
43
45
|
}
|
|
44
46
|
return canInstallLearningsMergeDriver(ctx.projectDir);
|
|
@@ -49,7 +51,8 @@ export class EnsureLearningsMergeDriverMigration {
|
|
|
49
51
|
* @returns Result describing the action taken
|
|
50
52
|
*/
|
|
51
53
|
async apply(ctx) {
|
|
52
|
-
|
|
54
|
+
const config = await readProjectConfig(ctx.projectDir);
|
|
55
|
+
if (!resolveLearningsSettings(config).mergeDriverEnabled) {
|
|
53
56
|
return { name: this.name, action: "noop" };
|
|
54
57
|
}
|
|
55
58
|
if (!(await canInstallLearningsMergeDriver(ctx.projectDir))) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-learnings-merge-driver.js","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-merge-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ensure-learnings-merge-driver.js","sourceRoot":"","sources":["../../src/migrations/ensure-learnings-merge-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAO/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,mCAAmC;IACrC,IAAI,GAAG,+BAA+B,CAAC;IACvC,WAAW,GAAG,gBAAgB,2BAA2B,4FAA4F,CAAC;IAE/J;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,GAAqB;QACjC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,GAAqB;QAC/B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,8BAA8B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CACZ,sBAAsB,2BAA2B,mBAAmB,CACrE,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC7C,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACxE,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"zod-validation-error": "^4.0.0"
|
|
163
163
|
},
|
|
164
164
|
"name": "@codyswann/lisa",
|
|
165
|
-
"version": "4.28.
|
|
165
|
+
"version": "4.28.4",
|
|
166
166
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
167
167
|
"main": "dist/index.js",
|
|
168
168
|
"exports": {
|
|
@@ -307,6 +307,6 @@
|
|
|
307
307
|
"test": "tests"
|
|
308
308
|
},
|
|
309
309
|
"types": "./dist/index.d.ts",
|
|
310
|
-
"lisaReleaseCommit": "
|
|
311
|
-
"gitHead": "
|
|
310
|
+
"lisaReleaseCommit": "069bbd1099bfdf44d032931eba04d8e0054b342b",
|
|
311
|
+
"gitHead": "069bbd1099bfdf44d032931eba04d8e0054b342b"
|
|
312
312
|
}
|
|
@@ -296,7 +296,8 @@ commit, and push. Only escalate to a human if the conflict needs design input
|
|
|
296
296
|
surface the file list and merge state.
|
|
297
297
|
|
|
298
298
|
**The project learnings ledger is a special case.** It is bound to the
|
|
299
|
-
`lisa-learnings` union merge driver in `.gitattributes`, which
|
|
299
|
+
`lisa-learnings` union merge driver in `.gitattributes`, which is enabled by default
|
|
300
|
+
and merges concurrent
|
|
300
301
|
learning branches by entry id. When that driver runs and still fails, it exits
|
|
301
302
|
non-zero WITHOUT writing conflict markers — so the ledger on disk looks clean
|
|
302
303
|
but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
@@ -304,8 +305,11 @@ but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
|
304
305
|
learnings. On any conflict touching the ledger: re-union both sides by keeping
|
|
305
306
|
every distinct entry id, honouring supersessions from either side, and re-run
|
|
306
307
|
`lisa check-learnings-budget` before committing. If the driver was never
|
|
307
|
-
registered you will instead see real conflict markers
|
|
308
|
-
`
|
|
308
|
+
registered you will instead see real conflict markers. Only an exact
|
|
309
|
+
`learnings.mergeDriver: false` declines installation, and changing that setting
|
|
310
|
+
does not uninstall an existing registration or remove the committed mapping. Run
|
|
311
|
+
`lisa install-merge-driver .` and redo the merge rather than hand-editing markers
|
|
312
|
+
unless the project explicitly opted out.
|
|
309
313
|
|
|
310
314
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
311
315
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
@@ -240,4 +240,4 @@ No learning content is ever committed without a PR — there is no other write p
|
|
|
240
240
|
- **No learning loops about learning**: never feed this skill a candidate whose triggering artifact is itself learning machinery (a `[lisa-learning-*]`-marked comment, learning PR, or handoff); the judge's Step 0 guard backstops this.
|
|
241
241
|
- **Idempotent**: re-running with the same candidate posts no duplicate comment, opens no duplicate PR, and writes no duplicate entry — the fingerprint and markers guarantee it.
|
|
242
242
|
- **One write path**: the learnings surface changes only through `persistLearningEntry` / `persistConsolidatedLearning` inside a PR. Never hand-edit the file, never commit it to the default branch directly.
|
|
243
|
-
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. `git add`-ing
|
|
243
|
+
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. Driver installation is enabled by default; only an exact `learnings.mergeDriver: false` declines it. That opt-out is non-destructive: changing the setting does not uninstall an existing registration or remove the committed mapping. `git add`-ing the failed result, or running `git checkout --ours`, silently deletes the other branch's learnings. Re-union both sides instead: keep every distinct entry id, honour supersessions from either side, then re-run `lisa check-learnings-budget`. Literal conflict markers in the ledger mean the driver was not registered — run `lisa install-merge-driver .` and redo the merge unless the project explicitly opted out.
|
|
@@ -296,7 +296,8 @@ commit, and push. Only escalate to a human if the conflict needs design input
|
|
|
296
296
|
surface the file list and merge state.
|
|
297
297
|
|
|
298
298
|
**The project learnings ledger is a special case.** It is bound to the
|
|
299
|
-
`lisa-learnings` union merge driver in `.gitattributes`, which
|
|
299
|
+
`lisa-learnings` union merge driver in `.gitattributes`, which is enabled by default
|
|
300
|
+
and merges concurrent
|
|
300
301
|
learning branches by entry id. When that driver runs and still fails, it exits
|
|
301
302
|
non-zero WITHOUT writing conflict markers — so the ledger on disk looks clean
|
|
302
303
|
but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
@@ -304,8 +305,11 @@ but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
|
304
305
|
learnings. On any conflict touching the ledger: re-union both sides by keeping
|
|
305
306
|
every distinct entry id, honouring supersessions from either side, and re-run
|
|
306
307
|
`lisa check-learnings-budget` before committing. If the driver was never
|
|
307
|
-
registered you will instead see real conflict markers
|
|
308
|
-
`
|
|
308
|
+
registered you will instead see real conflict markers. Only an exact
|
|
309
|
+
`learnings.mergeDriver: false` declines installation, and changing that setting
|
|
310
|
+
does not uninstall an existing registration or remove the committed mapping. Run
|
|
311
|
+
`lisa install-merge-driver .` and redo the merge rather than hand-editing markers
|
|
312
|
+
unless the project explicitly opted out.
|
|
309
313
|
|
|
310
314
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
311
315
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
@@ -240,4 +240,4 @@ No learning content is ever committed without a PR — there is no other write p
|
|
|
240
240
|
- **No learning loops about learning**: never feed this skill a candidate whose triggering artifact is itself learning machinery (a `[lisa-learning-*]`-marked comment, learning PR, or handoff); the judge's Step 0 guard backstops this.
|
|
241
241
|
- **Idempotent**: re-running with the same candidate posts no duplicate comment, opens no duplicate PR, and writes no duplicate entry — the fingerprint and markers guarantee it.
|
|
242
242
|
- **One write path**: the learnings surface changes only through `persistLearningEntry` / `persistConsolidatedLearning` inside a PR. Never hand-edit the file, never commit it to the default branch directly.
|
|
243
|
-
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. `git add`-ing
|
|
243
|
+
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. Driver installation is enabled by default; only an exact `learnings.mergeDriver: false` declines it. That opt-out is non-destructive: changing the setting does not uninstall an existing registration or remove the committed mapping. `git add`-ing the failed result, or running `git checkout --ours`, silently deletes the other branch's learnings. Re-union both sides instead: keep every distinct entry id, honour supersessions from either side, then re-run `lisa check-learnings-budget`. Literal conflict markers in the ledger mean the driver was not registered — run `lisa install-merge-driver .` and redo the merge unless the project explicitly opted out.
|
|
@@ -296,7 +296,8 @@ commit, and push. Only escalate to a human if the conflict needs design input
|
|
|
296
296
|
surface the file list and merge state.
|
|
297
297
|
|
|
298
298
|
**The project learnings ledger is a special case.** It is bound to the
|
|
299
|
-
`lisa-learnings` union merge driver in `.gitattributes`, which
|
|
299
|
+
`lisa-learnings` union merge driver in `.gitattributes`, which is enabled by default
|
|
300
|
+
and merges concurrent
|
|
300
301
|
learning branches by entry id. When that driver runs and still fails, it exits
|
|
301
302
|
non-zero WITHOUT writing conflict markers — so the ledger on disk looks clean
|
|
302
303
|
but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
@@ -304,8 +305,11 @@ but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
|
304
305
|
learnings. On any conflict touching the ledger: re-union both sides by keeping
|
|
305
306
|
every distinct entry id, honouring supersessions from either side, and re-run
|
|
306
307
|
`lisa check-learnings-budget` before committing. If the driver was never
|
|
307
|
-
registered you will instead see real conflict markers
|
|
308
|
-
`
|
|
308
|
+
registered you will instead see real conflict markers. Only an exact
|
|
309
|
+
`learnings.mergeDriver: false` declines installation, and changing that setting
|
|
310
|
+
does not uninstall an existing registration or remove the committed mapping. Run
|
|
311
|
+
`lisa install-merge-driver .` and redo the merge rather than hand-editing markers
|
|
312
|
+
unless the project explicitly opted out.
|
|
309
313
|
|
|
310
314
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
311
315
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
@@ -240,4 +240,4 @@ No learning content is ever committed without a PR — there is no other write p
|
|
|
240
240
|
- **No learning loops about learning**: never feed this skill a candidate whose triggering artifact is itself learning machinery (a `[lisa-learning-*]`-marked comment, learning PR, or handoff); the judge's Step 0 guard backstops this.
|
|
241
241
|
- **Idempotent**: re-running with the same candidate posts no duplicate comment, opens no duplicate PR, and writes no duplicate entry — the fingerprint and markers guarantee it.
|
|
242
242
|
- **One write path**: the learnings surface changes only through `persistLearningEntry` / `persistConsolidatedLearning` inside a PR. Never hand-edit the file, never commit it to the default branch directly.
|
|
243
|
-
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. `git add`-ing
|
|
243
|
+
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. Driver installation is enabled by default; only an exact `learnings.mergeDriver: false` declines it. That opt-out is non-destructive: changing the setting does not uninstall an existing registration or remove the committed mapping. `git add`-ing the failed result, or running `git checkout --ours`, silently deletes the other branch's learnings. Re-union both sides instead: keep every distinct entry id, honour supersessions from either side, then re-run `lisa check-learnings-budget`. Literal conflict markers in the ledger mean the driver was not registered — run `lisa install-merge-driver .` and redo the merge unless the project explicitly opted out.
|
|
@@ -296,7 +296,8 @@ commit, and push. Only escalate to a human if the conflict needs design input
|
|
|
296
296
|
surface the file list and merge state.
|
|
297
297
|
|
|
298
298
|
**The project learnings ledger is a special case.** It is bound to the
|
|
299
|
-
`lisa-learnings` union merge driver in `.gitattributes`, which
|
|
299
|
+
`lisa-learnings` union merge driver in `.gitattributes`, which is enabled by default
|
|
300
|
+
and merges concurrent
|
|
300
301
|
learning branches by entry id. When that driver runs and still fails, it exits
|
|
301
302
|
non-zero WITHOUT writing conflict markers — so the ledger on disk looks clean
|
|
302
303
|
but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
@@ -304,8 +305,11 @@ but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
|
304
305
|
learnings. On any conflict touching the ledger: re-union both sides by keeping
|
|
305
306
|
every distinct entry id, honouring supersessions from either side, and re-run
|
|
306
307
|
`lisa check-learnings-budget` before committing. If the driver was never
|
|
307
|
-
registered you will instead see real conflict markers
|
|
308
|
-
`
|
|
308
|
+
registered you will instead see real conflict markers. Only an exact
|
|
309
|
+
`learnings.mergeDriver: false` declines installation, and changing that setting
|
|
310
|
+
does not uninstall an existing registration or remove the committed mapping. Run
|
|
311
|
+
`lisa install-merge-driver .` and redo the merge rather than hand-editing markers
|
|
312
|
+
unless the project explicitly opted out.
|
|
309
313
|
|
|
310
314
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
311
315
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
@@ -240,4 +240,4 @@ No learning content is ever committed without a PR — there is no other write p
|
|
|
240
240
|
- **No learning loops about learning**: never feed this skill a candidate whose triggering artifact is itself learning machinery (a `[lisa-learning-*]`-marked comment, learning PR, or handoff); the judge's Step 0 guard backstops this.
|
|
241
241
|
- **Idempotent**: re-running with the same candidate posts no duplicate comment, opens no duplicate PR, and writes no duplicate entry — the fingerprint and markers guarantee it.
|
|
242
242
|
- **One write path**: the learnings surface changes only through `persistLearningEntry` / `persistConsolidatedLearning` inside a PR. Never hand-edit the file, never commit it to the default branch directly.
|
|
243
|
-
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. `git add`-ing
|
|
243
|
+
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. Driver installation is enabled by default; only an exact `learnings.mergeDriver: false` declines it. That opt-out is non-destructive: changing the setting does not uninstall an existing registration or remove the committed mapping. `git add`-ing the failed result, or running `git checkout --ours`, silently deletes the other branch's learnings. Re-union both sides instead: keep every distinct entry id, honour supersessions from either side, then re-run `lisa check-learnings-budget`. Literal conflict markers in the ledger mean the driver was not registered — run `lisa install-merge-driver .` and redo the merge unless the project explicitly opted out.
|
|
@@ -296,7 +296,8 @@ commit, and push. Only escalate to a human if the conflict needs design input
|
|
|
296
296
|
surface the file list and merge state.
|
|
297
297
|
|
|
298
298
|
**The project learnings ledger is a special case.** It is bound to the
|
|
299
|
-
`lisa-learnings` union merge driver in `.gitattributes`, which
|
|
299
|
+
`lisa-learnings` union merge driver in `.gitattributes`, which is enabled by default
|
|
300
|
+
and merges concurrent
|
|
300
301
|
learning branches by entry id. When that driver runs and still fails, it exits
|
|
301
302
|
non-zero WITHOUT writing conflict markers — so the ledger on disk looks clean
|
|
302
303
|
but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
@@ -304,8 +305,11 @@ but contains **OUR SIDE ONLY**. Staging it as-is (`git add`, `git checkout
|
|
|
304
305
|
learnings. On any conflict touching the ledger: re-union both sides by keeping
|
|
305
306
|
every distinct entry id, honouring supersessions from either side, and re-run
|
|
306
307
|
`lisa check-learnings-budget` before committing. If the driver was never
|
|
307
|
-
registered you will instead see real conflict markers
|
|
308
|
-
`
|
|
308
|
+
registered you will instead see real conflict markers. Only an exact
|
|
309
|
+
`learnings.mergeDriver: false` declines installation, and changing that setting
|
|
310
|
+
does not uninstall an existing registration or remove the committed mapping. Run
|
|
311
|
+
`lisa install-merge-driver .` and redo the merge rather than hand-editing markers
|
|
312
|
+
unless the project explicitly opted out.
|
|
309
313
|
|
|
310
314
|
### c. Failing CI / deploy checks (`statusCheckRollup` has FAILURE)
|
|
311
315
|
Inspect the failing check's logs (`gh pr checks <pr>`, `gh run view <run> --log-failed`).
|
|
@@ -240,4 +240,4 @@ No learning content is ever committed without a PR — there is no other write p
|
|
|
240
240
|
- **No learning loops about learning**: never feed this skill a candidate whose triggering artifact is itself learning machinery (a `[lisa-learning-*]`-marked comment, learning PR, or handoff); the judge's Step 0 guard backstops this.
|
|
241
241
|
- **Idempotent**: re-running with the same candidate posts no duplicate comment, opens no duplicate PR, and writes no duplicate entry — the fingerprint and markers guarantee it.
|
|
242
242
|
- **One write path**: the learnings surface changes only through `persistLearningEntry` / `persistConsolidatedLearning` inside a PR. Never hand-edit the file, never commit it to the default branch directly.
|
|
243
|
-
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. `git add`-ing
|
|
243
|
+
- **Never resolve a ledger conflict by taking one side.** Concurrent passes each work on their own `learning/<fingerprint>` branch, so two PRs routinely touch the same JSONL block. The `lisa-learnings` union merge driver reconciles them by entry id, but when it cannot it exits non-zero **without writing conflict markers** — leaving a clean-looking file that holds **OUR SIDE ONLY**. Driver installation is enabled by default; only an exact `learnings.mergeDriver: false` declines it. That opt-out is non-destructive: changing the setting does not uninstall an existing registration or remove the committed mapping. `git add`-ing the failed result, or running `git checkout --ours`, silently deletes the other branch's learnings. Re-union both sides instead: keep every distinct entry id, honour supersessions from either side, then re-run `lisa check-learnings-budget`. Literal conflict markers in the ledger mean the driver was not registered — run `lisa install-merge-driver .` and redo the merge unless the project explicitly opted out.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.28.
|
|
3
|
+
"version": "4.28.4",
|
|
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": "4.28.
|
|
3
|
+
"version": "4.28.4",
|
|
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": "4.28.
|
|
3
|
+
"version": "4.28.4",
|
|
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": "4.28.
|
|
3
|
+
"version": "4.28.4",
|
|
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": "4.28.
|
|
3
|
+
"version": "4.28.4",
|
|
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"
|