@agentunion/fastaun-browser 0.5.19 → 0.5.21
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 +176 -78
- package/_packed_docs/CHANGELOG.md +176 -78
- package/_packed_docs/INDEX.md +288 -269
- package/_packed_docs/KITE_DOCS_GUIDE.md +101 -95
- package/_packed_docs/agent.md/SCHEMA.md +7 -7
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/344/270/216/346/215/242owner/347/274/226/346/216/222/346/226/271/346/241/210.md +530 -0
- package/_packed_docs/agent.md/working/AID/347/261/273/345/236/213-owner/345/205/263/347/263/273/345/256/214/346/225/264/350/256/276/350/256/241/344/270/216/345/256/236/346/226/275/350/256/241/345/210/222.md +685 -0
- package/_packed_docs/agent.md/working/agent.md-schema/344/270/216/347/255/276/345/217/221/351/252/214/347/255/276/346/265/201/347/250/213/346/276/204/346/270/205.md +349 -0
- package/_packed_docs/agent.md/working//346/234/254/345/234/260Docker/346/265/213/350/257/225Bug/346/270/205/345/215/225.md +40 -0
- package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +11 -11
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +372 -331
- package/_packed_docs/protocol/08-AUN-E2EE.md +17 -12
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +676 -676
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +8 -12
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +445 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.0.md +161 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2112.1.md +666 -0
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/2113.0.md +233 -0
- package/_packed_docs/protocol/agent.md/SCHEMA.md +1 -1
- package/_packed_docs/sdk/0.5.21-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +368 -0
- package/_packed_docs/sdk/0.5.21-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +350 -0
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +1 -1
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +5 -1
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +64 -64
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +70 -63
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +43 -40
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +179 -19
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +50 -49
- package/_packed_docs/sdk/09-group-rpc-manual.md +261 -254
- package/_packed_docs/sdk/09-message-rpc-manual.md +253 -160
- package/_packed_docs/sdk/09-storage-rpc-manual.md +18 -26
- package/_packed_docs/sdk/09-/345/207/255/350/257/201/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +71 -0
- package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +88 -0
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +105 -92
- package/_packed_docs/sdk/INDEX.md +197 -167
- package/_packed_docs/sdk/Ownership-SDK/345/256/236/347/216/260/346/214/207/345/215/227.md +169 -0
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/227.md +349 -0
- package/_packed_docs/sdk/Ownership-SDK/347/274/226/346/216/222/346/214/207/345/215/2272.1.md +930 -0
- package/_packed_docs/sdk/Ownership-SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +270 -0
- package/_packed_docs/sdk/Ownership2.1-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +363 -0
- package/_packed_docs/sdk/Ownership2.1-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +553 -0
- package/_packed_docs/sdk/Ownership2.1-TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +708 -0
- package/_packed_docs/sdk/Ownership2.1/350/257/246/347/273/206/350/256/276/350/256/241.md +480 -0
- package/_packed_docs/sdk/Ownership/347/256/241/347/220/206/344/270/223/351/242/230.md +559 -0
- package/_packed_docs/sdk/ProtectedHeaders/347/224/250/346/263/225/344/270/223/351/242/230.md +299 -0
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +173 -0
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +211 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/345/256/236/347/216/260/347/247/273/346/244/215/346/214/207/345/215/227.md +331 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273SDK/351/233/206/346/210/220/346/214/207/345/215/227.md +207 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +252 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/345/256/236/346/226/275/350/256/241/345/210/222.md +156 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/346/226/271/346/241/210.md +273 -0
- package/_packed_docs//350/267/250/350/256/276/345/244/207/345/267/262/350/257/273/346/234/252/350/257/273/350/257/246/347/273/206/350/256/276/350/256/241.md +211 -0
- package/dist/agent-md-schema.d.ts +16 -4
- package/dist/agent-md-schema.d.ts.map +1 -1
- package/dist/agent-md-schema.js +65 -30
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +35 -3
- package/dist/agent-md.d.ts.map +1 -1
- package/dist/agent-md.js +384 -150
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +59 -0
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +202 -16
- package/dist/aid-store.js.map +1 -1
- package/dist/aid.d.ts +4 -1
- package/dist/aid.d.ts.map +1 -1
- package/dist/aid.js +24 -42
- package/dist/aid.js.map +1 -1
- package/dist/auth.d.ts +1 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +89 -18
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +6410 -1848
- package/dist/cert-utils.d.ts +50 -1
- package/dist/cert-utils.d.ts.map +1 -1
- package/dist/cert-utils.js +123 -56
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +108 -16
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +1411 -184
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts +4 -1
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +203 -117
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +22 -3
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +1312 -684
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +23 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +419 -101
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +8 -6
- package/dist/crypto.js.map +1 -1
- package/dist/events.d.ts +24 -3
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +171 -29
- package/dist/events.js.map +1 -1
- package/dist/facades.d.ts +42 -1
- package/dist/facades.d.ts.map +1 -1
- package/dist/facades.js +368 -12
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/index.d.ts +14 -1
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/indexeddb-identity-store.d.ts +4 -0
- package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-identity-store.js +30 -13
- package/dist/keystore/indexeddb-identity-store.js.map +1 -1
- package/dist/keystore/indexeddb-shared.d.ts +19 -2
- package/dist/keystore/indexeddb-shared.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.js +193 -6
- package/dist/keystore/indexeddb-shared.js.map +1 -1
- package/dist/keystore/indexeddb-token-store.d.ts +15 -2
- package/dist/keystore/indexeddb-token-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-token-store.js +308 -27
- package/dist/keystore/indexeddb-token-store.js.map +1 -1
- package/dist/org-protocol.d.ts +45 -0
- package/dist/org-protocol.d.ts.map +1 -1
- package/dist/org-protocol.js +827 -21
- package/dist/org-protocol.js.map +1 -1
- package/dist/ownership-v21.d.ts +43 -9
- package/dist/ownership-v21.d.ts.map +1 -1
- package/dist/ownership-v21.js +183 -81
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.d.ts +36 -1
- package/dist/ownership-workflow.d.ts.map +1 -1
- package/dist/ownership-workflow.js +610 -89
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/seq-tracker.d.ts +2 -0
- package/dist/seq-tracker.d.ts.map +1 -1
- package/dist/seq-tracker.js +3 -2
- package/dist/seq-tracker.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +61 -3
- package/dist/tools/cross-sdk-agent.d.ts.map +1 -1
- package/dist/tools/cross-sdk-agent.js +524 -45
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +4 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +64 -30
- package/dist/transport.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,9 +4,107 @@
|
|
|
4
4
|
|
|
5
5
|
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
6
|
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 0.5.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.5.21 — 未发布
|
|
10
|
+
|
|
11
|
+
> 基线:上次发布的 `0.5.20` 对应仓库快照 `08221fbb`;本节整理 2026-10-18 工作区的 SDK 增量。
|
|
12
|
+
|
|
13
|
+
### 新功能
|
|
14
|
+
|
|
15
|
+
#### resolve 元数据与 ownership
|
|
16
|
+
- `resolve` 和 `downloadAgentMd` 返回 `agent_md.frontmatter` / `frontmatter`,保留标准字段、扩展字段及嵌套类型;公开 `AgentMdFrontmatter`,历史缺字段不补默认值。
|
|
17
|
+
- `resolve(aid, { ownership: client, ownershipTtlMs? })` 按需复用现有 Ownership 2.1 共识校验,将状态及 owner.md 原文快照存入 IndexedDB 等价记录;默认缓存 60 秒,支持 TTL=0、forceRefresh、名片内容变化失效和失败隔离,缓存不用于授权。
|
|
18
|
+
|
|
19
|
+
#### 按对端同步与批量投递
|
|
20
|
+
- 新增 `MessageFacade.peers`,按服务端协商的 peer pull 能力查询对端目录;支持按 sender 隔离 P2P Pull、ACK、历史查询、水位和 volatile cursor,重连及 Push 提示驱动目录刷新与补拉。
|
|
21
|
+
- 新增 `message.batch`、`group.message_batch`、`group.event_batch` 应用事件;按页聚合消息及事件,应用处理完成后再提交交付水位、去重记录和 ACK,处理失败保留未提交部分供恢复。
|
|
22
|
+
|
|
23
|
+
#### 凭证续期与诊断
|
|
24
|
+
- 新增 `credential.current`,保存长效凭证及组织成员续期材料,处理加密续期请求、响应、登记回执和提交确认;断线恢复复用持久 checkpoint,返回当前已验证的凭证,旧输入不绕过撤销状态。
|
|
25
|
+
- 同步并验证撤销列表分页,将已知撤销状态用于凭证及证明链检查;组织成员包按接收身份验证后持久保存,切换身份或连接时废弃旧代异步结果。
|
|
26
|
+
- 新增 `client.debug.diag`,支持全部、命名空间及具体 RPC 的 dry-run 诊断,校验服务端 `dry_run=true/executed=false` 与阶段结果,汇总通过、失败和缺少真实材料的跳过项。
|
|
27
|
+
|
|
28
|
+
### 修复
|
|
29
|
+
|
|
30
|
+
#### 消息投递、背压与 ACK
|
|
31
|
+
- Pull 页大小统一为 200,预取最多 4 页;网络预取、解密准备和应用交付分离,并按待交付消息数量施加背压,handler 失败不提前确认消息。
|
|
32
|
+
- peer tail/forward 的连续证明、实际 ACK 与已提交前缀分别校验;tail 跳跃、内联 Push、撤回、volatile 重复和响应丢失恢复不跨 sender 或身份代次推进水位。
|
|
33
|
+
- 批量和逐条订阅使用同页开始时的处理器快照;应用事件、去重状态和消息提交保持顺序,重入、取消或存储失败保留待办。
|
|
34
|
+
|
|
35
|
+
#### agent.md 与 Ownership 恢复
|
|
36
|
+
- 保持 `agent.md` 与 `owner.md` 双文件、六字段声明和既有 `aun.ownership.sdk.v1` 控制格式;普通名片读写不以前置 Ownership 共识、owner Storage 或关系状态为条件,正文更新仍须原样保留已有关系材料及原 ETag/CAS。
|
|
37
|
+
- 增加 `resetOwnershipTask()`,归档当前身份发起的未完成绑定、释放和转移任务,保留原记录及远端文件;返回成功重置和无法判断的任务 ID,迟到消息、审批及恢复不能复活已重置任务。
|
|
38
|
+
- 恢复 0.5.20、0.5.19 的既有任务,核对原 operation、审批、签名字节及提交条件;旧未发布 Owner 候选缺少原 revision 证据时保留现场,已提交目标需本地原签名候选与新鲜共识匹配才能完成;旧 release 的 wire 目标版本保留,实际释放关系仍按 base 核验。更早 proof 材料保留原兼容边界,不自动伪造 2.1 关系。
|
|
39
|
+
- 绑定先恢复可继续的原任务;确认本地任务损坏时归档后重新发起并重新审批,网络故障、CAS 竞争、有效其他意图及远端关系冲突保持失败分类,不借 reset 覆盖远端关系。
|
|
40
|
+
|
|
41
|
+
#### 凭证、存储与证书
|
|
42
|
+
- 组织创建、转让和续期恢复保留原身份、密钥、凭证链、固定请求及签名;恢复过期请求绑定时重新核对原上下文,登记结果先验证再提交本地状态。
|
|
43
|
+
- 对组织身份创建/转移及凭证续期的敏感 checkpoint 加密保存;读取兼容旧明文并在写入时升级,损坏或身份不匹配时拒绝继续。
|
|
44
|
+
- 合并相同条件下的并发对端证书请求,保留指纹、历史签署时间和当前验证场景的隔离,失败后允许重试。
|
|
45
|
+
|
|
46
|
+
### 兼容性与语言边界
|
|
47
|
+
|
|
48
|
+
- 浏览器 IndexedDB 保存按 AID/device/slot 隔离的交付回执和受保护 checkpoint;异步读写及续期恢复保留身份代次检查,浏览器密钥存储不沿用 Node 文件 seed 轮换实现。
|
|
49
|
+
- 包配置、锁文件、运行时 `VERSION` 和 V2 envelope 的 `sdk_version` 统一为 `0.5.21`。
|
|
50
|
+
|
|
51
|
+
### 测试
|
|
52
|
+
|
|
53
|
+
- 扩展 peer 目录与按对端 Pull、tail/forward、批量事件、应用背压、处理失败、水位及 ACK 的定向测试。
|
|
54
|
+
- 扩展凭证续期、撤销分页、成员包、checkpoint 加密、证书并发及 Ownership reset/旧任务/绑定容错测试;测试入口和执行边界见 Python parity 文档,不以用例存在代替全量通过结论。
|
|
55
|
+
|
|
56
|
+
## 0.5.20 — 未发布
|
|
57
|
+
|
|
58
|
+
> 基线:2026-10-12 发布的 npm `0.5.19`,发布包已与仓库快照 `ab05792f` 核对;本节整理 2026-10-15 工作区的 SDK 增量。
|
|
59
|
+
|
|
60
|
+
### 新功能
|
|
61
|
+
|
|
62
|
+
#### 通用签验与文档多签
|
|
63
|
+
- 新增异步 `AIDStore.sign/verify`,支持 `raw/document`、显式 `text/file` 输入、分离签名、TAG 和追加签名;raw 文件保留二进制,`file://` 文本按字面处理,文件就地签署使用显式可写文件句柄。
|
|
64
|
+
- 文档每一签覆盖此前完整字节前缀,附签必须包含 `signer_aid`;按签名 AID 和精确证书指纹逐签验证,尾签块总量限制为 2048 bytes。`agent.md` 与 Ownership 文件复用通用签验核心。
|
|
65
|
+
|
|
66
|
+
### 修复
|
|
67
|
+
|
|
68
|
+
#### 消息同步、已读事件与设备
|
|
69
|
+
- Pull Gate 改为同 namespace 单飞、每客户端最多 4 个 namespace 并发;群事件与群消息使用独立 namespace,保留前台优先和同级 FIFO,超时任务结束前不释放同 namespace。
|
|
70
|
+
- 后台补拉保留目标上界和 `has_more/remaining`,超过默认页预算、小页/空页或暂时失败后继续调度;RPC 响应、前台排空和 gate 空闲触发恢复,关闭后台同步或切换身份、连接时废弃旧代任务。
|
|
71
|
+
- Forward 末页发布并持久化水位后独立发送最终累计 ACK,移除为提交 ACK 而发起的额外空 Pull;分页只捎带已提交水位,volatile 页消费后按最新 cursor 续拉。
|
|
72
|
+
- `message.read_changed`、`group.read_changed` 和 `read_state_sync` 在出队及每个处理器执行前复核身份代次;首次合法 raw 已读事件同时交付应用事件和协议镜像,避免身份切换后交付旧事件或漏发首次更新。
|
|
73
|
+
- 显式定向设备发送遇 bootstrap 缓存缺少目标时仅强制刷新一次;无定向、已强制查询及其他加密错误不额外重试。
|
|
74
|
+
|
|
75
|
+
#### agent.md 与本地草稿
|
|
76
|
+
- 自有 AID 默认 resolve 优先返回 IndexedDB 中的草稿/正文,读取不依赖联网或仍有效的私钥、证书;显式 refresh 和远端身份继续下载。
|
|
77
|
+
- 候选稿在网络预检前保存,失败稿由显式 upload 重试;下载和连接自动恢复不覆盖、重传失败稿,只有权威确认精确同一候选后才清除,旧上传完成不删除较新草稿或 pending。
|
|
78
|
+
- 损坏草稿元数据返回 `persistence_unavailable`;草稿失败不阻断独立 Ownership 任务和实体生命周期 checkpoint。
|
|
79
|
+
- 历史名片读取兼容缺失 Schema、旧指纹/CN 和旧群单签,按签署时间核验证书并隔离历史兼容缓存;新上传及现代实体多签保持严格校验。
|
|
80
|
+
- group/org 名片改为实体私钥主签、当前 owner 使用本人 token 上传,可选追加 owner 附签;移除实体额外 V2 上传授权,拒绝 owner 直接替代实体主签。
|
|
81
|
+
- 多签上传和重试保留原始字节;普通正文更新保留既有 owner/ownership 材料并使用原 ETag CAS。下载协商 `multi-v1`,兼容响应头大小写,304 缺少本地正文时重新获取。
|
|
82
|
+
|
|
83
|
+
#### Ownership 2.1 共识与恢复
|
|
84
|
+
- 权威读取核对 NS 原 ETag、owner 当前完整原文、摘要和存在性,使用 head/get/head 并在验签后复读;30 秒观察窗口包含首次网络等待,不再以 Storage `revision/object_id` 作为共识依据。
|
|
85
|
+
- owner.md 改走上传会话、HTTP PUT 和 `complete_upload`,使用 `expected_version` 条件提交;写前复查原件,CAS 冲突保留为 conflict,共识结果移除 `owner_md_revision`。
|
|
86
|
+
- pending 绑定起始完整快照和原始声明,不能因 owner 或数字版本相同复用旧审批;release 保持 base 版本,sub 清理后投影归零,新绑定从 1 开始,未清理的旧 release 不覆盖新关系。
|
|
87
|
+
- released 共识、恢复及清理均复核当前文件和新鲜证书状态;不能仅凭解锁认定完成或补造历史完成证据。损坏任务保留并失败关闭,其他 subject 任务仍可恢复。
|
|
88
|
+
- 补齐 PKI critical extension、BasicConstraints、KeyUsage 和路径长度校验,当前权威证书读取不复用历史兼容缓存或接受重定向。
|
|
89
|
+
|
|
90
|
+
#### 凭证、组织请求与实体恢复
|
|
91
|
+
- `request_binding` 最长 300 秒,admission 不超过成员 binding 截止时间;完整 verify 返回前重查异步等待后可能过期的凭证、状态证明和请求绑定,复用本轮已解析证书及限流结果。
|
|
92
|
+
- 已有合法 `client_signature` 保留并核对实际请求,冲突直接拒绝;服务事件限制白名单,规范化 AID 大小写并去重目标集合。
|
|
93
|
+
- 组织门面分离本地 `aidStore` 参数时保留显式 null;转让缺少替代成员材料先拒绝,checkpoint 已存在但私钥丢失时不生成替代密钥。
|
|
94
|
+
|
|
95
|
+
### 兼容性与语言边界
|
|
96
|
+
|
|
97
|
+
- 显式登记允许 agent 不指定 owner;human 仍禁止 owner,group/org 仍要求 owner,无 owner 的 agent 不创建 Ownership 待续跑意图。
|
|
98
|
+
- 签验和证书解析继续使用异步 WebCrypto;文件输入使用浏览器对象/句柄,持久草稿和 Ownership 任务使用 IndexedDB,不引入 Node.js 路径接口。
|
|
99
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.20`。
|
|
100
|
+
|
|
101
|
+
### 测试
|
|
102
|
+
|
|
103
|
+
- 扩展通用签验、多签原文、历史证书、离线草稿、损坏元数据、Ownership 原件 CAS/清理重绑、请求时效及实体恢复测试。
|
|
104
|
+
- 扩展 namespace 并发、后台续拉、末页 ACK、volatile cursor、已读事件逐处理器代次隔离和定向设备 bootstrap 测试,并更新浏览器离线 Ownership 用例。
|
|
105
|
+
- 共享 Ownership 向量和 cross-SDK agent 接入公开 Store 签验;增加四语言签验及 Name Service 多签矩阵入口,测试落点与执行边界见 Python parity 文档。
|
|
106
|
+
|
|
107
|
+
## 0.5.19 — 2026-10-12
|
|
10
108
|
|
|
11
109
|
> 基线:`0.5.18` 的仓库快照 `1f03bf2d`;本节整理 2026-10-11 工作区的 SDK 增量。
|
|
12
110
|
|
|
@@ -49,82 +147,82 @@
|
|
|
49
147
|
- 扩展已读状态门面、单调缓存、身份切换、重连补偿、组织实体身份及服务事件验签测试;配套单域、浏览器、cross-SDK 和双域测试入口列于 Python parity 文档。
|
|
50
148
|
|
|
51
149
|
## 0.5.18 — 2026-10-06
|
|
52
|
-
|
|
53
|
-
### 新功能
|
|
54
|
-
|
|
55
|
-
#### Owner relation 与 AID 注册编排
|
|
56
|
-
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
57
|
-
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
58
|
-
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
150
|
+
|
|
151
|
+
### 新功能
|
|
152
|
+
|
|
153
|
+
#### Owner relation 与 AID 注册编排
|
|
154
|
+
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
155
|
+
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
156
|
+
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
59
157
|
- 新增 ownership proof canonical bytes、`factHash`/`statementHash`、UUID v4 `proofId` 和签名封套校验;AID 统一规范化为小写,普通 agent.md 更新保留现有 proof,不能通过普通 PUT 改 owner。
|
|
60
|
-
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
61
|
-
|
|
62
|
-
#### Owner relation Storage 与审计门面
|
|
63
|
-
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
64
|
-
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
65
|
-
|
|
66
|
-
### 修复
|
|
67
|
-
|
|
68
|
-
#### 证书与签名安全
|
|
69
|
-
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
70
|
-
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
71
|
-
|
|
72
|
-
#### V2 消息同步与投递
|
|
73
|
-
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
74
|
-
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
75
|
-
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
76
|
-
|
|
77
|
-
#### 会话、设备与连接生命周期
|
|
78
|
-
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
79
|
-
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
80
|
-
|
|
81
|
-
### 改进
|
|
82
|
-
|
|
83
|
-
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
84
|
-
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
85
|
-
|
|
86
|
-
### 测试
|
|
87
|
-
|
|
88
|
-
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
89
|
-
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
90
|
-
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
91
|
-
|
|
92
|
-
## 0.5.17 — 2026-09-19
|
|
93
|
-
|
|
94
|
-
### 新功能
|
|
95
|
-
|
|
96
|
-
#### 非持久消息与设备定向
|
|
97
|
-
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
98
|
-
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
99
|
-
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
100
|
-
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
101
|
-
|
|
102
|
-
#### 群管理与 agent.md 事件
|
|
103
|
-
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
104
|
-
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
105
|
-
|
|
106
|
-
### 修复
|
|
107
|
-
|
|
108
|
-
#### Storage / Group FS 上传 Content-Type
|
|
109
|
-
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
110
|
-
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
111
|
-
|
|
112
|
-
#### 群身份恢复
|
|
113
|
-
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
114
|
-
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
115
|
-
|
|
116
|
-
### 改进
|
|
117
|
-
|
|
118
|
-
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
119
|
-
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
120
|
-
|
|
121
|
-
### 测试
|
|
122
|
-
|
|
123
|
-
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
124
|
-
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
125
|
-
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
126
|
-
|
|
127
|
-
## 0.5.16 — 2026-09-16
|
|
158
|
+
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
159
|
+
|
|
160
|
+
#### Owner relation Storage 与审计门面
|
|
161
|
+
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
162
|
+
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
163
|
+
|
|
164
|
+
### 修复
|
|
165
|
+
|
|
166
|
+
#### 证书与签名安全
|
|
167
|
+
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
168
|
+
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
169
|
+
|
|
170
|
+
#### V2 消息同步与投递
|
|
171
|
+
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
172
|
+
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
173
|
+
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
174
|
+
|
|
175
|
+
#### 会话、设备与连接生命周期
|
|
176
|
+
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
177
|
+
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
178
|
+
|
|
179
|
+
### 改进
|
|
180
|
+
|
|
181
|
+
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
182
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
183
|
+
|
|
184
|
+
### 测试
|
|
185
|
+
|
|
186
|
+
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
187
|
+
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
188
|
+
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
189
|
+
|
|
190
|
+
## 0.5.17 — 2026-09-19
|
|
191
|
+
|
|
192
|
+
### 新功能
|
|
193
|
+
|
|
194
|
+
#### 非持久消息与设备定向
|
|
195
|
+
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
196
|
+
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
197
|
+
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
198
|
+
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
199
|
+
|
|
200
|
+
#### 群管理与 agent.md 事件
|
|
201
|
+
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
202
|
+
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
203
|
+
|
|
204
|
+
### 修复
|
|
205
|
+
|
|
206
|
+
#### Storage / Group FS 上传 Content-Type
|
|
207
|
+
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
208
|
+
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
209
|
+
|
|
210
|
+
#### 群身份恢复
|
|
211
|
+
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
212
|
+
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
213
|
+
|
|
214
|
+
### 改进
|
|
215
|
+
|
|
216
|
+
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
217
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
218
|
+
|
|
219
|
+
### 测试
|
|
220
|
+
|
|
221
|
+
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
222
|
+
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
223
|
+
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
224
|
+
|
|
225
|
+
## 0.5.16 — 2026-09-16
|
|
128
226
|
|
|
129
227
|
### 修复
|
|
130
228
|
|
|
@@ -4,9 +4,107 @@
|
|
|
4
4
|
|
|
5
5
|
格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/);版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。
|
|
6
6
|
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 0.5.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.5.21 — 未发布
|
|
10
|
+
|
|
11
|
+
> 基线:上次发布的 `0.5.20` 对应仓库快照 `08221fbb`;本节整理 2026-10-18 工作区的 SDK 增量。
|
|
12
|
+
|
|
13
|
+
### 新功能
|
|
14
|
+
|
|
15
|
+
#### resolve 元数据与 ownership
|
|
16
|
+
- `resolve` 和 `downloadAgentMd` 返回 `agent_md.frontmatter` / `frontmatter`,保留标准字段、扩展字段及嵌套类型;公开 `AgentMdFrontmatter`,历史缺字段不补默认值。
|
|
17
|
+
- `resolve(aid, { ownership: client, ownershipTtlMs? })` 按需复用现有 Ownership 2.1 共识校验,将状态及 owner.md 原文快照存入 IndexedDB 等价记录;默认缓存 60 秒,支持 TTL=0、forceRefresh、名片内容变化失效和失败隔离,缓存不用于授权。
|
|
18
|
+
|
|
19
|
+
#### 按对端同步与批量投递
|
|
20
|
+
- 新增 `MessageFacade.peers`,按服务端协商的 peer pull 能力查询对端目录;支持按 sender 隔离 P2P Pull、ACK、历史查询、水位和 volatile cursor,重连及 Push 提示驱动目录刷新与补拉。
|
|
21
|
+
- 新增 `message.batch`、`group.message_batch`、`group.event_batch` 应用事件;按页聚合消息及事件,应用处理完成后再提交交付水位、去重记录和 ACK,处理失败保留未提交部分供恢复。
|
|
22
|
+
|
|
23
|
+
#### 凭证续期与诊断
|
|
24
|
+
- 新增 `credential.current`,保存长效凭证及组织成员续期材料,处理加密续期请求、响应、登记回执和提交确认;断线恢复复用持久 checkpoint,返回当前已验证的凭证,旧输入不绕过撤销状态。
|
|
25
|
+
- 同步并验证撤销列表分页,将已知撤销状态用于凭证及证明链检查;组织成员包按接收身份验证后持久保存,切换身份或连接时废弃旧代异步结果。
|
|
26
|
+
- 新增 `client.debug.diag`,支持全部、命名空间及具体 RPC 的 dry-run 诊断,校验服务端 `dry_run=true/executed=false` 与阶段结果,汇总通过、失败和缺少真实材料的跳过项。
|
|
27
|
+
|
|
28
|
+
### 修复
|
|
29
|
+
|
|
30
|
+
#### 消息投递、背压与 ACK
|
|
31
|
+
- Pull 页大小统一为 200,预取最多 4 页;网络预取、解密准备和应用交付分离,并按待交付消息数量施加背压,handler 失败不提前确认消息。
|
|
32
|
+
- peer tail/forward 的连续证明、实际 ACK 与已提交前缀分别校验;tail 跳跃、内联 Push、撤回、volatile 重复和响应丢失恢复不跨 sender 或身份代次推进水位。
|
|
33
|
+
- 批量和逐条订阅使用同页开始时的处理器快照;应用事件、去重状态和消息提交保持顺序,重入、取消或存储失败保留待办。
|
|
34
|
+
|
|
35
|
+
#### agent.md 与 Ownership 恢复
|
|
36
|
+
- 保持 `agent.md` 与 `owner.md` 双文件、六字段声明和既有 `aun.ownership.sdk.v1` 控制格式;普通名片读写不以前置 Ownership 共识、owner Storage 或关系状态为条件,正文更新仍须原样保留已有关系材料及原 ETag/CAS。
|
|
37
|
+
- 增加 `resetOwnershipTask()`,归档当前身份发起的未完成绑定、释放和转移任务,保留原记录及远端文件;返回成功重置和无法判断的任务 ID,迟到消息、审批及恢复不能复活已重置任务。
|
|
38
|
+
- 恢复 0.5.20、0.5.19 的既有任务,核对原 operation、审批、签名字节及提交条件;旧未发布 Owner 候选缺少原 revision 证据时保留现场,已提交目标需本地原签名候选与新鲜共识匹配才能完成;旧 release 的 wire 目标版本保留,实际释放关系仍按 base 核验。更早 proof 材料保留原兼容边界,不自动伪造 2.1 关系。
|
|
39
|
+
- 绑定先恢复可继续的原任务;确认本地任务损坏时归档后重新发起并重新审批,网络故障、CAS 竞争、有效其他意图及远端关系冲突保持失败分类,不借 reset 覆盖远端关系。
|
|
40
|
+
|
|
41
|
+
#### 凭证、存储与证书
|
|
42
|
+
- 组织创建、转让和续期恢复保留原身份、密钥、凭证链、固定请求及签名;恢复过期请求绑定时重新核对原上下文,登记结果先验证再提交本地状态。
|
|
43
|
+
- 对组织身份创建/转移及凭证续期的敏感 checkpoint 加密保存;读取兼容旧明文并在写入时升级,损坏或身份不匹配时拒绝继续。
|
|
44
|
+
- 合并相同条件下的并发对端证书请求,保留指纹、历史签署时间和当前验证场景的隔离,失败后允许重试。
|
|
45
|
+
|
|
46
|
+
### 兼容性与语言边界
|
|
47
|
+
|
|
48
|
+
- 浏览器 IndexedDB 保存按 AID/device/slot 隔离的交付回执和受保护 checkpoint;异步读写及续期恢复保留身份代次检查,浏览器密钥存储不沿用 Node 文件 seed 轮换实现。
|
|
49
|
+
- 包配置、锁文件、运行时 `VERSION` 和 V2 envelope 的 `sdk_version` 统一为 `0.5.21`。
|
|
50
|
+
|
|
51
|
+
### 测试
|
|
52
|
+
|
|
53
|
+
- 扩展 peer 目录与按对端 Pull、tail/forward、批量事件、应用背压、处理失败、水位及 ACK 的定向测试。
|
|
54
|
+
- 扩展凭证续期、撤销分页、成员包、checkpoint 加密、证书并发及 Ownership reset/旧任务/绑定容错测试;测试入口和执行边界见 Python parity 文档,不以用例存在代替全量通过结论。
|
|
55
|
+
|
|
56
|
+
## 0.5.20 — 未发布
|
|
57
|
+
|
|
58
|
+
> 基线:2026-10-12 发布的 npm `0.5.19`,发布包已与仓库快照 `ab05792f` 核对;本节整理 2026-10-15 工作区的 SDK 增量。
|
|
59
|
+
|
|
60
|
+
### 新功能
|
|
61
|
+
|
|
62
|
+
#### 通用签验与文档多签
|
|
63
|
+
- 新增异步 `AIDStore.sign/verify`,支持 `raw/document`、显式 `text/file` 输入、分离签名、TAG 和追加签名;raw 文件保留二进制,`file://` 文本按字面处理,文件就地签署使用显式可写文件句柄。
|
|
64
|
+
- 文档每一签覆盖此前完整字节前缀,附签必须包含 `signer_aid`;按签名 AID 和精确证书指纹逐签验证,尾签块总量限制为 2048 bytes。`agent.md` 与 Ownership 文件复用通用签验核心。
|
|
65
|
+
|
|
66
|
+
### 修复
|
|
67
|
+
|
|
68
|
+
#### 消息同步、已读事件与设备
|
|
69
|
+
- Pull Gate 改为同 namespace 单飞、每客户端最多 4 个 namespace 并发;群事件与群消息使用独立 namespace,保留前台优先和同级 FIFO,超时任务结束前不释放同 namespace。
|
|
70
|
+
- 后台补拉保留目标上界和 `has_more/remaining`,超过默认页预算、小页/空页或暂时失败后继续调度;RPC 响应、前台排空和 gate 空闲触发恢复,关闭后台同步或切换身份、连接时废弃旧代任务。
|
|
71
|
+
- Forward 末页发布并持久化水位后独立发送最终累计 ACK,移除为提交 ACK 而发起的额外空 Pull;分页只捎带已提交水位,volatile 页消费后按最新 cursor 续拉。
|
|
72
|
+
- `message.read_changed`、`group.read_changed` 和 `read_state_sync` 在出队及每个处理器执行前复核身份代次;首次合法 raw 已读事件同时交付应用事件和协议镜像,避免身份切换后交付旧事件或漏发首次更新。
|
|
73
|
+
- 显式定向设备发送遇 bootstrap 缓存缺少目标时仅强制刷新一次;无定向、已强制查询及其他加密错误不额外重试。
|
|
74
|
+
|
|
75
|
+
#### agent.md 与本地草稿
|
|
76
|
+
- 自有 AID 默认 resolve 优先返回 IndexedDB 中的草稿/正文,读取不依赖联网或仍有效的私钥、证书;显式 refresh 和远端身份继续下载。
|
|
77
|
+
- 候选稿在网络预检前保存,失败稿由显式 upload 重试;下载和连接自动恢复不覆盖、重传失败稿,只有权威确认精确同一候选后才清除,旧上传完成不删除较新草稿或 pending。
|
|
78
|
+
- 损坏草稿元数据返回 `persistence_unavailable`;草稿失败不阻断独立 Ownership 任务和实体生命周期 checkpoint。
|
|
79
|
+
- 历史名片读取兼容缺失 Schema、旧指纹/CN 和旧群单签,按签署时间核验证书并隔离历史兼容缓存;新上传及现代实体多签保持严格校验。
|
|
80
|
+
- group/org 名片改为实体私钥主签、当前 owner 使用本人 token 上传,可选追加 owner 附签;移除实体额外 V2 上传授权,拒绝 owner 直接替代实体主签。
|
|
81
|
+
- 多签上传和重试保留原始字节;普通正文更新保留既有 owner/ownership 材料并使用原 ETag CAS。下载协商 `multi-v1`,兼容响应头大小写,304 缺少本地正文时重新获取。
|
|
82
|
+
|
|
83
|
+
#### Ownership 2.1 共识与恢复
|
|
84
|
+
- 权威读取核对 NS 原 ETag、owner 当前完整原文、摘要和存在性,使用 head/get/head 并在验签后复读;30 秒观察窗口包含首次网络等待,不再以 Storage `revision/object_id` 作为共识依据。
|
|
85
|
+
- owner.md 改走上传会话、HTTP PUT 和 `complete_upload`,使用 `expected_version` 条件提交;写前复查原件,CAS 冲突保留为 conflict,共识结果移除 `owner_md_revision`。
|
|
86
|
+
- pending 绑定起始完整快照和原始声明,不能因 owner 或数字版本相同复用旧审批;release 保持 base 版本,sub 清理后投影归零,新绑定从 1 开始,未清理的旧 release 不覆盖新关系。
|
|
87
|
+
- released 共识、恢复及清理均复核当前文件和新鲜证书状态;不能仅凭解锁认定完成或补造历史完成证据。损坏任务保留并失败关闭,其他 subject 任务仍可恢复。
|
|
88
|
+
- 补齐 PKI critical extension、BasicConstraints、KeyUsage 和路径长度校验,当前权威证书读取不复用历史兼容缓存或接受重定向。
|
|
89
|
+
|
|
90
|
+
#### 凭证、组织请求与实体恢复
|
|
91
|
+
- `request_binding` 最长 300 秒,admission 不超过成员 binding 截止时间;完整 verify 返回前重查异步等待后可能过期的凭证、状态证明和请求绑定,复用本轮已解析证书及限流结果。
|
|
92
|
+
- 已有合法 `client_signature` 保留并核对实际请求,冲突直接拒绝;服务事件限制白名单,规范化 AID 大小写并去重目标集合。
|
|
93
|
+
- 组织门面分离本地 `aidStore` 参数时保留显式 null;转让缺少替代成员材料先拒绝,checkpoint 已存在但私钥丢失时不生成替代密钥。
|
|
94
|
+
|
|
95
|
+
### 兼容性与语言边界
|
|
96
|
+
|
|
97
|
+
- 显式登记允许 agent 不指定 owner;human 仍禁止 owner,group/org 仍要求 owner,无 owner 的 agent 不创建 Ownership 待续跑意图。
|
|
98
|
+
- 签验和证书解析继续使用异步 WebCrypto;文件输入使用浏览器对象/句柄,持久草稿和 Ownership 任务使用 IndexedDB,不引入 Node.js 路径接口。
|
|
99
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.20`。
|
|
100
|
+
|
|
101
|
+
### 测试
|
|
102
|
+
|
|
103
|
+
- 扩展通用签验、多签原文、历史证书、离线草稿、损坏元数据、Ownership 原件 CAS/清理重绑、请求时效及实体恢复测试。
|
|
104
|
+
- 扩展 namespace 并发、后台续拉、末页 ACK、volatile cursor、已读事件逐处理器代次隔离和定向设备 bootstrap 测试,并更新浏览器离线 Ownership 用例。
|
|
105
|
+
- 共享 Ownership 向量和 cross-SDK agent 接入公开 Store 签验;增加四语言签验及 Name Service 多签矩阵入口,测试落点与执行边界见 Python parity 文档。
|
|
106
|
+
|
|
107
|
+
## 0.5.19 — 2026-10-12
|
|
10
108
|
|
|
11
109
|
> 基线:`0.5.18` 的仓库快照 `1f03bf2d`;本节整理 2026-10-11 工作区的 SDK 增量。
|
|
12
110
|
|
|
@@ -49,82 +147,82 @@
|
|
|
49
147
|
- 扩展已读状态门面、单调缓存、身份切换、重连补偿、组织实体身份及服务事件验签测试;配套单域、浏览器、cross-SDK 和双域测试入口列于 Python parity 文档。
|
|
50
148
|
|
|
51
149
|
## 0.5.18 — 2026-10-06
|
|
52
|
-
|
|
53
|
-
### 新功能
|
|
54
|
-
|
|
55
|
-
#### Owner relation 与 AID 注册编排
|
|
56
|
-
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
57
|
-
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
58
|
-
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
150
|
+
|
|
151
|
+
### 新功能
|
|
152
|
+
|
|
153
|
+
#### Owner relation 与 AID 注册编排
|
|
154
|
+
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
155
|
+
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
156
|
+
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
59
157
|
- 新增 ownership proof canonical bytes、`factHash`/`statementHash`、UUID v4 `proofId` 和签名封套校验;AID 统一规范化为小写,普通 agent.md 更新保留现有 proof,不能通过普通 PUT 改 owner。
|
|
60
|
-
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
61
|
-
|
|
62
|
-
#### Owner relation Storage 与审计门面
|
|
63
|
-
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
64
|
-
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
65
|
-
|
|
66
|
-
### 修复
|
|
67
|
-
|
|
68
|
-
#### 证书与签名安全
|
|
69
|
-
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
70
|
-
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
71
|
-
|
|
72
|
-
#### V2 消息同步与投递
|
|
73
|
-
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
74
|
-
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
75
|
-
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
76
|
-
|
|
77
|
-
#### 会话、设备与连接生命周期
|
|
78
|
-
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
79
|
-
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
80
|
-
|
|
81
|
-
### 改进
|
|
82
|
-
|
|
83
|
-
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
84
|
-
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
85
|
-
|
|
86
|
-
### 测试
|
|
87
|
-
|
|
88
|
-
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
89
|
-
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
90
|
-
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
91
|
-
|
|
92
|
-
## 0.5.17 — 2026-09-19
|
|
93
|
-
|
|
94
|
-
### 新功能
|
|
95
|
-
|
|
96
|
-
#### 非持久消息与设备定向
|
|
97
|
-
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
98
|
-
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
99
|
-
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
100
|
-
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
101
|
-
|
|
102
|
-
#### 群管理与 agent.md 事件
|
|
103
|
-
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
104
|
-
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
105
|
-
|
|
106
|
-
### 修复
|
|
107
|
-
|
|
108
|
-
#### Storage / Group FS 上传 Content-Type
|
|
109
|
-
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
110
|
-
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
111
|
-
|
|
112
|
-
#### 群身份恢复
|
|
113
|
-
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
114
|
-
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
115
|
-
|
|
116
|
-
### 改进
|
|
117
|
-
|
|
118
|
-
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
119
|
-
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
120
|
-
|
|
121
|
-
### 测试
|
|
122
|
-
|
|
123
|
-
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
124
|
-
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
125
|
-
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
126
|
-
|
|
127
|
-
## 0.5.16 — 2026-09-16
|
|
158
|
+
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
159
|
+
|
|
160
|
+
#### Owner relation Storage 与审计门面
|
|
161
|
+
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
162
|
+
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
163
|
+
|
|
164
|
+
### 修复
|
|
165
|
+
|
|
166
|
+
#### 证书与签名安全
|
|
167
|
+
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
168
|
+
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
169
|
+
|
|
170
|
+
#### V2 消息同步与投递
|
|
171
|
+
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
172
|
+
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
173
|
+
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
174
|
+
|
|
175
|
+
#### 会话、设备与连接生命周期
|
|
176
|
+
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
177
|
+
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
178
|
+
|
|
179
|
+
### 改进
|
|
180
|
+
|
|
181
|
+
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
182
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
183
|
+
|
|
184
|
+
### 测试
|
|
185
|
+
|
|
186
|
+
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
187
|
+
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
188
|
+
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
189
|
+
|
|
190
|
+
## 0.5.17 — 2026-09-19
|
|
191
|
+
|
|
192
|
+
### 新功能
|
|
193
|
+
|
|
194
|
+
#### 非持久消息与设备定向
|
|
195
|
+
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
196
|
+
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
197
|
+
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
198
|
+
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
199
|
+
|
|
200
|
+
#### 群管理与 agent.md 事件
|
|
201
|
+
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
202
|
+
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
203
|
+
|
|
204
|
+
### 修复
|
|
205
|
+
|
|
206
|
+
#### Storage / Group FS 上传 Content-Type
|
|
207
|
+
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
208
|
+
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
209
|
+
|
|
210
|
+
#### 群身份恢复
|
|
211
|
+
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
212
|
+
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
213
|
+
|
|
214
|
+
### 改进
|
|
215
|
+
|
|
216
|
+
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
217
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
218
|
+
|
|
219
|
+
### 测试
|
|
220
|
+
|
|
221
|
+
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
222
|
+
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
223
|
+
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
224
|
+
|
|
225
|
+
## 0.5.16 — 2026-09-16
|
|
128
226
|
|
|
129
227
|
### 修复
|
|
130
228
|
|