@sjawhar/pi-legion 10.19.9 → 10.19.10
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
|
@@ -16932,7 +16932,7 @@ async function bootLegionClaim(host2) {
|
|
|
16932
16932
|
// package.json
|
|
16933
16933
|
var package_default = {
|
|
16934
16934
|
name: "@sjawhar/pi-legion",
|
|
16935
|
-
version: "10.19.
|
|
16935
|
+
version: "10.19.10",
|
|
16936
16936
|
license: "Apache-2.0",
|
|
16937
16937
|
type: "module",
|
|
16938
16938
|
omp: {
|
|
@@ -170,14 +170,30 @@ what failed.
|
|
|
170
170
|
|
|
171
171
|
Then push both commits with one push, so one CI run covers them (`<KEY>` is your `LEGION_ISSUE`):
|
|
172
172
|
`cd -- "$LEGION_WORKSPACE" && jj -R "$LEGION_WORKSPACE" bookmark set legion/<KEY> -r @- && jj -R "$LEGION_WORKSPACE" git push --bookmark legion/<KEY>`.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
the push is refused after step 4 wrote the body (`jj git push` refuses a branch another role
|
|
173
|
+
Its head's message never ends with `skip-checks: true` and carries none of GitHub's
|
|
174
|
+
`[skip ci]`-family keywords (`skill://legion-worker`, *Every role pushes its own commits*).
|
|
175
|
+
Retro's push never carries the line, whatever paths it touches, because it is the last push before the merge and a base that requires a check will not merge a head whose checks never ran.
|
|
176
|
+
When the push is refused after step 4 wrote the body (`jj git push` refuses a branch another role
|
|
177
177
|
moved; never force), write `<dir>/before.md` back the same way before you report the refusal to
|
|
178
|
-
the architect with its output, so the body matches the head GitHub has.
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
the architect with its output, so the body matches the head GitHub has.
|
|
179
|
+
|
|
180
|
+
When you have already pushed a head that wrongly carries the line — under an older copy of these
|
|
181
|
+
instructions, say — read that pushed head's own commit message first and confirm it ends with
|
|
182
|
+
`skip-checks: true`:
|
|
183
|
+
`cd -- "$LEGION_WORKSPACE" && jj -R "$LEGION_WORKSPACE" log -r <the pushed head> --no-graph -T description`.
|
|
184
|
+
The fix is to describe that same commit again without the line and push it once, which is the
|
|
185
|
+
rewrite of an already-pushed commit:
|
|
186
|
+
`skill://legion-worker/references/conflicts-and-rewrites.md#rewriting-pushed-commits`. Run that
|
|
187
|
+
section's guard first; a non-empty guard result means another tree's work is built on the commit,
|
|
188
|
+
so do not rewrite it — report the listed commits to the architect instead. Once the guard has
|
|
189
|
+
cleared, the bookmark moves backwards with `--allow-backwards` and the branch is pushed once:
|
|
190
|
+
that is the one non-fast-forward move the rewrite section sanctions, and not the force this
|
|
191
|
+
skill's push step forbids when `jj git push` refuses a branch another role moved. The rewritten
|
|
192
|
+
head is a code head, so GitHub runs the base branch's required checks on it from scratch, and the
|
|
193
|
+
merge waits for them.
|
|
194
|
+
|
|
195
|
+
After the push, post one Dispatch message on the issue — `--issue` is your `LEGION_ISSUE`; Legion
|
|
196
|
+
issues live on Dispatch, never on a GitHub
|
|
181
197
|
issue, so no `gh issue` write and no GitHub-issue comment — naming the documents, the
|
|
182
198
|
one-to-three most useful takeaways, the two proofs you read, and the production check that
|
|
183
199
|
follows the merge's close of the issue. The message must carry this revived implementer's structured
|
|
@@ -386,27 +386,27 @@ cd -- "$LEGION_WORKSPACE" && jj -R "$LEGION_WORKSPACE" bookmark set legion/<KEY>
|
|
|
386
386
|
|
|
387
387
|
A push whose commits touch only `.legion/` (a handoff-only push) ends its head's commit message
|
|
388
388
|
with `skip-checks: true` as the last line, preceded by two empty lines, so GitHub starts no
|
|
389
|
-
workflow run for it and the daemon carries the code head's verdict to it.
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
389
|
+
workflow run for it and the daemon carries the code head's verdict to it.
|
|
390
|
+
Retro's push never carries the line, whatever paths it touches, because it is the last push before the merge and a base that requires a check will not merge a head whose checks never ran.
|
|
391
|
+
GitHub honours the trailer only in that shape — the last line, after two empty lines; one empty line
|
|
392
|
+
is not enough, and GitHub then starts every workflow as if the line were not there (a planner's
|
|
393
|
+
handoff push did exactly that in the first live run of this rule). jj keeps the two lines as
|
|
394
|
+
written, where `git commit`'s default cleanup would collapse them. Write the line with trailers off
|
|
395
|
+
for the one describe, since the pane's jj overlay would otherwise append `Omp-Session:` after it:
|
|
395
396
|
|
|
396
397
|
```bash
|
|
397
398
|
jj -R "$LEGION_WORKSPACE" describe -r @- --config 'templates.commit_trailers=""' -m "$(jj -R "$LEGION_WORKSPACE" log -r @- --no-graph -T description)"$'\n\n\nskip-checks: true'
|
|
398
399
|
```
|
|
399
400
|
|
|
400
|
-
Every other push — code, red tests, `docs/solutions/`,
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
`CONFLICTING`), no workflow triggered `on: pull_request` runs for any of its activity types, so
|
|
401
|
+
Every other push — code, red tests, `docs/solutions/`, a forward merge, a rewrite — carries no such
|
|
402
|
+
line and none of GitHub's bracket keywords (`[skip ci]`, `[ci skip]`, `[no ci]`, `[skip actions]`,
|
|
403
|
+
`[actions skip]`), which start no workflow wherever they stand. The daemon classifies a push by the
|
|
404
|
+
paths its commits touch, never by the trailer: a wrong trailer stalls the issue (a trailered code
|
|
405
|
+
push gets no verdict carried; a head with no CI is refused at READY) and never passes it. While the
|
|
406
|
+
head commit carries `skip-checks: true`, a pull-request body edit alone starts no GitHub workflow
|
|
407
|
+
run, so a check that re-judges the body re-runs on that head only after a later push; on a code
|
|
408
|
+
head the same edit re-runs it at once. While the pull request conflicts with its base (GitHub shows
|
|
409
|
+
it `CONFLICTING`), no workflow triggered `on: pull_request` runs for any of its activity types, so
|
|
410
410
|
a body edit re-judges nothing there either; a push cures both, but only once the pull request is
|
|
411
411
|
mergeable, so the implementer forward-merges a conflicting one first (*Reintegrating the base* in
|
|
412
412
|
`skill://legion-worker/references/conflicts-and-rewrites.md`).
|
|
@@ -23,9 +23,10 @@ it, and any other change to the head voids it.
|
|
|
23
23
|
`task(agent="thermonuclear-code-quality")` once at that head — the head the round reviews —
|
|
24
24
|
and records the verdict. The `CI` fact is the checks that stand for the code under review:
|
|
25
25
|
those GitHub ran for the newest push of the branch that started `pull_request` workflows, when
|
|
26
|
-
every commit above that push's head changes only `.legion/` (
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
every commit above that push's head changes only `.legion/` (GitHub starts no workflow run for a
|
|
27
|
+
head whose commit message carries `skip-checks: true`, which every handoff-only push before
|
|
28
|
+
retro does; retro's push carries no such line, so its head does get GitHub's workflow runs of
|
|
29
|
+
its own). With `<o>/<r>`, `<n>`, `<base>`, `<headRefName>` and `<headRefOid>` from
|
|
29
30
|
`gh pr view <n> --json baseRefName,headRefOid,headRefName`, four reads. The required set is the
|
|
30
31
|
base branch's rulesets' required checks and its branch protection's, when it has any. Both
|
|
31
32
|
branch endpoints take the base as a URL path, each segment escaped and each `/` kept (a raw `#`
|