pi-memory-evolution 0.2.1 → 0.2.2
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 +13 -0
- package/docs/releasing.md +7 -0
- package/docs/testing.md +39 -0
- package/docs/usage.md +25 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to pi-memory-evolution are documented here.
|
|
4
4
|
|
|
5
|
+
## [0.2.2](https://github.com/btnalit/pi-memory-evolution/compare/v0.2.1...v0.2.2) (2026-09-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* support npm 12 pack output and gate CLI compatibility ([#7](https://github.com/btnalit/pi-memory-evolution/issues/7)) ([4fde298](https://github.com/btnalit/pi-memory-evolution/commit/4fde29844b6d2c9e9497a656f75d8655e812d4c6))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Maintenance
|
|
14
|
+
|
|
15
|
+
* **deps-dev:** bump the development-minor-patch group across 1 directory with 3 updates ([#9](https://github.com/btnalit/pi-memory-evolution/issues/9)) ([03ef2be](https://github.com/btnalit/pi-memory-evolution/commit/03ef2beed637cfaa5c9dae22b26060c6f330d754))
|
|
16
|
+
* **deps-dev:** bump typescript from 5.9.3 to 7.0.2 ([#5](https://github.com/btnalit/pi-memory-evolution/issues/5)) ([dc97e2c](https://github.com/btnalit/pi-memory-evolution/commit/dc97e2c3306a0c1b07c34675d1eebaa7c73aaa8d))
|
|
17
|
+
|
|
5
18
|
## [0.2.1](https://github.com/btnalit/pi-memory-evolution/compare/v0.2.0...v0.2.1) (2026-09-08)
|
|
6
19
|
|
|
7
20
|
|
package/docs/releasing.md
CHANGED
|
@@ -9,6 +9,8 @@ Use Conventional Commit PR titles, such as `fix: retain work evidence` or
|
|
|
9
9
|
|
|
10
10
|
- Node 22.19.0 and Node 24: typecheck, regression/release-policy tests, package and
|
|
11
11
|
automation assertions, and an npm audit that fails on high/critical findings.
|
|
12
|
+
- Node 24 with explicit npm 10 and 12: checks, native installation and package builds;
|
|
13
|
+
both npm compatibility lanes are mandatory parts of the gate.
|
|
12
14
|
- Node 24: native Pi installation tests and real-host/fake-model integration.
|
|
13
15
|
- Workflow syntax checks with a checksum-pinned actionlint binary.
|
|
14
16
|
- Build an npm tarball, `SHA256SUMS` and a source-commit/integrity manifest. Pi loads
|
|
@@ -45,6 +47,11 @@ Release Please uses the built-in `GITHUB_TOKEN`, not a personal GitHub credentia
|
|
|
45
47
|
Because events generated by that token do not start normal push/PR workflows,
|
|
46
48
|
it explicitly dispatches CI for its same-repository release PRs. Publication is a
|
|
47
49
|
job in the same workflow, not a separate listener waiting for a suppressed event.
|
|
50
|
+
GitHub can additionally create a bot-PR run with `action_required`. If that run blocks
|
|
51
|
+
PR checks, a maintainer must review the changes and approve that run in Actions;
|
|
52
|
+
a successful dispatch alone does not override GitHub's platform approval policy.
|
|
53
|
+
The initial rollout required this approval. The workflow does not self-approve or
|
|
54
|
+
delete blocked checks to bypass it.
|
|
48
55
|
|
|
49
56
|
Version behavior follows Conventional Commits. `fix` normally bumps patch, `feat`
|
|
50
57
|
bumps minor, and breaking changes before 1.0 bump minor. Visible maintenance/docs/CI
|
package/docs/testing.md
CHANGED
|
@@ -17,6 +17,41 @@ helper scripts and memory state must not ship in the package.
|
|
|
17
17
|
|
|
18
18
|
`check:package` inspects `npm pack --dry-run --json`; it does not publish to npm.
|
|
19
19
|
|
|
20
|
+
## npm CLI compatibility
|
|
21
|
+
|
|
22
|
+
All consumers of `npm pack --json` share `scripts/lib/npm-pack.mjs`. npm 10/11
|
|
23
|
+
return an array; npm 12 returns a package-name map. The helper accepts both and
|
|
24
|
+
rejects invalid, empty, multi-package or mismatched results rather than picking an
|
|
25
|
+
arbitrary package. It is development tooling, not part of the runtime tarball.
|
|
26
|
+
|
|
27
|
+
CI explicitly installs and verifies npm majors **10 and 12** on Node 24, and runs
|
|
28
|
+
checks, installation and packaging in both lanes. The ordinary Node 22/24 jobs
|
|
29
|
+
also exercise their bundled npm. Node version alone does not define coverage of an
|
|
30
|
+
npm major. The pinned setup-node action has no `npm-version` input, so selecting
|
|
31
|
+
npm uses an explicit `npm install --global --ignore-scripts` step instead.
|
|
32
|
+
|
|
33
|
+
For local reproduction without changing the global npm installation:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx --yes npm@12 run check
|
|
37
|
+
npx --yes npm@12 run test:install
|
|
38
|
+
npx --yes npm@10 run check
|
|
39
|
+
npx --yes npm@10 run test:install
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
For an older checkout whose pack parser still fails under npm 12, the npm 10
|
|
43
|
+
commands are a temporary workaround until you update. `npm run` retains the npx
|
|
44
|
+
npm shim on PATH, so nested `execFileSync('npm', ...)` calls use the selected CLI;
|
|
45
|
+
the installation test prints the actual Node/Pi/npm versions. Declaring npm in
|
|
46
|
+
`engines` can document a requirement, but does not replace compatible parsing or
|
|
47
|
+
explicit version testing.
|
|
48
|
+
|
|
49
|
+
npm 12 also gates dependency lifecycle scripts through its script-allow policy.
|
|
50
|
+
This repository installs with `--ignore-scripts`; do not turn on all scripts merely
|
|
51
|
+
to make an installation pass. If a future dependency requires postinstall compilation,
|
|
52
|
+
review that dependency and update the isolated tests/policy explicitly. Pi's bundled
|
|
53
|
+
runtime and currently tested dependencies work with scripts disabled.
|
|
54
|
+
|
|
20
55
|
## Installation smoke test
|
|
21
56
|
|
|
22
57
|
```bash
|
|
@@ -44,6 +79,10 @@ host explicitly. The script prints the tested host version. The test:
|
|
|
44
79
|
6. Serves the actual tarball through a loopback npm registry, with a fresh cache,
|
|
45
80
|
then checks native `pi install npm:pi-memory-evolution`, repeat installation,
|
|
46
81
|
normal loading and removal. No host peer packages are served or installed.
|
|
82
|
+
7. Intentionally installs local and npm copies together, reproduces the host's
|
|
83
|
+
duplicate `memory_recall` failure, removes the unwanted source through the CLI,
|
|
84
|
+
and verifies startup and unchanged memory/history. This is configuration recovery,
|
|
85
|
+
not silently choosing which installed version should win.
|
|
47
86
|
|
|
48
87
|
The test whitelists child environment variables, gives Pi a fresh agent directory
|
|
49
88
|
and HOME, disables startup network operations, and uses private npm caches/config with
|
package/docs/usage.md
CHANGED
|
@@ -57,6 +57,31 @@ the old source before switching between npm/Git/local forms, which Pi treats as
|
|
|
57
57
|
different package identities. `pi remove <source>` does not erase memory state.
|
|
58
58
|
Restart or `/reload` all sessions using the extension after changing versions.
|
|
59
59
|
|
|
60
|
+
### Recovering from duplicate installation sources
|
|
61
|
+
|
|
62
|
+
Pi treats npm, Git and local paths as different package identities. Installing the
|
|
63
|
+
same source twice is idempotent, but keeping both a dev checkout and an npm copy can
|
|
64
|
+
register `memory_recall` twice and prevent Pi from starting. Updating either copy
|
|
65
|
+
does not remove the other. This is not a failure of a single-source upgrade.
|
|
66
|
+
|
|
67
|
+
Use terminal commands, not commands inside the broken Pi session:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pi list
|
|
71
|
+
# Keep npm; remove the local source shown by pi list:
|
|
72
|
+
pi remove /absolute/path/to/pi-memory-evolution
|
|
73
|
+
# Or keep the checkout; remove npm instead:
|
|
74
|
+
# pi remove npm:pi-memory-evolution
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Choose only the removal matching your intended source. If installed project-locally,
|
|
78
|
+
run `pi list --approve` and `pi remove <source> -l --approve` from that trusted project.
|
|
79
|
+
A manually configured `extensions` entry is not a package entry: remove that explicit
|
|
80
|
+
entry from the appropriate settings file as well. Then restart Pi and run
|
|
81
|
+
`/memory status`. Package CLI operations work without loading the conflicting
|
|
82
|
+
extensions, and removal leaves memory data intact. Do not delete the database or
|
|
83
|
+
rename the tool to hide the conflict; an old installation would still run its hooks.
|
|
84
|
+
|
|
60
85
|
## What happens automatically
|
|
61
86
|
|
|
62
87
|
- A successful `session_compact` saves a sanitized source and extracts up to 16
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-memory-evolution",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Automatic cross-session memory using Pi's active model, transactional local storage, and topic-based recall across directories.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -58,10 +58,10 @@
|
|
|
58
58
|
"check:package": "node scripts/check-package.mjs"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@earendil-works/pi-coding-agent": "0.85.
|
|
62
|
-
"@types/node": "22.
|
|
63
|
-
"typebox": "1.3.
|
|
64
|
-
"typescript": "
|
|
61
|
+
"@earendil-works/pi-coding-agent": "0.85.1",
|
|
62
|
+
"@types/node": "22.20.1",
|
|
63
|
+
"typebox": "1.3.27",
|
|
64
|
+
"typescript": "7.0.2",
|
|
65
65
|
"yaml": "2.9.0"
|
|
66
66
|
}
|
|
67
67
|
}
|