@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 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.8.0",
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: 17
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:** Every Legion issue workspace is a `jj workspace` of one shared
160
- clone, so they all share one operation log: `jj undo`, `jj abandon`, and
161
- `jj op restore|revert|abandon|undo` rewrite it for every tree at once. The extension refuses them in every
162
- phase-worker pane before they run — a `bash` command in any position of a pipeline or `&&`
163
- chain, with or without `-R`, judged on the whole argument list (a supervised service's start
164
- included); `eval` code; and stdin written to a service (a `write` to `proc://<id>`) — from your
165
- own tool calls and from any `task` subagent you spawn (it runs in your pane, against the same
166
- log), and a `bash` command whose quoted text merely mentions `jj`
167
- with one of those words (a heredoc, an echo, a commit message) is refused too: write such text
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): every issue
402
- workspace shares one clone, so another role's push moves `legion/<KEY>@origin` here at once, and
403
- a push that did not descend from it would move the remote branch sideways onto your commit and
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.8.0",
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": 17
15
+ "daemonApiVersion": 18
16
16
  },
17
17
  "repository": {
18
18
  "type": "git",