pi-memory-evolution 0.2.0 → 0.2.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 +7 -0
- package/README.cn.md +114 -0
- package/README.md +63 -43
- package/assets/overview.png +0 -0
- package/docs/design.md +3 -2
- package/docs/releasing.md +121 -0
- package/docs/testing.md +7 -4
- package/package.json +11 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to pi-memory-evolution are documented here.
|
|
4
4
|
|
|
5
|
+
## [0.2.1](https://github.com/btnalit/pi-memory-evolution/compare/v0.2.0...v0.2.1) (2026-09-08)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Automation
|
|
9
|
+
|
|
10
|
+
* gate changes and automate verified npm releases ([#2](https://github.com/btnalit/pi-memory-evolution/issues/2)) ([87f9245](https://github.com/btnalit/pi-memory-evolution/commit/87f9245ef799870723ef1f6478eb623d2a37a958))
|
|
11
|
+
|
|
5
12
|
## [0.2.0] - 2026-09-08
|
|
6
13
|
|
|
7
14
|
### Changed
|
package/README.cn.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# pi-memory-evolution
|
|
2
|
+
|
|
3
|
+
[English](README.md) · 简体中文
|
|
4
|
+
|
|
5
|
+
[](https://github.com/btnalit/pi-memory-evolution/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/pi-memory-evolution)
|
|
7
|
+
|
|
8
|
+
为 [Pi](https://pi.dev) 提供持久记忆,让项目背景、个人偏好和工作进展能够跨会话延续。
|
|
9
|
+
|
|
10
|
+
扩展自动学习值得保留的信息,在后续对话中按主题注入相关内容,也支持跨目录召回。不需要反复说“记住”,不需要维护审批队列。
|
|
11
|
+
|
|
12
|
+
## 功能
|
|
13
|
+
|
|
14
|
+
- **自动学习与更新**:从对话摘要、需求和纠正中提取记忆,根据实际工具结果更新已有项目状态;保留来源和变更历史,支持衰退、排序与撤销。
|
|
15
|
+
- **相关内容注入**:结合当前问题和近期用户上下文选择记忆,过滤弱匹配和失效状态;没有匹配就不填充无关内容。
|
|
16
|
+
- **跨会话召回**:在共享记忆库的不同会话、目录中查找背景;提供只读 `memory_recall` 工具,供助手在任务中途补查。
|
|
17
|
+
|
|
18
|
+
学习使用 Pi 当前模型和已有认证,无需另配 API Key、向量数据库或嵌入服务。
|
|
19
|
+
|
|
20
|
+
## 安装
|
|
21
|
+
|
|
22
|
+
需要 **Pi 0.85+**,并已配置可用模型。使用 npm 版 Pi 时需要 **Node.js 22.19+**。
|
|
23
|
+
|
|
24
|
+
### npm
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pi install npm:pi-memory-evolution
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Git
|
|
31
|
+
|
|
32
|
+
也可以直接安装 Git 默认分支,需要本机有 Git 和 npm:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pi install https://github.com/btnalit/pi-memory-evolution
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**两种方式选一种**,不要重复安装。然后在 Pi 中执行:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
/reload
|
|
42
|
+
/memory status
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
出现 `SQLite ok (schema 5)` 表示存储初始化成功。后续正常使用 Pi 即可,学习和召回会自动运行。
|
|
46
|
+
|
|
47
|
+
## 使用
|
|
48
|
+
|
|
49
|
+
在对话中说明需求,例如:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
atlas-service 的核心需求是自动备份和故障恢复。
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
之后可以在新会话中继续询问:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
你还记得 atlas-service 的核心需求吗?
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
学习在后台完成,并非每句话都会保存。可用以下命令查看和维护记忆:
|
|
62
|
+
|
|
63
|
+
| 命令 | 用途 |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| `/memory list` | 浏览记忆 |
|
|
66
|
+
| `/memory search <主题>` | 搜索相关内容 |
|
|
67
|
+
| `/memory show <id>` | 查看内容和来源 |
|
|
68
|
+
| `/memory learning` | 查看采集、更新及实际变更结果 |
|
|
69
|
+
| `/memory explain` | 查看上一次自动注入的选择原因 |
|
|
70
|
+
| `/memory correct <id> <内容>` | 纠正记忆 |
|
|
71
|
+
| `/memory forget <id>` | 停止召回该记忆 |
|
|
72
|
+
|
|
73
|
+
完整命令、安装迁移和排错方法见[使用指南](docs/usage.md)。
|
|
74
|
+
|
|
75
|
+
## 更新与卸载
|
|
76
|
+
|
|
77
|
+
npm 安装:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pi update npm:pi-memory-evolution
|
|
81
|
+
pi remove npm:pi-memory-evolution
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Git 安装请把上面的包来源替换为安装时使用的仓库 URL。操作后执行 `/reload` 或重启 Pi。卸载扩展不会删除记忆库;升级数据库结构前请先退出共用该库的 Pi 进程并备份。
|
|
85
|
+
|
|
86
|
+
## 数据与边界
|
|
87
|
+
|
|
88
|
+
数据默认保存在 `~/.pi/agent/agent-suite/memory-evolution/`,使用本地 SQLite。`PI_CODING_AGENT_DIR` 可改变存储前缀;不同工作目录默认共享记忆库。
|
|
89
|
+
|
|
90
|
+
学习会将经过过滤的来源内容发送给当前模型,并消耗相应额度。记忆不是经过独立验证的事实,匹配和敏感信息过滤也并非万无一失;重要内容仍需核实。详见[存储与隐私](docs/usage.md#local-storage-and-provenance)。
|
|
91
|
+
|
|
92
|
+
## 开发
|
|
93
|
+
|
|
94
|
+
在源码仓库中运行:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm ci --ignore-scripts
|
|
98
|
+
npm run check
|
|
99
|
+
npm run test:install
|
|
100
|
+
npm run test:pi
|
|
101
|
+
npm run build
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
CI 自动检查类型、回归、包内容、安装和模拟模型集成;构建产出可安装的 npm 压缩包及校验值。版本和更新记录由发布 PR 自动维护,合并且验证通过后自动发包;依赖更新也走 PR 门禁。
|
|
105
|
+
|
|
106
|
+
安装测试使用隔离环境,集成测试使用真实 Pi 和模拟模型,不产生付费模型调用。详见[测试说明](docs/testing.md)和[发布流程](docs/releasing.md)。
|
|
107
|
+
|
|
108
|
+
## 文档
|
|
109
|
+
|
|
110
|
+
[使用指南](docs/usage.md) · [架构设计](docs/design.md) · [记忆质量](docs/core-quality.md) · [更新记录](CHANGELOG.md)
|
|
111
|
+
|
|
112
|
+
## 许可证
|
|
113
|
+
|
|
114
|
+
[MIT](LICENSE)
|
package/README.md
CHANGED
|
@@ -1,106 +1,126 @@
|
|
|
1
1
|
# pi-memory-evolution
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/btnalit/pi-memory-evolution/actions/workflows/ci.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/pi-memory-evolution)
|
|
5
|
+
[](LICENSE)
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
English · [简体中文](README.cn.md)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
Persistent, evidence-aware memory for [Pi](https://pi.dev). Keep useful preferences,
|
|
10
|
+
project context and work progress across sessions—without repeatedly asking the
|
|
11
|
+
assistant to remember them.
|
|
8
12
|
|
|
9
|
-
-
|
|
10
|
-
- **相关内容注入**:结合当前问题和近期用户上下文选择记忆,过滤弱匹配和失效状态;没有匹配就不填充无关内容。
|
|
11
|
-
- **跨会话召回**:在共享记忆库的不同会话、目录中查找背景;提供只读 `memory_recall` 工具,供助手在任务中途补查。
|
|
13
|
+

|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
## Features
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
- **Learn and update automatically.** Capture requirements, corrections and compaction
|
|
18
|
+
summaries. Update tracked project states from tool observations, with provenance,
|
|
19
|
+
history, gradual decay and evidence-aware ranking.
|
|
20
|
+
- **Inject relevant context.** Select memories by the current topic and recent user
|
|
21
|
+
context. Filter weak or stale matches; no relevant match means no unrelated filler.
|
|
22
|
+
- **Recall across sessions.** Find background from another session or directory.
|
|
23
|
+
A read-only `memory_recall` tool lets the assistant look up missing context mid-task.
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
Learning uses Pi's active model and existing authentication. No separate API key,
|
|
26
|
+
embedding service or vector database is required.
|
|
18
27
|
|
|
19
|
-
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
Requires **Pi 0.85+** with a working model. npm-based Pi requires **Node.js 22.19+**.
|
|
20
31
|
|
|
21
32
|
```bash
|
|
22
33
|
pi install npm:pi-memory-evolution
|
|
23
34
|
```
|
|
24
35
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
也可以直接安装 Git 默认分支,需要本机有 Git 和 npm:
|
|
36
|
+
Or install the Git default branch, with Git and npm available locally:
|
|
28
37
|
|
|
29
38
|
```bash
|
|
30
39
|
pi install https://github.com/btnalit/pi-memory-evolution
|
|
31
40
|
```
|
|
32
41
|
|
|
33
|
-
|
|
42
|
+
Choose **one** source, then run these commands inside Pi:
|
|
34
43
|
|
|
35
44
|
```text
|
|
36
45
|
/reload
|
|
37
46
|
/memory status
|
|
38
47
|
```
|
|
39
48
|
|
|
40
|
-
|
|
49
|
+
`SQLite ok (schema 5)` confirms storage initialization. Continue using Pi normally;
|
|
50
|
+
learning and recall run automatically.
|
|
41
51
|
|
|
42
|
-
##
|
|
52
|
+
## Use
|
|
43
53
|
|
|
44
|
-
|
|
54
|
+
Describe your requirements in a conversation:
|
|
45
55
|
|
|
46
56
|
```text
|
|
47
|
-
atlas-service
|
|
57
|
+
Our priorities for atlas-service are automatic backups and reliable recovery.
|
|
48
58
|
```
|
|
49
59
|
|
|
50
|
-
|
|
60
|
+
Later, in a fresh session sharing the same memory store:
|
|
51
61
|
|
|
52
62
|
```text
|
|
53
|
-
|
|
63
|
+
What do you remember about atlas-service's priorities?
|
|
54
64
|
```
|
|
55
65
|
|
|
56
|
-
|
|
66
|
+
Learning is asynchronous and selective—not every message becomes a memory.
|
|
57
67
|
|
|
58
|
-
|
|
|
68
|
+
| Command | Purpose |
|
|
59
69
|
| --- | --- |
|
|
60
|
-
| `/memory list` |
|
|
61
|
-
| `/memory search
|
|
62
|
-
| `/memory show <id>` |
|
|
63
|
-
| `/memory learning` |
|
|
64
|
-
| `/memory explain` |
|
|
65
|
-
| `/memory correct <id>
|
|
66
|
-
| `/memory forget <id>` |
|
|
70
|
+
| `/memory list` | Browse memories |
|
|
71
|
+
| `/memory search <topic>` | Search relevant claims |
|
|
72
|
+
| `/memory show <id>` | Inspect content and evidence |
|
|
73
|
+
| `/memory learning` | Inspect capture and actual update results |
|
|
74
|
+
| `/memory explain` | Explain the last automatic injection |
|
|
75
|
+
| `/memory correct <id> <text>` | Correct a record |
|
|
76
|
+
| `/memory forget <id>` | Suppress a record from recall |
|
|
67
77
|
|
|
68
|
-
|
|
78
|
+
See the [usage guide](docs/usage.md) for all commands, migration and troubleshooting.
|
|
69
79
|
|
|
70
|
-
##
|
|
80
|
+
## Update or uninstall
|
|
71
81
|
|
|
72
|
-
npm
|
|
82
|
+
For the npm installation:
|
|
73
83
|
|
|
74
84
|
```bash
|
|
75
85
|
pi update npm:pi-memory-evolution
|
|
76
86
|
pi remove npm:pi-memory-evolution
|
|
77
87
|
```
|
|
78
88
|
|
|
79
|
-
Git
|
|
89
|
+
For Git, substitute the repository URL used during installation. Reload or restart
|
|
90
|
+
Pi afterward. Uninstalling does not delete memory data. Before a schema-changing
|
|
91
|
+
upgrade, stop Pi processes sharing the database and back up the state directory.
|
|
80
92
|
|
|
81
|
-
##
|
|
93
|
+
## Data and limits
|
|
82
94
|
|
|
83
|
-
|
|
95
|
+
Local SQLite state lives in `~/.pi/agent/agent-suite/memory-evolution/`.
|
|
96
|
+
`PI_CODING_AGENT_DIR` changes that prefix; different working directories share the
|
|
97
|
+
same store by default.
|
|
84
98
|
|
|
85
|
-
|
|
99
|
+
Learning sends filtered source content to the active model and consumes its quota.
|
|
100
|
+
Memories are historical evidence, not independently verified facts. Matching and
|
|
101
|
+
secret filtering are imperfect; verify important claims. See [privacy and storage](docs/usage.md#local-storage-and-provenance).
|
|
86
102
|
|
|
87
|
-
##
|
|
88
|
-
|
|
89
|
-
在源码仓库中运行:
|
|
103
|
+
## Development
|
|
90
104
|
|
|
91
105
|
```bash
|
|
92
106
|
npm ci --ignore-scripts
|
|
93
107
|
npm run check
|
|
94
108
|
npm run test:install
|
|
95
109
|
npm run test:pi
|
|
110
|
+
npm run build
|
|
96
111
|
```
|
|
97
112
|
|
|
98
|
-
|
|
113
|
+
CI checks types, regressions, package contents, installation and fake-model host
|
|
114
|
+
integration. Builds produce an installable npm archive and checksums, not a separate
|
|
115
|
+
compiled runtime. Release PRs automate versions and changelogs; merging a verified
|
|
116
|
+
release PR triggers npm publication. Dependency updates arrive as gated PRs.
|
|
117
|
+
|
|
118
|
+
See [testing](docs/testing.md) and [release automation](docs/releasing.md).
|
|
99
119
|
|
|
100
|
-
##
|
|
120
|
+
## Documentation
|
|
101
121
|
|
|
102
|
-
[
|
|
122
|
+
[Usage](docs/usage.md) · [Architecture](docs/design.md) · [Memory quality](docs/core-quality.md) · [Changelog](CHANGELOG.md)
|
|
103
123
|
|
|
104
|
-
##
|
|
124
|
+
## License
|
|
105
125
|
|
|
106
126
|
[MIT](LICENSE)
|
|
Binary file
|
package/docs/design.md
CHANGED
|
@@ -322,7 +322,8 @@ grows until deliberately managed; no automatic purge or physical secret erasure
|
|
|
322
322
|
Background model usage is not added to Pi's normal session token accounting.
|
|
323
323
|
|
|
324
324
|
Node/npm development requires 22.19+ to match Pi 0.85's engine; the standalone Bun host is
|
|
325
|
-
also tested.
|
|
326
|
-
|
|
325
|
+
also tested. GitHub CI runs the regression/package checks and isolated install/host
|
|
326
|
+
scripts; [release automation](releasing.md) reuses those gates before publishing.
|
|
327
|
+
Fake-provider validation is not live-provider accuracy or a
|
|
327
328
|
multi-day TUI trial. See [README.md](../README.md) for commands/recovery, and the historical
|
|
328
329
|
[follow-up review](review-0.2.md) for previously reproduced defects and validation limits.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# CI and releases
|
|
2
|
+
|
|
3
|
+
## Pull request gate
|
|
4
|
+
|
|
5
|
+
Use Conventional Commit PR titles, such as `fix: retain work evidence` or
|
|
6
|
+
`feat: improve recall`. Squash merges preserve that title for release automation.
|
|
7
|
+
|
|
8
|
+
`CI` runs on PRs, pushes to `main`, explicit dispatch and a weekly schedule:
|
|
9
|
+
|
|
10
|
+
- Node 22.19.0 and Node 24: typecheck, regression/release-policy tests, package and
|
|
11
|
+
automation assertions, and an npm audit that fails on high/critical findings.
|
|
12
|
+
- Node 24: native Pi installation tests and real-host/fake-model integration.
|
|
13
|
+
- Workflow syntax checks with a checksum-pinned actionlint binary.
|
|
14
|
+
- Build an npm tarball, `SHA256SUMS` and a source-commit/integrity manifest. Pi loads
|
|
15
|
+
TypeScript directly, so building means packaging, not compiling a second runtime.
|
|
16
|
+
|
|
17
|
+
The final **Quality gate** fails if any prerequisite fails, is cancelled or is skipped.
|
|
18
|
+
`main` requires a PR, an up-to-date successful gate and resolved conversations, with
|
|
19
|
+
force pushes/deletion blocked. In this single-maintainer repository, the gate does
|
|
20
|
+
not require a second person's approval. It does not automatically merge arbitrary
|
|
21
|
+
PRs or claim a human code review occurred.
|
|
22
|
+
|
|
23
|
+
CI uses read-only GitHub tokens, no production credentials and no paid model calls.
|
|
24
|
+
Actions are pinned by full commit SHA; checkouts do not persist credentials.
|
|
25
|
+
Workflow policy changes still need maintainer review—tests are not a substitute
|
|
26
|
+
for reviewing a malicious workflow or dependency change.
|
|
27
|
+
|
|
28
|
+
## Version and publication flow
|
|
29
|
+
|
|
30
|
+
1. Merge a checked change into `main`.
|
|
31
|
+
2. Release Please maintains a release PR containing `package.json`, lockfile,
|
|
32
|
+
`.release-please-manifest.json` and `CHANGELOG.md` changes.
|
|
33
|
+
3. Review and merge that PR. Release Please creates the version tag and GitHub
|
|
34
|
+
Release; the same workflow verifies the exact tagged commit through the full CI.
|
|
35
|
+
4. Only after verification succeeds does the `npm` environment publish the built
|
|
36
|
+
archive with npm provenance and verify its public registry integrity.
|
|
37
|
+
5. The tarball, checksums and manifest are attached to the GitHub Release.
|
|
38
|
+
|
|
39
|
+
A GitHub tag/release can exist before npm publication succeeds. Check the **Release**
|
|
40
|
+
workflow and npm registry, not just the presence of the tag. Builds are retained as
|
|
41
|
+
Actions artifacts for seven days; successful release assets remain attached to the
|
|
42
|
+
release. The script never rebuilds between verification and publication.
|
|
43
|
+
|
|
44
|
+
Release Please uses the built-in `GITHUB_TOKEN`, not a personal GitHub credential.
|
|
45
|
+
Because events generated by that token do not start normal push/PR workflows,
|
|
46
|
+
it explicitly dispatches CI for its same-repository release PRs. Publication is a
|
|
47
|
+
job in the same workflow, not a separate listener waiting for a suppressed event.
|
|
48
|
+
|
|
49
|
+
Version behavior follows Conventional Commits. `fix` normally bumps patch, `feat`
|
|
50
|
+
bumps minor, and breaking changes before 1.0 bump minor. Visible maintenance/docs/CI
|
|
51
|
+
changes can also produce release notes. The bootstrap starts after the already
|
|
52
|
+
published 0.2.0 commit; it does not republish 0.1 history.
|
|
53
|
+
|
|
54
|
+
## Publication credentials
|
|
55
|
+
|
|
56
|
+
The GitHub environment **npm** accepts deployments from `main` only. No environment
|
|
57
|
+
secret is given to the reusable CI jobs or ordinary PR checks. Only the publishing
|
|
58
|
+
step receives `NPM_TOKEN` when the repository variable `NPM_AUTH_MODE=token` is set.
|
|
59
|
+
No personal GitHub token is stored in Actions.
|
|
60
|
+
|
|
61
|
+
Prefer npm trusted publishing (OIDC): configure `btnalit/pi-memory-evolution`,
|
|
62
|
+
workflow **release.yml**, environment **npm** on the package's npm settings page.
|
|
63
|
+
Then set `NPM_AUTH_MODE=oidc`, verify a release, and remove the environment's
|
|
64
|
+
`NPM_TOKEN`. `id-token: write` is already granted only to the publication job.
|
|
65
|
+
|
|
66
|
+
The supplied npm token can publish but cannot configure trust relationships:
|
|
67
|
+
npm rejects that account-management operation for granular tokens that bypass 2FA.
|
|
68
|
+
Until an account owner completes trusted-publisher setup with supported interactive
|
|
69
|
+
authentication, the environment-scoped token is the explicit fallback, not a claim
|
|
70
|
+
that OIDC authentication is active. Use a package-scoped, short-lived token and
|
|
71
|
+
rotate it before expiry. Do not commit tokens or copy local `key.conf` into CI.
|
|
72
|
+
|
|
73
|
+
Repository settings must allow Actions to create pull requests. The setting also
|
|
74
|
+
mentions approving PRs; this workflow creates them but does not approve them.
|
|
75
|
+
|
|
76
|
+
## Retrying a release
|
|
77
|
+
|
|
78
|
+
From Actions, dispatch **Release** on `main` with `tag=vX.Y.Z`, or run:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
gh workflow run release.yml --ref main -f tag=v0.2.1
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The workflow requires an existing stable GitHub Release whose commit belongs to
|
|
85
|
+
`main`, reruns verification and checks the version against the archive manifest.
|
|
86
|
+
An already published version is accepted only when npm's integrity matches exactly.
|
|
87
|
+
It never overwrites a version or moves `latest` backwards. Existing release assets
|
|
88
|
+
must have matching digests; mismatches stop rather than silently using `--clobber`.
|
|
89
|
+
Retry the original failed workflow when possible so the original artifact remains
|
|
90
|
+
available. Rebuilding with different tooling may legitimately produce different
|
|
91
|
+
bytes and require investigation, not bypassing the integrity check.
|
|
92
|
+
|
|
93
|
+
A cancelled or failed npm call is not proof nothing was published: the registry
|
|
94
|
+
check on retry handles that case. Do not delete/recreate tags or edit registry
|
|
95
|
+
metadata to disguise a failed release.
|
|
96
|
+
|
|
97
|
+
## Dependency updates and Pi Gallery
|
|
98
|
+
|
|
99
|
+
Dependabot checks npm dev dependencies and GitHub Actions weekly. Minor/patch updates
|
|
100
|
+
are grouped; majors stay separate. Updates arrive as PRs and must pass the same
|
|
101
|
+
gate; no blanket auto-merge is enabled. GitHub vulnerability alerts/security update
|
|
102
|
+
PRs complement the scheduled audit. Transitive runtime dependencies are not bundled
|
|
103
|
+
just to satisfy host-provided Pi peer APIs.
|
|
104
|
+
|
|
105
|
+
The package already uses the Pi `pi` manifest and `pi-package` keyword. Distribution
|
|
106
|
+
checks retain both, the English npm description/default README, `README.cn.md`,
|
|
107
|
+
and a PNG overview referenced by `pi.image`. This provides Gallery discovery and
|
|
108
|
+
preview metadata, not an official endorsement or a guarantee of immediate indexing.
|
|
109
|
+
The overview is an architecture illustration, not a screenshot of a real user session.
|
|
110
|
+
|
|
111
|
+
## Local checks
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm run check
|
|
115
|
+
npm run test:install
|
|
116
|
+
npm run test:pi
|
|
117
|
+
bash scripts/check-workflows.sh # Linux x86-64; downloads checksum-pinned actionlint
|
|
118
|
+
npm run build
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
See [testing](testing.md) for fixture isolation and model-validation boundaries.
|
package/docs/testing.md
CHANGED
|
@@ -9,8 +9,8 @@ Tests use synthetic data and temporary directories, not production memories.
|
|
|
9
9
|
npm run check
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
This runs strict TypeScript checking, the `src/**/*.test.ts` regression suite
|
|
13
|
-
`check:package`. Package checking asserts that the Pi manifest points to the current
|
|
12
|
+
This runs strict TypeScript checking, the `src/**/*.test.ts` regression suite,
|
|
13
|
+
`scripts/*.test.mjs` release-policy tests, `check:package` and `check:automation`. Package checking asserts that the Pi manifest points to the current
|
|
14
14
|
entry, host APIs remain peer dependencies, all production TypeScript sources are
|
|
15
15
|
packed, and local documentation links resolve to packaged files. Test sources,
|
|
16
16
|
helper scripts and memory state must not ship in the package.
|
|
@@ -98,5 +98,8 @@ product acceptance. Historical design/review documents describe their own tested
|
|
|
98
98
|
revisions; see [progress pipeline](progress-pipeline.md), [core quality](core-quality.md)
|
|
99
99
|
and [quality validation](quality-validation.md) for context.
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
GitHub Actions runs these checks and the Pi-dependent scripts before the required
|
|
102
|
+
Quality gate passes. The install/host scripts remain separate local commands, not
|
|
103
|
+
part of `npm run check`. Release verification uses the same CI workflow on the exact
|
|
104
|
+
tagged commit. See [CI and releases](releasing.md) for branch protection, dependency
|
|
105
|
+
updates, publication credentials and retry behavior.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-memory-evolution",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
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": {
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
"!src/**/*.test.ts",
|
|
32
32
|
"docs",
|
|
33
33
|
"README.md",
|
|
34
|
+
"README.cn.md",
|
|
35
|
+
"assets/overview.png",
|
|
34
36
|
"CHANGELOG.md",
|
|
35
37
|
"LICENSE",
|
|
36
38
|
"package.json"
|
|
@@ -38,24 +40,28 @@
|
|
|
38
40
|
"pi": {
|
|
39
41
|
"extensions": [
|
|
40
42
|
"./src/index.ts"
|
|
41
|
-
]
|
|
43
|
+
],
|
|
44
|
+
"image": "https://raw.githubusercontent.com/btnalit/pi-memory-evolution/main/assets/overview.png"
|
|
42
45
|
},
|
|
43
46
|
"peerDependencies": {
|
|
44
47
|
"@earendil-works/pi-coding-agent": "*",
|
|
45
48
|
"typebox": "*"
|
|
46
49
|
},
|
|
47
50
|
"scripts": {
|
|
48
|
-
"test": "node --test \"src/**/*.test.ts\"",
|
|
51
|
+
"test": "node --test \"src/**/*.test.ts\" \"scripts/*.test.mjs\"",
|
|
49
52
|
"typecheck": "tsc --noEmit",
|
|
50
53
|
"test:pi": "node scripts/test-pi.mjs",
|
|
51
54
|
"test:install": "node scripts/test-install.mjs",
|
|
52
|
-
"check": "npm run typecheck && npm test && npm run check:package",
|
|
55
|
+
"check": "npm run typecheck && npm test && npm run check:package && npm run check:automation",
|
|
56
|
+
"check:automation": "node scripts/check-automation.mjs",
|
|
57
|
+
"build": "node scripts/build-package.mjs",
|
|
53
58
|
"check:package": "node scripts/check-package.mjs"
|
|
54
59
|
},
|
|
55
60
|
"devDependencies": {
|
|
56
61
|
"@earendil-works/pi-coding-agent": "0.85.0",
|
|
57
62
|
"@types/node": "22.18.0",
|
|
63
|
+
"typebox": "1.3.7",
|
|
58
64
|
"typescript": "5.9.3",
|
|
59
|
-
"
|
|
65
|
+
"yaml": "2.9.0"
|
|
60
66
|
}
|
|
61
67
|
}
|