@sjawhar/pi-legion 10.22.1 → 10.23.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
|
@@ -14480,7 +14480,7 @@ var dispatchToolSpecs = [
|
|
|
14480
14480
|
spec: z2.string().describe(`Optional initial primary-document markdown. ${SPEC_WRITING_POINTER}`).optional(),
|
|
14481
14481
|
labels: z2.array(z2.string({ min: 1, max: 40 }), { max: 20 }).describe("Optional initial labels, at most 20 labels of up to 40 characters.").optional(),
|
|
14482
14482
|
priority: z2.number({ int: true, min: 0, max: 3 }).describe("Optional coarse priority, a number from 0 to 3: 0 is highest and 3 is lowest.").optional(),
|
|
14483
|
-
assignee: z2.string().describe("Email of the person who answers this issue's asks (someone who has signed in to Dispatch); defaults to your owner when you act for a person, else the parent's assignee, else unassigned.").optional(),
|
|
14483
|
+
assignee: z2.string().describe("Email of the person who answers this issue's asks (someone who has signed in to Dispatch); defaults to your owner when you act for a person, else the parent's assignee, else the project's default assignee when it still names a person who has signed in, else unassigned.").optional(),
|
|
14484
14484
|
components: componentsArgument(z2).optional(),
|
|
14485
14485
|
repo: z2.string().describe("The repository the issue targets, owner/name, mapped to the issue's project in Settings; a child inherits its parent's when unset, and an issue with none on its parent chain takes the project's default.").optional()
|
|
14486
14486
|
})
|
|
@@ -14858,7 +14858,7 @@ var dispatchToolSpecs = [
|
|
|
14858
14858
|
{
|
|
14859
14859
|
name: "dispatch_whoami",
|
|
14860
14860
|
example: {},
|
|
14861
|
-
description: "Who Dispatch takes this session for: {session, owner}. owner is the lowercase email of the person whose personal token you run under (the
|
|
14861
|
+
description: "Who Dispatch takes this session for: {session, owner}. owner is the lowercase email of the person whose personal token you run under (the first choice of assignee for issues you create), or null under the shared token, in which case a create with no assignee falls back to the parent's assignee and then to the project's default assignee.",
|
|
14862
14862
|
arguments: () => ({}),
|
|
14863
14863
|
strict: true
|
|
14864
14864
|
}
|
|
@@ -16937,7 +16937,7 @@ async function bootLegionClaim(host2) {
|
|
|
16937
16937
|
// package.json
|
|
16938
16938
|
var package_default = {
|
|
16939
16939
|
name: "@sjawhar/pi-legion",
|
|
16940
|
-
version: "10.
|
|
16940
|
+
version: "10.23.1",
|
|
16941
16941
|
license: "Apache-2.0",
|
|
16942
16942
|
type: "module",
|
|
16943
16943
|
omp: {
|
|
@@ -77,7 +77,8 @@ exercise a criterion end to end, building that path is a child issue of this tre
|
|
|
77
77
|
relationship from `--parent`. Keep the returned issue keys in ordered waves; a child is
|
|
78
78
|
inert until released. Do not pass `--assignee`: the default keeps the tree's questions in one
|
|
79
79
|
Inbox — under the shared token a child inherits its parent's assignee (the human who
|
|
80
|
-
answers the tree's asks)
|
|
80
|
+
answers the tree's asks), and where no parent names one the project's default assignee, which
|
|
81
|
+
a person sets on the Settings page; under a personal token it goes to that token's owner, whom
|
|
81
82
|
`dispatch whoami` names. Set it only when a human told you a specific person owns that child.
|
|
82
83
|
|
|
83
84
|
A change across repositories gets one child per repository, each created with
|
|
@@ -282,8 +282,9 @@ and the person it names, are:
|
|
|
282
282
|
Each `curl` in this skill and its references reads `DISPATCH_URL` and `DISPATCH_TOKEN_FILE`, which
|
|
283
283
|
`legion controller start` sets only when `controller.yaml` names `dispatch_url`. A read that fails
|
|
284
284
|
or prints no JSON array admits nothing and acts on nothing, and an assignment that does not print
|
|
285
|
-
the issue with its new `assignee` leaves
|
|
286
|
-
nobody has signed in to Dispatch with). Name either,
|
|
285
|
+
the issue with its new `assignee` leaves the issue's assignee as the read showed it
|
|
286
|
+
(`400 ASSIGNEE_NOT_ALLOWED` names an email nobody has signed in to Dispatch with). Name either,
|
|
287
|
+
with its first line, in your summary.
|
|
287
288
|
|
|
288
289
|
## Daily report (Go daemon)
|
|
289
290
|
|
|
@@ -307,9 +308,11 @@ EOF
|
|
|
307
308
|
legion({ op: "set_status", issue: "<report KEY>", status: "icebox" })
|
|
308
309
|
```
|
|
309
310
|
|
|
310
|
-
With no person known, leave out `--assignee
|
|
311
|
-
|
|
312
|
-
|
|
311
|
+
With no person known, leave out `--assignee`: the issue then goes to your token's owner, or, under
|
|
312
|
+
the shared token, to the project's default assignee when a person set one on the Settings page, and
|
|
313
|
+
is otherwise unassigned. While the issue's `Assignee:` says `unassigned`, each report opens with
|
|
314
|
+
one sentence asking a person to take the issue from its header, since its asks reach only the
|
|
315
|
+
Inbox's `Unassigned` filter.
|
|
313
316
|
|
|
314
317
|
Each time you read it, keep it answerable. `Status: done` means someone closed it: Dispatch
|
|
315
318
|
refuses an ask or a message there (`409 ISSUE_CLOSED`) and hides its open asks, so reopen it with
|
|
@@ -442,8 +445,10 @@ themselves: an issue reaches Legion only when a person hands it over
|
|
|
442
445
|
is promised only when the `Design gate policy:` line of your system prompt, which
|
|
443
446
|
whoever launched you writes from the daemon's own configuration, says
|
|
444
447
|
`gates.design: root-issues`. Under `gates.design: off` nobody approves a design, so drop "and
|
|
445
|
-
its design approval" (and "or its design approval") from the sentence.
|
|
446
|
-
|
|
448
|
+
its design approval" (and "or its design approval") from the sentence. Take the line from the
|
|
449
|
+
read, never from how the issue was created: an issue filed with no assignee still lands on the
|
|
450
|
+
project's default assignee where a person set one. An unassigned root still runs; its
|
|
451
|
+
architect's asks reach no default Inbox list, only the `Unassigned` filter.
|
|
447
452
|
|
|
448
453
|
## Architect escalation
|
|
449
454
|
|
|
@@ -81,7 +81,8 @@ For a person's mention, take the first of these that fits.
|
|
|
81
81
|
Legion take…"); a request for someone to look at something, or one that does not say who, gets
|
|
82
82
|
no label and waits for a person to hand it over. Never label a request outside the scope the
|
|
83
83
|
deployment instructions state. Reply with the new issue's key, its title, the link and assignee
|
|
84
|
-
the `Created` line names (Dispatch assigns the issue to your token's owner
|
|
84
|
+
the `Created` line names (naming nobody, Dispatch assigns the issue to your token's owner, or,
|
|
85
|
+
under the shared token, to the project's default assignee when a person set one),
|
|
85
86
|
and whether Legion will take it: with the label, triage admits it in its next turn unless it
|
|
86
87
|
should wait.
|
|
87
88
|
- **Something an issue's architect owns.** A question about a tree's design, a change of direction,
|
|
@@ -13,8 +13,11 @@ which you have; those need no runner.
|
|
|
13
13
|
|
|
14
14
|
- `psql` — the Dispatch browser suite (`bun run e2e`) resets its database for every spec through
|
|
15
15
|
`packages/dispatch/e2e/psql.ts`, which `seed.ts` calls, and the local stack (`bun run
|
|
16
|
-
dispatch:local`, `packages/dispatch/e2e/local-instance.ts`) refuses to start without
|
|
17
|
-
`
|
|
16
|
+
dispatch:local`, `packages/dispatch/e2e/local-instance.ts`) refuses to start without `go`,
|
|
17
|
+
`psql`, `flock` and `openssl` on `PATH`, and without `docker` too unless a `DATABASE_URL` is
|
|
18
|
+
given. The image carries `go`, `flock` and `openssl`, a `DATABASE_URL` stands in for `docker`,
|
|
19
|
+
and `psql` was the one a role had no way to supply — so a role whose change owes that suite can
|
|
20
|
+
run it.
|
|
18
21
|
- `redis-cli` — no repository of the project speaks Redis today; it is carried anyway, at about a
|
|
19
22
|
megabyte, because a second image roll costs more than a megabyte.
|
|
20
23
|
- `sqlite3` — a repository's own SQLite fixture or database has no other way to open from a shell,
|
|
@@ -88,8 +91,10 @@ variable the runtime sets for you there or under a path on that volume your harn
|
|
|
88
91
|
itself — but outside the issue's workspace (`$LEGION_WORKSPACE`, under `/legion/workspaces`) and
|
|
89
92
|
the runtime's own directories (`/legion/repos`, `/legion/feed`, `/legion/sessions`); and after
|
|
90
93
|
the command exits nothing else resolves differently. The workspace is excluded because its jj
|
|
91
|
-
working copy tracks every new file
|
|
92
|
-
|
|
94
|
+
working copy tracks every new file under jj's `snapshot.max-new-file-size` (1 MiB in a role
|
|
95
|
+
container), so a root written there is added to the change every role shares, and a larger new
|
|
96
|
+
file is left untracked, every jj command in the workspace then warning `Refused to snapshot some
|
|
97
|
+
files`. The one write into it that is sanctioned is a repository's own dependency install into
|
|
93
98
|
its ignored directories, below. The variables the runtime sets on the volume, where a tool's own
|
|
94
99
|
cache already goes, are
|
|
95
100
|
`XDG_CACHE_HOME` (`/legion/scratch/cache`), `XDG_DATA_HOME`, `XDG_STATE_HOME`, `TMPDIR`, `GOCACHE`,
|