@sjawhar/pi-legion 8.8.0 → 8.9.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/legion.js +5 -4
- package/dist/skills/legion-worker/SKILL.md +13 -13
- package/package.json +2 -2
package/dist/legion.js
CHANGED
|
@@ -13700,6 +13700,7 @@ function activeDispatchConfig(env, options = {}) {
|
|
|
13700
13700
|
}
|
|
13701
13701
|
|
|
13702
13702
|
// ../contracts/src/dispatch-api.ts
|
|
13703
|
+
var ISSUE_TITLE_MAX = 1000;
|
|
13703
13704
|
var MAX_ISSUE_PAGE_LIMIT = 250;
|
|
13704
13705
|
var DEFAULT_ISSUE_PAGE_LIMIT = 50;
|
|
13705
13706
|
var ASK_TURNS = ["human", "agent"];
|
|
@@ -14022,7 +14023,7 @@ var dispatchToolSpecs = [
|
|
|
14022
14023
|
description: "Create a native Dispatch issue for newly tracked work. Search first with dispatch search; if potentially duplicate issues exist, this returns 409 POSSIBLE_DUPLICATE unless --force is set after reading them. " + "A spec holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK. " + `Do not use it when an existing issue already covers the work; read or update that issue instead. ${ISSUE_REFERENCE}`,
|
|
14023
14024
|
arguments: (z2) => ({
|
|
14024
14025
|
project: z2.string().describe("Project key for the new issue."),
|
|
14025
|
-
title: z2.string().describe("Concise issue title."),
|
|
14026
|
+
title: z2.string({ max: ISSUE_TITLE_MAX }).describe("Concise issue title, at most 1,000 characters."),
|
|
14026
14027
|
parent: z2.string().describe("Optional parent issue.").optional(),
|
|
14027
14028
|
external: z2.string().describe("Optional external issue reference.").optional(),
|
|
14028
14029
|
force: z2.boolean().describe("Create even though POSSIBLE_DUPLICATE listed similar issues; pass it only after reading them.").optional(),
|
|
@@ -14045,7 +14046,7 @@ var dispatchToolSpecs = [
|
|
|
14045
14046
|
issue: z2.string().describe(ISSUE_REFERENCE),
|
|
14046
14047
|
status: z2.enum(ISSUE_STATUSES).describe("New lifecycle status.").optional(),
|
|
14047
14048
|
reason: z2.string({ max: 2000 }).describe("Required with status done, and only with it: why the issue is closing, at most 2,000 characters. Posted on the issue as a message before it closes.").optional(),
|
|
14048
|
-
title: z2.string({ min: 1 }).describe("Replacement title.").optional(),
|
|
14049
|
+
title: z2.string({ min: 1, max: ISSUE_TITLE_MAX }).describe("Replacement title, at most 1,000 characters.").optional(),
|
|
14049
14050
|
labels: z2.array(z2.string({ min: 1, max: 40 }), { max: 20 }).describe("Replacement label set, at most 20 labels of up to 40 characters; replaces every existing label.").optional(),
|
|
14050
14051
|
priority: z2.number({ int: true, min: 0, max: 3 }).nullable().optional().describe("Coarse priority: 0 is P0 (highest) through 3 is P3 (lowest); null clears it."),
|
|
14051
14052
|
external_links: z2.array(z2.string({ min: 1 })).describe("URLs to link; merged into the issue's existing external links by URL.").optional(),
|
|
@@ -15309,7 +15310,7 @@ function onEnvoyRoleRegained(listener) {
|
|
|
15309
15310
|
// package.json
|
|
15310
15311
|
var package_default = {
|
|
15311
15312
|
name: "@sjawhar/pi-legion",
|
|
15312
|
-
version: "8.
|
|
15313
|
+
version: "8.9.1",
|
|
15313
15314
|
license: "Apache-2.0",
|
|
15314
15315
|
type: "module",
|
|
15315
15316
|
omp: {
|
|
@@ -15321,7 +15322,7 @@ var package_default = {
|
|
|
15321
15322
|
]
|
|
15322
15323
|
},
|
|
15323
15324
|
legion: {
|
|
15324
|
-
daemonApiVersion:
|
|
15325
|
+
daemonApiVersion: 18
|
|
15325
15326
|
},
|
|
15326
15327
|
repository: {
|
|
15327
15328
|
type: "git",
|
|
@@ -156,16 +156,16 @@ before new work: anything unpushed is gone. That message stays in history; recon
|
|
|
156
156
|
- **Before pushing, check ancestry:** `jj -R "$LEGION_WORKSPACE" log -r 'ancestors(@, 5)'`
|
|
157
157
|
— verify only your issue's commits are in the chain, not unrelated work.
|
|
158
158
|
|
|
159
|
-
**Shared operation safety:**
|
|
160
|
-
clone
|
|
161
|
-
`jj op restore|revert|abandon|undo` rewrite
|
|
162
|
-
|
|
163
|
-
chain, with or without `-R`, judged on the
|
|
164
|
-
included); `eval` code; and stdin written to a
|
|
165
|
-
own tool calls and from any `task` subagent you
|
|
166
|
-
log), and a `bash` command whose quoted text merely
|
|
167
|
-
with one of those words (a heredoc, an echo, a commit message) is refused too: write
|
|
168
|
-
with the `write` tool or say "operation-log rollback" instead. `jj restore <paths>`,
|
|
159
|
+
**Shared operation safety:** Under tmux every issue workspace is a `jj workspace` of one shared
|
|
160
|
+
clone and operation log; under Kubernetes each issue pod has its own, shared by that issue's roles
|
|
161
|
+
alone. Either way `jj undo`, `jj abandon`, and `jj op restore|revert|abandon|undo` rewrite a log
|
|
162
|
+
other agents work in. The extension refuses them in every phase-worker pane before they run — a
|
|
163
|
+
`bash` command in any position of a pipeline or `&&` chain, with or without `-R`, judged on the
|
|
164
|
+
whole argument list (a supervised service's start included); `eval` code; and stdin written to a
|
|
165
|
+
service (a `write` to `proc://<id>`) — from your own tool calls and from any `task` subagent you
|
|
166
|
+
spawn (it runs in your pane, against the same log), and a `bash` command whose quoted text merely
|
|
167
|
+
mentions `jj` with one of those words (a heredoc, an echo, a commit message) is refused too: write
|
|
168
|
+
such text with the `write` tool or say "operation-log rollback" instead. `jj restore <paths>`,
|
|
169
169
|
`jj op log`, and `jj op show` stay allowed. Recover forward only: a new commit
|
|
170
170
|
(`jj -R "$LEGION_WORKSPACE" new`) or `jj -R "$LEGION_WORKSPACE" restore <paths>` of files.
|
|
171
171
|
Anything else, stop and send the owning architect the `jj -R "$LEGION_WORKSPACE" log`
|
|
@@ -398,9 +398,9 @@ re-runs it at once. While the pull request conflicts with its base (GitHub shows
|
|
|
398
398
|
a body edit re-judges nothing there either; a push cures both, but only once the pull request is
|
|
399
399
|
mergeable, so the implementer forward-merges a conflicting one first (*Reintegrating the base* in
|
|
400
400
|
`skill://legion-worker/references/conflicts-and-rewrites.md`). Its ancestry check refuses
|
|
401
|
-
unless `@-` descends from `legion/<KEY>@origin` (or the branch is not on GitHub yet):
|
|
402
|
-
|
|
403
|
-
a push
|
|
401
|
+
unless `@-` descends from `legion/<KEY>@origin` (or the branch is not on GitHub yet): your issue's
|
|
402
|
+
roles share one clone (under tmux every issue does), so another role's push moves the remote branch
|
|
403
|
+
here at once, and a push not descending from it would move it sideways onto your commit and
|
|
404
404
|
drop theirs. A handoff commit never sits on an implementer's unpushed chain: when the issue moves
|
|
405
405
|
back to planning, the implementer's unpushed commits stay off the bookmark until the implementer
|
|
406
406
|
returns, and the planner writes its handoff on the remote tip.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjawhar/pi-legion",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.9.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"omp": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
]
|
|
13
13
|
},
|
|
14
14
|
"legion": {
|
|
15
|
-
"daemonApiVersion":
|
|
15
|
+
"daemonApiVersion": 18
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|