@codyswann/lisa 4.71.10 → 4.71.12
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/all/copy-overwrite/scripts/lisa-work-item.mjs +65 -4
- package/all/copy-overwrite/scripts/npm-updater-helper-graph.json +2 -2
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +10 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- 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-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-agy/skills/lisa-linear-build-intake/SKILL.md +8 -0
- 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/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-copilot/skills/lisa-linear-build-intake/SKILL.md +8 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/lisa-cursor/skills/lisa-linear-build-intake/SKILL.md +8 -0
- 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/scripts/intake-blocker-reprobe.mjs +20 -2
- package/plugins/src/base/skills/lisa-linear-build-intake/SKILL.md +8 -0
|
@@ -53,6 +53,22 @@ function normalizeLabels(labels) {
|
|
|
53
53
|
const LEADING_DECORATION =
|
|
54
54
|
/^[ \t>*_+#-]*(?:\d+[.)][ \t]*)?(?:<!--[ \t]*)?[ \t]*/u;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Decode one stored Markdown escape layer without changing the provider record.
|
|
58
|
+
* Linear escapes marker brackets and punctuation in reason keys. A single pass
|
|
59
|
+
* keeps literal backslash pairs intact instead of recursively inventing markers.
|
|
60
|
+
* Callers doing bookkeeping-marker searches use this same projection; hold and
|
|
61
|
+
* release parsers receive original bodies and apply it after excluding code.
|
|
62
|
+
* @param {unknown} body - Original provider text
|
|
63
|
+
* @returns {string} One-pass Markdown punctuation projection
|
|
64
|
+
*/
|
|
65
|
+
export function normalizeProviderMarkdown(body) {
|
|
66
|
+
return String(body ?? "").replace(
|
|
67
|
+
/\\([\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e])/gu,
|
|
68
|
+
"$1"
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
56
72
|
/**
|
|
57
73
|
* The body with fenced blocks and inline code spans removed.
|
|
58
74
|
*
|
|
@@ -65,9 +81,10 @@ const LEADING_DECORATION =
|
|
|
65
81
|
* @returns {string} The body with quoted and code regions blanked out
|
|
66
82
|
*/
|
|
67
83
|
function declarativeText(body) {
|
|
68
|
-
|
|
84
|
+
const withoutCode = String(body ?? "")
|
|
69
85
|
.replace(/```[\s\S]*?```/gu, "")
|
|
70
86
|
.replace(/`[^`\n]*`/gu, "");
|
|
87
|
+
return normalizeProviderMarkdown(withoutCode);
|
|
71
88
|
}
|
|
72
89
|
|
|
73
90
|
/**
|
|
@@ -160,7 +177,8 @@ function declaresOnLine(line, marker = HUMAN_GATE_MARKER) {
|
|
|
160
177
|
*/
|
|
161
178
|
export function humanGateMentions(body) {
|
|
162
179
|
const raw = String(body ?? "");
|
|
163
|
-
const total =
|
|
180
|
+
const total =
|
|
181
|
+
normalizeProviderMarkdown(raw).split(HUMAN_GATE_MARKER).length - 1;
|
|
164
182
|
const declared = declarativeText(raw)
|
|
165
183
|
.split("\n")
|
|
166
184
|
.filter(line => declaresOnLine(line)).length;
|
|
@@ -199,6 +199,14 @@ If every pre-work lane is empty, or nothing survives Phase 2.5, exit on the **de
|
|
|
199
199
|
|
|
200
200
|
### Phase 2.5 — Re-probe the blockers instead of inheriting them
|
|
201
201
|
|
|
202
|
+
Pass original provider bodies and comments to the shared human-gate parsers;
|
|
203
|
+
they decode one Markdown escape layer after excluding code examples. For
|
|
204
|
+
bookkeeping searches that set `alreadyNotified`, use
|
|
205
|
+
`normalizeProviderMarkdown(comment.body)` from the same helper before checking
|
|
206
|
+
the reconciled, released, normalization or evidence marker. Never pre-normalize
|
|
207
|
+
text passed to the parsers: decoding twice can change literal backslashes into a
|
|
208
|
+
declaration.
|
|
209
|
+
|
|
202
210
|
A blocker is a **claim with a timestamp, not a fact**. It is written once and goes stale the moment its condition comes true — a dependency lands on trunk, an advisory gets patched, a package publishes. Nothing re-read one before this phase, so a discharged blocker held its Issue out of the queue indefinitely. Measured: one Issue's stated condition went true ~15 hours before anything noticed.
|
|
203
211
|
|
|
204
212
|
For each pre-work candidate that is **not** in `$READY`:
|