@codyswann/lisa 2.152.0 → 2.152.1
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/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +6 -1
- package/dist/core/lisa.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/skills/repair-intake/SKILL.md +57 -21
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/repair-intake/SKILL.md +57 -21
- 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/repair-intake/SKILL.md +57 -21
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/repair-intake/SKILL.md +57 -21
- 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-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/repair-intake/SKILL.md +57 -21
|
@@ -229,6 +229,18 @@ An in-progress item (build `claimed`, PRD `in_review`) is **stalled** only if it
|
|
|
229
229
|
observable activity newer than the `stale_after` threshold. `blocked` items are NOT gated on
|
|
230
230
|
staleness — their repairability is judged on current blocker/answer state, not elapsed time.
|
|
231
231
|
|
|
232
|
+
A build `claimed` leaf whose linked PR has **already merged** (`state == MERGED`) is likewise NOT
|
|
233
|
+
gated on staleness. A merged PR is a settled terminal state, not in-flight work: the only thing
|
|
234
|
+
missing is the env transition build-intake never applied (its merge gate left the item `claimed`
|
|
235
|
+
because the merge landed after its agent returned). The recovery is judged on PR merge state, not
|
|
236
|
+
elapsed time — and crucially **post-merge activity does not defer it**. A freshly-merged PR keeps
|
|
237
|
+
producing activity that the signal below would otherwise read as keep-alive (a queued/in-progress
|
|
238
|
+
release or deploy check-run, a post-merge CodeRabbit summary comment), so gating merged-PR recovery
|
|
239
|
+
on staleness strands a *completed* leaf in `claimed` for as long as that activity keeps the clock
|
|
240
|
+
warm — exactly the failure that leaves a shipped Sub-task showing `status:in-progress` for a day
|
|
241
|
+
while its parents roll up against it. Recover it regardless of recent activity (Build `claimed`
|
|
242
|
+
decision tree step 0, and the dedicated high-confidence ordering bucket).
|
|
243
|
+
|
|
232
244
|
### Threshold resolution
|
|
233
245
|
|
|
234
246
|
1. `$ARGUMENTS` `stale_after=<dur>` (one-off override) — always wins. Parse `Nh` / `Nm` / `Nd` /
|
|
@@ -263,6 +275,12 @@ keep-alive activity: it does not reset the staleness clock. The clock runs from
|
|
|
263
275
|
progress event, so a PR that has been sitting failed/conflicted/awaiting-changes for longer than
|
|
264
276
|
`stale_after` counts as stalled and is diagnosed below.
|
|
265
277
|
|
|
278
|
+
A **merged** linked PR is the same kind of non-keep-alive signal, in the other direction: the work
|
|
279
|
+
is settled and complete, so its post-merge check-runs and summary comments must NOT count as
|
|
280
|
+
keep-alive either. A build `claimed` leaf with a merged PR is recovered regardless of the staleness
|
|
281
|
+
clock (see the Staleness model note above and the dedicated ordering bucket); it is never recorded
|
|
282
|
+
`active` and skipped on the strength of post-merge activity.
|
|
283
|
+
|
|
266
284
|
If a provider cannot expose any reliable timestamp, do **not** auto-resume its in-progress
|
|
267
285
|
items unless the caller passed `stale_after=0`. (Dependency-cleared `blocked` repair still
|
|
268
286
|
proceeds — it is judged on blocker state, not time.)
|
|
@@ -276,17 +294,24 @@ recorded under Errors. Do not stop after the first write; the cap is the batch b
|
|
|
276
294
|
|
|
277
295
|
### Build `claimed` (stalled in-progress) → diagnose blocker, else resume in place
|
|
278
296
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
**First check for an already-merged PR — this check is NOT gated on staleness.** Read the item's
|
|
298
|
+
linked PR state before applying the staleness gate (see "Stuck-cause diagnosis" step 1–2 for
|
|
299
|
+
discovery). If `state == MERGED`, recover it immediately via step 0's merged-PR arm regardless of
|
|
300
|
+
elapsed time or recent post-merge activity (per the Staleness model's merged-PR exemption): a merged
|
|
301
|
+
PR is a completed leaf, and deferring it behind the staleness clock is what strands shipped work in
|
|
302
|
+
`claimed`.
|
|
303
|
+
|
|
304
|
+
Only if the PR is **not** merged does the staleness gate apply. Once it passes, **diagnose why it
|
|
305
|
+
stalled** by inspecting the item's PRs and deploys (see "Stuck-cause diagnosis" below). A stalled
|
|
306
|
+
build usually stalled for a concrete external reason, and re-dispatching the agent at it will not fix
|
|
307
|
+
a PR that cannot merge or a deploy that failed — it just churns.
|
|
283
308
|
|
|
284
309
|
0. **Diagnose PR & deploy state.** Run "Stuck-cause diagnosis" below. It resolves, in order:
|
|
285
|
-
- **PR already merged** → the build effectively completed; the
|
|
286
|
-
left the item `claimed` because the merge landed after its agent
|
|
287
|
-
or file anything — apply the scanner's post-agent env-resolved
|
|
288
|
-
directly (step 2 below, env-resolved), and record it. This is the
|
|
289
|
-
leaving merged-but-unadvanced items in `claimed`.
|
|
310
|
+
- **PR already merged** (checked first, staleness-exempt) → the build effectively completed; the
|
|
311
|
+
vendor build-intake's merge gate left the item `claimed` because the merge landed after its agent
|
|
312
|
+
returned. Do **not** re-dispatch or file anything — apply the scanner's post-agent env-resolved
|
|
313
|
+
`claimed → done` transition directly (step 2 below, env-resolved), and record it. This is the
|
|
314
|
+
recovery arm for build-intake leaving merged-but-unadvanced items in `claimed`.
|
|
290
315
|
- **PR only behind its base (a needed rebase)** → mechanically resolvable, **not** a human blocker.
|
|
291
316
|
Re-sync the branch in place so the already-enabled auto-merge can land (see diagnosis step 3).
|
|
292
317
|
Keep the item `claimed`; a later cycle confirms the merge and transitions. Do **not** file a fix
|
|
@@ -328,10 +353,15 @@ Run this for every stalled `claimed` build item **before** considering an agent
|
|
|
328
353
|
goal is to distinguish "work died mid-flight, just resume it" from "work is blocked on a concrete
|
|
329
354
|
external state that resuming the agent cannot fix."
|
|
330
355
|
|
|
331
|
-
**1. Find the associated PR(s) and deploy(s).** From the item's linked PRs (GitHub:
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
356
|
+
**1. Find the associated PR(s) and deploy(s).** From the item's linked PRs (GitHub: prefer the
|
|
357
|
+
native dev-link surface — `gh issue view <n> --json closedByPullRequestsReferences` — which lists
|
|
358
|
+
merged PRs that closed the issue, then `gh pr list --search <issue-ref> --state all`; JIRA:
|
|
359
|
+
dev-status / remote links; Linear: attachments and git-branch links) and the deploy(s) for the
|
|
360
|
+
resulting merge (the env-keyed `deploy.branches` mapping from `config-resolution`). The `--state all`
|
|
361
|
+
is load-bearing: `gh pr list --search` defaults to `--state open`, so a **merged** (closed) PR is
|
|
362
|
+
invisible on that surface — the exact state this recovery path exists to catch. A merged PR linked
|
|
363
|
+
only via search (no `Closes #` / native dev link) would otherwise never be discovered, and the leaf
|
|
364
|
+
would never recover. Read each PR with the vendor's native state, e.g. GitHub
|
|
335
365
|
`gh pr view <n> --json state,mergedAt,mergeable,mergeStateStatus,reviewDecision,statusCheckRollup,comments,reviews`.
|
|
336
366
|
|
|
337
367
|
**2. PR already merged → recover, don't re-dispatch.** If `state == MERGED`, the build is effectively
|
|
@@ -852,18 +882,24 @@ It MUST NOT:
|
|
|
852
882
|
for the detected lifecycle(s), up to `max_candidates`, via the Access layer reads.
|
|
853
883
|
3. **Order deterministically**, highest repair-confidence first:
|
|
854
884
|
1. terminal-labeled items that only need native close / complete / resolve,
|
|
855
|
-
2.
|
|
885
|
+
2. build `claimed` leaves whose linked PR is **already merged** — apply the env-resolved
|
|
886
|
+
`claimed → done` close-out (staleness-exempt; no re-dispatch). This MUST run before any rollup
|
|
887
|
+
bucket: a merged-PR leaf is a settled terminal state, and recovering it first means its parent
|
|
888
|
+
rolls up to its true derived state in the **same** cycle. If this ran after rollup (or last,
|
|
889
|
+
among generic stalled items), the parent would be reconciled against a not-yet-closed child and
|
|
890
|
+
the shipped leaf would linger another cron pass — the failure this ordering exists to prevent,
|
|
891
|
+
3. GitHub parents (PRDs missing native links for generated top-level work, or build Epic/Story
|
|
856
892
|
containers missing native links for prose/hierarchy children) needing structure-only repair,
|
|
857
|
-
|
|
858
|
-
|
|
893
|
+
4. rollup parents/PRDs whose child sets are all terminal (close-out),
|
|
894
|
+
5. rollup parents whose children have advanced to an intermediate env, or stale-`ready`
|
|
859
895
|
containers, that need their derived state applied (status-only reconciliation, no native
|
|
860
896
|
close),
|
|
861
|
-
|
|
862
|
-
|
|
897
|
+
6. `blocked` items whose dependencies are now **cleared** (safe, high-value, one-cycle wins),
|
|
898
|
+
7. `blocked` items whose **validation / quality-gate self-block now re-validates PASS** —
|
|
863
899
|
a human filled in the missing sections (Class B; equally safe and high-value),
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
900
|
+
8. `blocked` items with **new clarifying answers**,
|
|
901
|
+
9. GitHub missing-official-label normalization candidates,
|
|
902
|
+
10. **stalled** in-progress items (PR not merged), oldest activity first.
|
|
867
903
|
4. **Walk the ordered list**, evaluating each candidate (terminal close-out, rollup child tally,
|
|
868
904
|
staleness, dependency, answer checks), and repair **every** candidate that is actionable inside
|
|
869
905
|
the `max_candidates` cap. Continue after successful writes and after per-item errors.
|