pi-legion 3.0.0 → 3.0.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/CHANGELOG.md +25 -0
- package/package.json +20 -16
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,31 @@ summary so you can see **2.x vs 0.16** without leaving the tree.
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [3.0.1] — 2026-10-18
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- **Published manifest no longer ships a `preinstall` hook.** 3.0.0 added a
|
|
19
|
+
pnpm-only `preinstall` guard meant for repository contributors, and npm always
|
|
20
|
+
packs `package.json`, so the hook shipped to every consumer. Pi installs
|
|
21
|
+
extensions with `npm install <spec> --prefix <agentDir>/npm --legacy-peer-deps`,
|
|
22
|
+
so `pi update --extensions` failed with
|
|
23
|
+
`Use pnpm to install dependencies (see CONTRIBUTING.md).` — npm exited 1 and
|
|
24
|
+
rolled the previously installed version back, which left the
|
|
25
|
+
"Package Updates Available" notice pointing at the same outdated version on
|
|
26
|
+
every start. The pnpm-only intent now lives in `devEngines.packageManager`,
|
|
27
|
+
which npm enforces for the repository root (`EBADDEVENGINES`) and ignores when
|
|
28
|
+
the package is installed as a dependency. The repository keeps all of its
|
|
29
|
+
contributor tooling declarations: `packageManager`, `engines.pnpm` and
|
|
30
|
+
CONTRIBUTING.md are unchanged. (Note: `pnpm pack` omits `packageManager` from
|
|
31
|
+
the tarball, which only affects that dev-only field in the published manifest —
|
|
32
|
+
npm consumers install and load the extension normally.)
|
|
33
|
+
- `test/unit/publish-manifest.test.ts` guards the published manifest against
|
|
34
|
+
install-phase scripts (`preinstall` / `install` / `postinstall`) and asserts the
|
|
35
|
+
pnpm requirement stays declared, so this cannot ship again silently.
|
|
36
|
+
- `release.yml` now fails the tag build when a published install-phase script was
|
|
37
|
+
reintroduced, before anything is staged.
|
|
38
|
+
|
|
14
39
|
## [3.0.0] — 2026-10-18
|
|
15
40
|
|
|
16
41
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-legion",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Pi Legion v2: recursive centurion trees on headless Pi RPC; shared SQLite WAL legion.db. Four-stage planning/implementing/reviewing/verifying state machine, parent/child/sibling legion_mail, three-layer /legion UI, upward MR trees, squad resume.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -48,19 +48,6 @@
|
|
|
48
48
|
"CONTRIBUTING.md",
|
|
49
49
|
"LICENSE"
|
|
50
50
|
],
|
|
51
|
-
"scripts": {
|
|
52
|
-
"preinstall": "node -e \"const ua=process.env.npm_config_user_agent||'';if(!ua.includes('pnpm')){console.error('Use pnpm to install dependencies (see CONTRIBUTING.md).');process.exit(1)}\"",
|
|
53
|
-
"typecheck": "tsc --noEmit",
|
|
54
|
-
"test": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/unit/*.test.ts",
|
|
55
|
-
"test:integration": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/integration/*.test.ts",
|
|
56
|
-
"test:live": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/live/*.test.ts",
|
|
57
|
-
"test:all": "pnpm run typecheck && pnpm run test && pnpm run test:integration",
|
|
58
|
-
"test:docker": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH sh -c 'echo \"RPC mainline Docker checks only; legacy Herdr workspace/kind/notification scenarios are archived under test/legacy/docker and require pi-legion v0.16.x\" && bash test/docker/verify-1-child-guard.sh && bash test/docker/verify-2-task-appendix.sh && bash test/docker/verify-3-readonly.sh && bash test/docker/verify-4-acceptance.sh && bash test/docker/verify-5-blocked.sh && bash test/docker/verify-6-cache.sh && bash test/docker/verify-7-budget.sh && bash test/docker/verify-8-verify-command.sh && bash test/docker/verify-9-worktree.sh && bash test/docker/verify-10-fallback.sh && bash test/docker/verify-11-nested-alias.sh'",
|
|
59
|
-
"prepublishOnly": "pnpm run typecheck && pnpm run test && pnpm run test:integration",
|
|
60
|
-
"mock-llm": "node --experimental-strip-types test/mock-llm/cli.ts",
|
|
61
|
-
"test:mock-llm": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/unit/mock-llm*.test.ts test/integration/mock-llm*.test.ts test/integration/railway-mock-e2e.test.ts",
|
|
62
|
-
"test:tui-visual": "docker build -q -f test/docker/Dockerfile.tui-sandbox -t ghcr.io/zzjcool/pi-legion/tui-sandbox:latest . >/dev/null && docker run --rm -v $(pwd):/plugin -w /plugin ghcr.io/zzjcool/pi-legion/tui-sandbox:latest bash test/docker/verify-tui-visual.sh"
|
|
63
|
-
},
|
|
64
51
|
"peerDependencies": {
|
|
65
52
|
"@earendil-works/pi-agent-core": "*",
|
|
66
53
|
"@earendil-works/pi-ai": "*",
|
|
@@ -94,9 +81,26 @@
|
|
|
94
81
|
"typebox": "^1.3.30",
|
|
95
82
|
"typescript": "^5.6.0"
|
|
96
83
|
},
|
|
97
|
-
"packageManager": "pnpm@9.15.9",
|
|
98
84
|
"engines": {
|
|
99
85
|
"node": ">=22",
|
|
100
86
|
"pnpm": ">=9"
|
|
87
|
+
},
|
|
88
|
+
"devEngines": {
|
|
89
|
+
"packageManager": {
|
|
90
|
+
"name": "pnpm",
|
|
91
|
+
"version": ">=9",
|
|
92
|
+
"onFail": "error"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"scripts": {
|
|
96
|
+
"typecheck": "tsc --noEmit",
|
|
97
|
+
"test": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/unit/*.test.ts",
|
|
98
|
+
"test:integration": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/integration/*.test.ts",
|
|
99
|
+
"test:live": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/live/*.test.ts",
|
|
100
|
+
"test:all": "pnpm run typecheck && pnpm run test && pnpm run test:integration",
|
|
101
|
+
"test:docker": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH sh -c 'echo \"RPC mainline Docker checks only; legacy Herdr workspace/kind/notification scenarios are archived under test/legacy/docker and require pi-legion v0.16.x\" && bash test/docker/verify-1-child-guard.sh && bash test/docker/verify-2-task-appendix.sh && bash test/docker/verify-3-readonly.sh && bash test/docker/verify-4-acceptance.sh && bash test/docker/verify-5-blocked.sh && bash test/docker/verify-6-cache.sh && bash test/docker/verify-7-budget.sh && bash test/docker/verify-8-verify-command.sh && bash test/docker/verify-9-worktree.sh && bash test/docker/verify-10-fallback.sh && bash test/docker/verify-11-nested-alias.sh'",
|
|
102
|
+
"mock-llm": "node --experimental-strip-types test/mock-llm/cli.ts",
|
|
103
|
+
"test:mock-llm": "env -u PI_SUBAGENT_ROLE -u PI_SUBAGENT_ACCEPTANCE_ROLE -u PI_SUBAGENT_ALLOW_NESTED -u PI_SUBAGENT_CHILD -u PI_SUBAGENT_UTILITY_CHILD -u PI_SUBAGENT_MAX_DEPTH -u PI_SUBAGENT_PARENT_PATH -u PI_LEGION_DB -u PI_LEGION_NODE_ID node --experimental-strip-types --test test/unit/mock-llm*.test.ts test/integration/mock-llm*.test.ts test/integration/railway-mock-e2e.test.ts",
|
|
104
|
+
"test:tui-visual": "docker build -q -f test/docker/Dockerfile.tui-sandbox -t ghcr.io/zzjcool/pi-legion/tui-sandbox:latest . >/dev/null && docker run --rm -v $(pwd):/plugin -w /plugin ghcr.io/zzjcool/pi-legion/tui-sandbox:latest bash test/docker/verify-tui-visual.sh"
|
|
101
105
|
}
|
|
102
|
-
}
|
|
106
|
+
}
|