@agentunion/fastaun-browser 0.5.18 → 0.5.20
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 +172 -79
- package/_packed_docs/CHANGELOG.md +172 -79
- package/_packed_docs/INDEX.md +244 -116
- package/_packed_docs/KITE_DOCS_GUIDE.md +98 -69
- package/_packed_docs/agent.md/SCHEMA.md +245 -205
- 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/aun/345/210/206/345/270/203/345/274/217/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +42 -15
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +4 -4
- package/_packed_docs/protocol/01-/350/272/253/344/273/275/344/270/216/345/207/255/350/257/201/345/215/217/350/256/256-auth.md +45 -134
- package/_packed_docs/protocol/06-/346/234/215/345/212/241/345/215/217/350/256/256.md +1072 -1072
- package/_packed_docs/protocol/07-/351/224/231/350/257/257/347/240/201/344/270/216/347/212/266/346/200/201/346/234/272.md +5 -20
- package/_packed_docs/protocol/10-Group-/345/255/220/345/215/217/350/256/256.md +687 -668
- package/_packed_docs/protocol/11-Storage-/345/255/220/345/215/217/350/256/256.md +19 -28
- package/_packed_docs/protocol/Ownership/345/215/217/350/256/256/345/256/232/344/271/211.md +443 -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 +658 -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 +4 -0
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +1 -1
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +68 -61
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +1 -1
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +279 -285
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
- package/_packed_docs/sdk/09-group-rpc-manual.md +271 -235
- package/_packed_docs/sdk/09-message-rpc-manual.md +47 -6
- package/_packed_docs/sdk/09-storage-rpc-manual.md +70 -68
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +63 -34
- package/_packed_docs/sdk/INDEX.md +105 -34
- 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 +922 -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 +300 -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 +382 -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 +476 -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 +17 -3
- package/dist/agent-md-schema.d.ts.map +1 -1
- package/dist/agent-md-schema.js +94 -26
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +54 -3
- package/dist/agent-md.d.ts.map +1 -1
- package/dist/agent-md.js +711 -65
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +58 -46
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +254 -248
- 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 +27 -33
- package/dist/aid.js.map +1 -1
- package/dist/auth.d.ts +4 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +426 -39
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +38179 -32054
- package/dist/cert-utils.d.ts +50 -2
- package/dist/cert-utils.d.ts.map +1 -1
- package/dist/cert-utils.js +105 -47
- package/dist/cert-utils.js.map +1 -1
- package/dist/client/delivery.d.ts +22 -1
- package/dist/client/delivery.d.ts.map +1 -1
- package/dist/client/delivery.js +389 -78
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/rpc-pipeline.d.ts.map +1 -1
- package/dist/client/rpc-pipeline.js +103 -77
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.d.ts +1 -0
- package/dist/client/v2-e2ee.d.ts.map +1 -1
- package/dist/client/v2-e2ee.js +182 -89
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +100 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1220 -25
- package/dist/client.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/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -2
- package/dist/errors.js.map +1 -1
- package/dist/events.d.ts +9 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +72 -13
- package/dist/events.js.map +1 -1
- package/dist/facades.d.ts +82 -2
- package/dist/facades.d.ts.map +1 -1
- package/dist/facades.js +100 -6
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/keystore/index.d.ts +17 -0
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.d.ts +10 -1
- package/dist/keystore/indexeddb-shared.d.ts.map +1 -1
- package/dist/keystore/indexeddb-shared.js +111 -0
- package/dist/keystore/indexeddb-shared.js.map +1 -1
- package/dist/keystore/indexeddb-token-store.d.ts +7 -1
- package/dist/keystore/indexeddb-token-store.d.ts.map +1 -1
- package/dist/keystore/indexeddb-token-store.js +30 -1
- package/dist/keystore/indexeddb-token-store.js.map +1 -1
- package/dist/org-protocol.d.ts +98 -0
- package/dist/org-protocol.d.ts.map +1 -0
- package/dist/org-protocol.js +1802 -0
- package/dist/org-protocol.js.map +1 -0
- package/dist/ownership-proof.d.ts +93 -5
- package/dist/ownership-proof.d.ts.map +1 -1
- package/dist/ownership-proof.js +239 -53
- package/dist/ownership-proof.js.map +1 -1
- package/dist/ownership-v21.d.ts +194 -0
- package/dist/ownership-v21.d.ts.map +1 -0
- package/dist/ownership-v21.js +678 -0
- package/dist/ownership-v21.js.map +1 -0
- package/dist/ownership-workflow.d.ts +151 -0
- package/dist/ownership-workflow.d.ts.map +1 -0
- package/dist/ownership-workflow.js +1229 -0
- package/dist/ownership-workflow.js.map +1 -0
- package/dist/seq-tracker.d.ts +1 -0
- package/dist/seq-tracker.d.ts.map +1 -1
- package/dist/seq-tracker.js +10 -2
- package/dist/seq-tracker.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +83 -0
- package/dist/tools/cross-sdk-agent.d.ts.map +1 -1
- package/dist/tools/cross-sdk-agent.js +415 -7
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.d.ts +7 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +90 -2
- package/dist/transport.js.map +1 -1
- package/dist/v2/e2ee/decrypt.d.ts +1 -0
- package/dist/v2/e2ee/decrypt.d.ts.map +1 -1
- package/dist/v2/e2ee/decrypt.js +9 -1
- package/dist/v2/e2ee/decrypt.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,85 +4,178 @@
|
|
|
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.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
###
|
|
65
|
-
|
|
66
|
-
####
|
|
67
|
-
- `
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.5.20 — 未发布
|
|
10
|
+
|
|
11
|
+
> 基线:2026-10-12 发布的 npm `0.5.19`,发布包已与仓库快照 `ab05792f` 核对;本节整理 2026-10-15 工作区的 SDK 增量。
|
|
12
|
+
|
|
13
|
+
### 新功能
|
|
14
|
+
|
|
15
|
+
#### 通用签验与文档多签
|
|
16
|
+
- 新增异步 `AIDStore.sign/verify`,支持 `raw/document`、显式 `text/file` 输入、分离签名、TAG 和追加签名;raw 文件保留二进制,`file://` 文本按字面处理,文件就地签署使用显式可写文件句柄。
|
|
17
|
+
- 文档每一签覆盖此前完整字节前缀,附签必须包含 `signer_aid`;按签名 AID 和精确证书指纹逐签验证,尾签块总量限制为 2048 bytes。`agent.md` 与 Ownership 文件复用通用签验核心。
|
|
18
|
+
|
|
19
|
+
### 修复
|
|
20
|
+
|
|
21
|
+
#### 消息同步、已读事件与设备
|
|
22
|
+
- Pull Gate 改为同 namespace 单飞、每客户端最多 4 个 namespace 并发;群事件与群消息使用独立 namespace,保留前台优先和同级 FIFO,超时任务结束前不释放同 namespace。
|
|
23
|
+
- 后台补拉保留目标上界和 `has_more/remaining`,超过默认页预算、小页/空页或暂时失败后继续调度;RPC 响应、前台排空和 gate 空闲触发恢复,关闭后台同步或切换身份、连接时废弃旧代任务。
|
|
24
|
+
- Forward 末页发布并持久化水位后独立发送最终累计 ACK,移除为提交 ACK 而发起的额外空 Pull;分页只捎带已提交水位,volatile 页消费后按最新 cursor 续拉。
|
|
25
|
+
- `message.read_changed`、`group.read_changed` 和 `read_state_sync` 在出队及每个处理器执行前复核身份代次;首次合法 raw 已读事件同时交付应用事件和协议镜像,避免身份切换后交付旧事件或漏发首次更新。
|
|
26
|
+
- 显式定向设备发送遇 bootstrap 缓存缺少目标时仅强制刷新一次;无定向、已强制查询及其他加密错误不额外重试。
|
|
27
|
+
|
|
28
|
+
#### agent.md 与本地草稿
|
|
29
|
+
- 自有 AID 默认 resolve 优先返回 IndexedDB 中的草稿/正文,读取不依赖联网或仍有效的私钥、证书;显式 refresh 和远端身份继续下载。
|
|
30
|
+
- 候选稿在网络预检前保存,失败稿由显式 upload 重试;下载和连接自动恢复不覆盖、重传失败稿,只有权威确认精确同一候选后才清除,旧上传完成不删除较新草稿或 pending。
|
|
31
|
+
- 损坏草稿元数据返回 `persistence_unavailable`;草稿失败不阻断独立 Ownership 任务和实体生命周期 checkpoint。
|
|
32
|
+
- 历史名片读取兼容缺失 Schema、旧指纹/CN 和旧群单签,按签署时间核验证书并隔离历史兼容缓存;新上传及现代实体多签保持严格校验。
|
|
33
|
+
- group/org 名片改为实体私钥主签、当前 owner 使用本人 token 上传,可选追加 owner 附签;移除实体额外 V2 上传授权,拒绝 owner 直接替代实体主签。
|
|
34
|
+
- 多签上传和重试保留原始字节;普通正文更新保留既有 owner/ownership 材料并使用原 ETag CAS。下载协商 `multi-v1`,兼容响应头大小写,304 缺少本地正文时重新获取。
|
|
35
|
+
|
|
36
|
+
#### Ownership 2.1 共识与恢复
|
|
37
|
+
- 权威读取核对 NS 原 ETag、owner 当前完整原文、摘要和存在性,使用 head/get/head 并在验签后复读;30 秒观察窗口包含首次网络等待,不再以 Storage `revision/object_id` 作为共识依据。
|
|
38
|
+
- owner.md 改走上传会话、HTTP PUT 和 `complete_upload`,使用 `expected_version` 条件提交;写前复查原件,CAS 冲突保留为 conflict,共识结果移除 `owner_md_revision`。
|
|
39
|
+
- pending 绑定起始完整快照和原始声明,不能因 owner 或数字版本相同复用旧审批;release 保持 base 版本,sub 清理后投影归零,新绑定从 1 开始,未清理的旧 release 不覆盖新关系。
|
|
40
|
+
- released 共识、恢复及清理均复核当前文件和新鲜证书状态;不能仅凭解锁认定完成或补造历史完成证据。损坏任务保留并失败关闭,其他 subject 任务仍可恢复。
|
|
41
|
+
- 补齐 PKI critical extension、BasicConstraints、KeyUsage 和路径长度校验,当前权威证书读取不复用历史兼容缓存或接受重定向。
|
|
42
|
+
|
|
43
|
+
#### 凭证、组织请求与实体恢复
|
|
44
|
+
- `request_binding` 最长 300 秒,admission 不超过成员 binding 截止时间;完整 verify 返回前重查异步等待后可能过期的凭证、状态证明和请求绑定,复用本轮已解析证书及限流结果。
|
|
45
|
+
- 已有合法 `client_signature` 保留并核对实际请求,冲突直接拒绝;服务事件限制白名单,规范化 AID 大小写并去重目标集合。
|
|
46
|
+
- 组织门面分离本地 `aidStore` 参数时保留显式 null;转让缺少替代成员材料先拒绝,checkpoint 已存在但私钥丢失时不生成替代密钥。
|
|
47
|
+
|
|
48
|
+
### 兼容性与语言边界
|
|
49
|
+
|
|
50
|
+
- 显式登记允许 agent 不指定 owner;human 仍禁止 owner,group/org 仍要求 owner,无 owner 的 agent 不创建 Ownership 待续跑意图。
|
|
51
|
+
- 签验和证书解析继续使用异步 WebCrypto;文件输入使用浏览器对象/句柄,持久草稿和 Ownership 任务使用 IndexedDB,不引入 Node.js 路径接口。
|
|
52
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.20`。
|
|
53
|
+
|
|
54
|
+
### 测试
|
|
55
|
+
|
|
56
|
+
- 扩展通用签验、多签原文、历史证书、离线草稿、损坏元数据、Ownership 原件 CAS/清理重绑、请求时效及实体恢复测试。
|
|
57
|
+
- 扩展 namespace 并发、后台续拉、末页 ACK、volatile cursor、已读事件逐处理器代次隔离和定向设备 bootstrap 测试,并更新浏览器离线 Ownership 用例。
|
|
58
|
+
- 共享 Ownership 向量和 cross-SDK agent 接入公开 Store 签验;增加四语言签验及 Name Service 多签矩阵入口,测试落点与执行边界见 Python parity 文档。
|
|
59
|
+
|
|
60
|
+
## 0.5.19 — 2026-10-12
|
|
61
|
+
|
|
62
|
+
> 基线:`0.5.18` 的仓库快照 `1f03bf2d`;本节整理 2026-10-11 工作区的 SDK 增量。
|
|
63
|
+
|
|
64
|
+
### 新功能
|
|
65
|
+
|
|
66
|
+
#### 跨设备已读未读
|
|
67
|
+
- 新增 `MessageFacade.read/readState`、`GroupFacade.read/readState`,分别上报话题的 `last_read_message_id`、查询当前 AID 的跨设备汇总及当前设备 seq 映射;业务已读状态独立于消息 ACK、Pull 游标和群事件游标。
|
|
68
|
+
- 消费 `message.read_changed`、`group.read_changed`,按公共 `last_read_order` 单调更新缓存并抑制重复/倒序事件;切换 AID 或设备时隔离缓存和在途查询结果。
|
|
69
|
+
- 重连后补查已登记的话题并发布本地 `read_state_sync` 完成事件,携带汇总状态及逐项错误;保留 `current_device_seq=null` 和 `mapping_status`;超过安全整数范围的公共顺序和设备 seq 保留为精确十进制字符串。
|
|
70
|
+
|
|
71
|
+
#### Ownership 2.1 管理
|
|
72
|
+
- 新增 `bindOwneraid`、`bindSubaid`、`releaseSubaid`、`transferSubaid`、`acceptOwnershipRequest`、`rejectOwnershipRequest` 和 `checkOwnershipConsensus`,覆盖双向发起绑定、释放、转移、审批和独立共识检查。
|
|
73
|
+
- 关系依据 sub 的 NS `agent.md` 与 owner 的 `sub_aids/{sub_aid}/owner.md`;使用本人尾签、`relation_version`、owner 锁、NS ETag 和 Storage revision CAS 验证及提交,不依赖旧 Auth owner operation。
|
|
74
|
+
- `aun.ownership.sdk.v1` 控制消息走加密消息通道,由 SDK 消费;审批、inbox/outbox、待提交原始字节和步骤先持久化到 IndexedDB,连接后续跑。任务完成需要重新读取权威文件验证目标共识,不能由通知或发送成功推断。
|
|
75
|
+
- 新增 `ownership.request/action_required/progress/completed/rejected/stopped/error` 应用事件;group/org 使用专属生命周期,通用 Ownership 2.1 返回 `not_applicable`。
|
|
76
|
+
|
|
77
|
+
#### 凭证与组织服务
|
|
78
|
+
- 增加 `credential` 门面的 `create`、`verifySignature`、`verify`、`verifyRegistrationReceipt` 及登记、撤销、状态/撤销列表 RPC;区分离线签名校验和包含凭证链、实时状态、能力范围、实际请求绑定的完整验证。
|
|
79
|
+
- 增加 `org.lifecycle/member/credential/authz/audit` 门面、组织请求准备、成员双签绑定和转让接受签署;组织请求绑定目标服务、nonce、请求摘要及必要的代表证明,并进入统一客户端签名管线。
|
|
80
|
+
- 组织/群身份由当前 owner 持有;专属转移强制 rekey。实体 `agent.md` 由 owner 使用本人证书和私钥代签、代上传,绑定 `signer_aid`、实体证书指纹及上传授权,失败阶段可恢复。
|
|
81
|
+
- `org.*` 与 `credential.revoked` 事件在进入应用事件队列前验证签发服务、接收身份、证书、时间窗口及签名,并按服务/事件/接收身份去重。
|
|
82
|
+
|
|
83
|
+
### 修复
|
|
84
|
+
|
|
85
|
+
- Ownership 控制消息落盘或处理失败时保留有序队列/sender IK 待重试项,避免提前提交交付水位或 ACK;V2 解密保留控制消息原始 JSON,供重复键和严格字段校验。
|
|
86
|
+
- Ownership 证书验证绑定当前证书代际、生命周期状态和可信吊销证据;普通名片上传与关系字段变更分开,实体解散或身份失效后清理相应本地状态。
|
|
87
|
+
- 错误映射优先保留服务端 `data.retryable`,组织请求采用一致 canonical JSON 和请求参数摘要。
|
|
88
|
+
|
|
89
|
+
### 兼容性与语言边界
|
|
90
|
+
|
|
91
|
+
- `AIDStore.register(aid, {type, owner?, exttype?})` 登记接口改为显式传入 type;human 禁止 owner,agent/group/org 要求 owner。登记意图持久化后由连接期续跑关系流程,group/org 交给各自生命周期。
|
|
92
|
+
- 旧 `auth.aid_register_*` / `auth.aid_bind_*` 关系编排已移除;`bindAid`、`bindOwner`、`releaseOwnership` 的 legacy 入口返回 `unsupported_protocol`,调用方应迁移到本节的 2.1 管理 API。
|
|
93
|
+
- 浏览器的凭证创建、成员绑定、转让签署及验签 helper 使用异步 WebCrypto;Ownership 任务、revision CAS 和登记意图保存到 IndexedDB。
|
|
94
|
+
- 组织创建、接受转让及解散可通过 `aidStore` 接入实体身份编排;`org.resource/task/host/workflow` 当前通过 `client.call` 使用。
|
|
95
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.19`。
|
|
96
|
+
|
|
97
|
+
### 测试
|
|
98
|
+
|
|
99
|
+
- 增加 Ownership 2.1 和组织/凭证协议的跨语言共享向量、严格解析、签名/吊销、CAS、审批与重连恢复测试。
|
|
100
|
+
- 扩展已读状态门面、单调缓存、身份切换、重连补偿、组织实体身份及服务事件验签测试;配套单域、浏览器、cross-SDK 和双域测试入口列于 Python parity 文档。
|
|
101
|
+
|
|
102
|
+
## 0.5.18 — 2026-10-06
|
|
103
|
+
|
|
104
|
+
### 新功能
|
|
105
|
+
|
|
106
|
+
#### Owner relation 与 AID 注册编排
|
|
107
|
+
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
108
|
+
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
109
|
+
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
110
|
+
- 新增 ownership proof canonical bytes、`factHash`/`statementHash`、UUID v4 `proofId` 和签名封套校验;AID 统一规范化为小写,普通 agent.md 更新保留现有 proof,不能通过普通 PUT 改 owner。
|
|
111
|
+
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
112
|
+
|
|
113
|
+
#### Owner relation Storage 与审计门面
|
|
114
|
+
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
115
|
+
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
116
|
+
|
|
117
|
+
### 修复
|
|
118
|
+
|
|
119
|
+
#### 证书与签名安全
|
|
120
|
+
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
121
|
+
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
122
|
+
|
|
123
|
+
#### V2 消息同步与投递
|
|
124
|
+
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
125
|
+
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
126
|
+
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
127
|
+
|
|
128
|
+
#### 会话、设备与连接生命周期
|
|
129
|
+
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
130
|
+
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
131
|
+
|
|
132
|
+
### 改进
|
|
133
|
+
|
|
134
|
+
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
135
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
136
|
+
|
|
137
|
+
### 测试
|
|
138
|
+
|
|
139
|
+
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
140
|
+
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
141
|
+
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
142
|
+
|
|
143
|
+
## 0.5.17 — 2026-09-19
|
|
144
|
+
|
|
145
|
+
### 新功能
|
|
146
|
+
|
|
147
|
+
#### 非持久消息与设备定向
|
|
148
|
+
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
149
|
+
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
150
|
+
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
151
|
+
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
152
|
+
|
|
153
|
+
#### 群管理与 agent.md 事件
|
|
154
|
+
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
155
|
+
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
156
|
+
|
|
157
|
+
### 修复
|
|
158
|
+
|
|
159
|
+
#### Storage / Group FS 上传 Content-Type
|
|
160
|
+
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
161
|
+
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
162
|
+
|
|
163
|
+
#### 群身份恢复
|
|
164
|
+
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
165
|
+
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
166
|
+
|
|
167
|
+
### 改进
|
|
168
|
+
|
|
169
|
+
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
170
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
171
|
+
|
|
172
|
+
### 测试
|
|
173
|
+
|
|
174
|
+
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
175
|
+
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
176
|
+
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
177
|
+
|
|
178
|
+
## 0.5.16 — 2026-09-16
|
|
86
179
|
|
|
87
180
|
### 修复
|
|
88
181
|
|
|
@@ -4,85 +4,178 @@
|
|
|
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.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
###
|
|
65
|
-
|
|
66
|
-
####
|
|
67
|
-
- `
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0.5.20 — 未发布
|
|
10
|
+
|
|
11
|
+
> 基线:2026-10-12 发布的 npm `0.5.19`,发布包已与仓库快照 `ab05792f` 核对;本节整理 2026-10-15 工作区的 SDK 增量。
|
|
12
|
+
|
|
13
|
+
### 新功能
|
|
14
|
+
|
|
15
|
+
#### 通用签验与文档多签
|
|
16
|
+
- 新增异步 `AIDStore.sign/verify`,支持 `raw/document`、显式 `text/file` 输入、分离签名、TAG 和追加签名;raw 文件保留二进制,`file://` 文本按字面处理,文件就地签署使用显式可写文件句柄。
|
|
17
|
+
- 文档每一签覆盖此前完整字节前缀,附签必须包含 `signer_aid`;按签名 AID 和精确证书指纹逐签验证,尾签块总量限制为 2048 bytes。`agent.md` 与 Ownership 文件复用通用签验核心。
|
|
18
|
+
|
|
19
|
+
### 修复
|
|
20
|
+
|
|
21
|
+
#### 消息同步、已读事件与设备
|
|
22
|
+
- Pull Gate 改为同 namespace 单飞、每客户端最多 4 个 namespace 并发;群事件与群消息使用独立 namespace,保留前台优先和同级 FIFO,超时任务结束前不释放同 namespace。
|
|
23
|
+
- 后台补拉保留目标上界和 `has_more/remaining`,超过默认页预算、小页/空页或暂时失败后继续调度;RPC 响应、前台排空和 gate 空闲触发恢复,关闭后台同步或切换身份、连接时废弃旧代任务。
|
|
24
|
+
- Forward 末页发布并持久化水位后独立发送最终累计 ACK,移除为提交 ACK 而发起的额外空 Pull;分页只捎带已提交水位,volatile 页消费后按最新 cursor 续拉。
|
|
25
|
+
- `message.read_changed`、`group.read_changed` 和 `read_state_sync` 在出队及每个处理器执行前复核身份代次;首次合法 raw 已读事件同时交付应用事件和协议镜像,避免身份切换后交付旧事件或漏发首次更新。
|
|
26
|
+
- 显式定向设备发送遇 bootstrap 缓存缺少目标时仅强制刷新一次;无定向、已强制查询及其他加密错误不额外重试。
|
|
27
|
+
|
|
28
|
+
#### agent.md 与本地草稿
|
|
29
|
+
- 自有 AID 默认 resolve 优先返回 IndexedDB 中的草稿/正文,读取不依赖联网或仍有效的私钥、证书;显式 refresh 和远端身份继续下载。
|
|
30
|
+
- 候选稿在网络预检前保存,失败稿由显式 upload 重试;下载和连接自动恢复不覆盖、重传失败稿,只有权威确认精确同一候选后才清除,旧上传完成不删除较新草稿或 pending。
|
|
31
|
+
- 损坏草稿元数据返回 `persistence_unavailable`;草稿失败不阻断独立 Ownership 任务和实体生命周期 checkpoint。
|
|
32
|
+
- 历史名片读取兼容缺失 Schema、旧指纹/CN 和旧群单签,按签署时间核验证书并隔离历史兼容缓存;新上传及现代实体多签保持严格校验。
|
|
33
|
+
- group/org 名片改为实体私钥主签、当前 owner 使用本人 token 上传,可选追加 owner 附签;移除实体额外 V2 上传授权,拒绝 owner 直接替代实体主签。
|
|
34
|
+
- 多签上传和重试保留原始字节;普通正文更新保留既有 owner/ownership 材料并使用原 ETag CAS。下载协商 `multi-v1`,兼容响应头大小写,304 缺少本地正文时重新获取。
|
|
35
|
+
|
|
36
|
+
#### Ownership 2.1 共识与恢复
|
|
37
|
+
- 权威读取核对 NS 原 ETag、owner 当前完整原文、摘要和存在性,使用 head/get/head 并在验签后复读;30 秒观察窗口包含首次网络等待,不再以 Storage `revision/object_id` 作为共识依据。
|
|
38
|
+
- owner.md 改走上传会话、HTTP PUT 和 `complete_upload`,使用 `expected_version` 条件提交;写前复查原件,CAS 冲突保留为 conflict,共识结果移除 `owner_md_revision`。
|
|
39
|
+
- pending 绑定起始完整快照和原始声明,不能因 owner 或数字版本相同复用旧审批;release 保持 base 版本,sub 清理后投影归零,新绑定从 1 开始,未清理的旧 release 不覆盖新关系。
|
|
40
|
+
- released 共识、恢复及清理均复核当前文件和新鲜证书状态;不能仅凭解锁认定完成或补造历史完成证据。损坏任务保留并失败关闭,其他 subject 任务仍可恢复。
|
|
41
|
+
- 补齐 PKI critical extension、BasicConstraints、KeyUsage 和路径长度校验,当前权威证书读取不复用历史兼容缓存或接受重定向。
|
|
42
|
+
|
|
43
|
+
#### 凭证、组织请求与实体恢复
|
|
44
|
+
- `request_binding` 最长 300 秒,admission 不超过成员 binding 截止时间;完整 verify 返回前重查异步等待后可能过期的凭证、状态证明和请求绑定,复用本轮已解析证书及限流结果。
|
|
45
|
+
- 已有合法 `client_signature` 保留并核对实际请求,冲突直接拒绝;服务事件限制白名单,规范化 AID 大小写并去重目标集合。
|
|
46
|
+
- 组织门面分离本地 `aidStore` 参数时保留显式 null;转让缺少替代成员材料先拒绝,checkpoint 已存在但私钥丢失时不生成替代密钥。
|
|
47
|
+
|
|
48
|
+
### 兼容性与语言边界
|
|
49
|
+
|
|
50
|
+
- 显式登记允许 agent 不指定 owner;human 仍禁止 owner,group/org 仍要求 owner,无 owner 的 agent 不创建 Ownership 待续跑意图。
|
|
51
|
+
- 签验和证书解析继续使用异步 WebCrypto;文件输入使用浏览器对象/句柄,持久草稿和 Ownership 任务使用 IndexedDB,不引入 Node.js 路径接口。
|
|
52
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.20`。
|
|
53
|
+
|
|
54
|
+
### 测试
|
|
55
|
+
|
|
56
|
+
- 扩展通用签验、多签原文、历史证书、离线草稿、损坏元数据、Ownership 原件 CAS/清理重绑、请求时效及实体恢复测试。
|
|
57
|
+
- 扩展 namespace 并发、后台续拉、末页 ACK、volatile cursor、已读事件逐处理器代次隔离和定向设备 bootstrap 测试,并更新浏览器离线 Ownership 用例。
|
|
58
|
+
- 共享 Ownership 向量和 cross-SDK agent 接入公开 Store 签验;增加四语言签验及 Name Service 多签矩阵入口,测试落点与执行边界见 Python parity 文档。
|
|
59
|
+
|
|
60
|
+
## 0.5.19 — 2026-10-12
|
|
61
|
+
|
|
62
|
+
> 基线:`0.5.18` 的仓库快照 `1f03bf2d`;本节整理 2026-10-11 工作区的 SDK 增量。
|
|
63
|
+
|
|
64
|
+
### 新功能
|
|
65
|
+
|
|
66
|
+
#### 跨设备已读未读
|
|
67
|
+
- 新增 `MessageFacade.read/readState`、`GroupFacade.read/readState`,分别上报话题的 `last_read_message_id`、查询当前 AID 的跨设备汇总及当前设备 seq 映射;业务已读状态独立于消息 ACK、Pull 游标和群事件游标。
|
|
68
|
+
- 消费 `message.read_changed`、`group.read_changed`,按公共 `last_read_order` 单调更新缓存并抑制重复/倒序事件;切换 AID 或设备时隔离缓存和在途查询结果。
|
|
69
|
+
- 重连后补查已登记的话题并发布本地 `read_state_sync` 完成事件,携带汇总状态及逐项错误;保留 `current_device_seq=null` 和 `mapping_status`;超过安全整数范围的公共顺序和设备 seq 保留为精确十进制字符串。
|
|
70
|
+
|
|
71
|
+
#### Ownership 2.1 管理
|
|
72
|
+
- 新增 `bindOwneraid`、`bindSubaid`、`releaseSubaid`、`transferSubaid`、`acceptOwnershipRequest`、`rejectOwnershipRequest` 和 `checkOwnershipConsensus`,覆盖双向发起绑定、释放、转移、审批和独立共识检查。
|
|
73
|
+
- 关系依据 sub 的 NS `agent.md` 与 owner 的 `sub_aids/{sub_aid}/owner.md`;使用本人尾签、`relation_version`、owner 锁、NS ETag 和 Storage revision CAS 验证及提交,不依赖旧 Auth owner operation。
|
|
74
|
+
- `aun.ownership.sdk.v1` 控制消息走加密消息通道,由 SDK 消费;审批、inbox/outbox、待提交原始字节和步骤先持久化到 IndexedDB,连接后续跑。任务完成需要重新读取权威文件验证目标共识,不能由通知或发送成功推断。
|
|
75
|
+
- 新增 `ownership.request/action_required/progress/completed/rejected/stopped/error` 应用事件;group/org 使用专属生命周期,通用 Ownership 2.1 返回 `not_applicable`。
|
|
76
|
+
|
|
77
|
+
#### 凭证与组织服务
|
|
78
|
+
- 增加 `credential` 门面的 `create`、`verifySignature`、`verify`、`verifyRegistrationReceipt` 及登记、撤销、状态/撤销列表 RPC;区分离线签名校验和包含凭证链、实时状态、能力范围、实际请求绑定的完整验证。
|
|
79
|
+
- 增加 `org.lifecycle/member/credential/authz/audit` 门面、组织请求准备、成员双签绑定和转让接受签署;组织请求绑定目标服务、nonce、请求摘要及必要的代表证明,并进入统一客户端签名管线。
|
|
80
|
+
- 组织/群身份由当前 owner 持有;专属转移强制 rekey。实体 `agent.md` 由 owner 使用本人证书和私钥代签、代上传,绑定 `signer_aid`、实体证书指纹及上传授权,失败阶段可恢复。
|
|
81
|
+
- `org.*` 与 `credential.revoked` 事件在进入应用事件队列前验证签发服务、接收身份、证书、时间窗口及签名,并按服务/事件/接收身份去重。
|
|
82
|
+
|
|
83
|
+
### 修复
|
|
84
|
+
|
|
85
|
+
- Ownership 控制消息落盘或处理失败时保留有序队列/sender IK 待重试项,避免提前提交交付水位或 ACK;V2 解密保留控制消息原始 JSON,供重复键和严格字段校验。
|
|
86
|
+
- Ownership 证书验证绑定当前证书代际、生命周期状态和可信吊销证据;普通名片上传与关系字段变更分开,实体解散或身份失效后清理相应本地状态。
|
|
87
|
+
- 错误映射优先保留服务端 `data.retryable`,组织请求采用一致 canonical JSON 和请求参数摘要。
|
|
88
|
+
|
|
89
|
+
### 兼容性与语言边界
|
|
90
|
+
|
|
91
|
+
- `AIDStore.register(aid, {type, owner?, exttype?})` 登记接口改为显式传入 type;human 禁止 owner,agent/group/org 要求 owner。登记意图持久化后由连接期续跑关系流程,group/org 交给各自生命周期。
|
|
92
|
+
- 旧 `auth.aid_register_*` / `auth.aid_bind_*` 关系编排已移除;`bindAid`、`bindOwner`、`releaseOwnership` 的 legacy 入口返回 `unsupported_protocol`,调用方应迁移到本节的 2.1 管理 API。
|
|
93
|
+
- 浏览器的凭证创建、成员绑定、转让签署及验签 helper 使用异步 WebCrypto;Ownership 任务、revision CAS 和登记意图保存到 IndexedDB。
|
|
94
|
+
- 组织创建、接受转让及解散可通过 `aidStore` 接入实体身份编排;`org.resource/task/host/workflow` 当前通过 `client.call` 使用。
|
|
95
|
+
- 包配置、锁文件、运行时 `VERSION`、V2 envelope 的 `sdk_version` 及加密 conformance 期望统一为 `0.5.19`。
|
|
96
|
+
|
|
97
|
+
### 测试
|
|
98
|
+
|
|
99
|
+
- 增加 Ownership 2.1 和组织/凭证协议的跨语言共享向量、严格解析、签名/吊销、CAS、审批与重连恢复测试。
|
|
100
|
+
- 扩展已读状态门面、单调缓存、身份切换、重连补偿、组织实体身份及服务事件验签测试;配套单域、浏览器、cross-SDK 和双域测试入口列于 Python parity 文档。
|
|
101
|
+
|
|
102
|
+
## 0.5.18 — 2026-10-06
|
|
103
|
+
|
|
104
|
+
### 新功能
|
|
105
|
+
|
|
106
|
+
#### Owner relation 与 AID 注册编排
|
|
107
|
+
- 新增 `register({aid, type, owner?, ...})`,由 SDK 编排 `auth.aid_register_prepare` → `auth.aid_register_submit` → 带 `ownerOperationId` 的 agent.md 上传 → `auth.aid_register_activate`;保留 `register(aid)` 的 legacy 兼容语义。
|
|
108
|
+
- 新增 `bindAid`、`getAidBindingStatus`、`resumeAidBinding` 和 `changeOwner`,分别覆盖已有 `legacy_unbound`/`unbound` AID 的绑定、状态查询、operation 恢复和三方换 owner;绑定不重新签发证书。
|
|
109
|
+
- 注册规则明确 human 不得指定 owner,非 human 必须指定 owner,只有 agent 支持 self-owner;外部 owner 需要 subject 与 owner 双签,换 owner 需要旧 owner、subject、新 owner 签名及 `expected_relation_version` CAS。
|
|
110
|
+
- 新增 ownership proof canonical bytes、`factHash`/`statementHash`、UUID v4 `proofId` 和签名封套校验;AID 统一规范化为小写,普通 agent.md 更新保留现有 proof,不能通过普通 PUT 改 owner。
|
|
111
|
+
- owner operation 有效期为 7 天;pending、失败或过期期间证书、登录、连接和基本消息通信保持可用,关系状态可查询并从 operation ID 恢复。
|
|
112
|
+
|
|
113
|
+
#### Owner relation Storage 与审计门面
|
|
114
|
+
- 补齐 `storage.relation_backup_provision`、`relation_backup_revoke`、`relation_backup_status` 的 SDK 契约和集成验证;关系目录固定为 `.aun/subjects/<lowercase_subject_aid>`,撤销只回收 ACL、保留数据并递增 ACL generation。
|
|
115
|
+
- `MessageFacade` 和 `GroupFacade` 新增 `getAuditStatus`,统一映射对应的审计状态 RPC。
|
|
116
|
+
|
|
117
|
+
### 修复
|
|
118
|
+
|
|
119
|
+
#### 证书与签名安全
|
|
120
|
+
- `AID.sign` 拒绝无效、过期或尚未生效证书;新增 `verifyWithContext`,绑定 expected AID、完整证书指纹、签名时间及当前有效性选项。
|
|
121
|
+
- RPC client signature、事件签名和 agent.md 签名路径增加证书有效期检查,并统一处理 `signature_verification_unavailable`、`type_change_blocked`、`aid_binding_required` 等关系错误。
|
|
122
|
+
|
|
123
|
+
#### V2 消息同步与投递
|
|
124
|
+
- P2P/Group V2 Pull 增加有界生产者消费者流水线、volatile cursor 去重、epoch mismatch 单次重试和后台 gap fill;`background_sync` 关闭时不再隐式启动后台补齐。
|
|
125
|
+
- inline push 在终态解密失败时仍提交连续序号并保留 ACK pending;Push、Pull、sender IK 延迟恢复共用去重和并发占用状态,减少交错投递重复。
|
|
126
|
+
- 当前设备 self-sync 消息只推进本地发布序号而不重复投递,其它设备仍可收到;公开 payload 保留 `sender_device_id` 和 `direction`,继续隐藏内部 slot 字段。
|
|
127
|
+
|
|
128
|
+
#### 会话、设备与连接生命周期
|
|
129
|
+
- 加强 slot ID/full slot ID 隔离,支持 long/short connection、short TTL 和 `background_sync` 组合;重连任务增加所有权、代际保护和旧连接结果隔离。
|
|
130
|
+
- 连接阶段暂存 Push,待应用监听器注册后排空,降低 `delivery.changed` 丢失和竞态;补齐多设备明文 P2P/Group self-sync 边界。
|
|
131
|
+
|
|
132
|
+
### 改进
|
|
133
|
+
|
|
134
|
+
- 四端公开类型和结果继续对齐 volatile cursor、ACK、设备来源及审计状态;当前 CA/Name Service 仅实现 `signing` 与 `group_identity` 证书用途,`org_identity` 不作为已实现能力暴露。
|
|
135
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.18`。
|
|
136
|
+
|
|
137
|
+
### 测试
|
|
138
|
+
|
|
139
|
+
- 新增 ownership proof 四端 golden vector、大小写 AID、非法 UUID/控制字符和跨 SDK 验签测试。
|
|
140
|
+
- 增加 JavaScript owner relation 集成测试,覆盖新注册、self-owner、外部 owner 双签、legacy bind、operation 恢复、换 owner、unbind、Storage ACL/数据保留和重建访问。
|
|
141
|
+
- 扩展证书有效期、上下文验签、审计 facade、V2 Pull/Push、volatile 分页、设备隔离、连接代际和浏览器 E2E/conformance 测试。
|
|
142
|
+
|
|
143
|
+
## 0.5.17 — 2026-09-19
|
|
144
|
+
|
|
145
|
+
### 新功能
|
|
146
|
+
|
|
147
|
+
#### 非持久消息与设备定向
|
|
148
|
+
- 正 `ttl` 的 V2 加密消息会透传到最终发送 RPC;`storage=volatile` 消息使用独立 volatile cursor 拉取和 ACK,不进入持久 `seq`、seq-tracker 或持久水位。
|
|
149
|
+
- Push、Pull 和 sender IK 延迟恢复共用按消息去重及并发占用状态;纯 volatile 页可独立续页,cursor epoch 不匹配时清空旧 cursor 并重试一次,切换 AID、设备或 slot 时重置本地 volatile 状态。
|
|
150
|
+
- `message.v2.pull` / `message.v2.ack` 接入公开调用管线和实例上下文校验;`message.ack` 支持只提交 `volatile_cursor(s)` / `volatile_ids`。
|
|
151
|
+
- V2 `message.send` 支持 `device_id` / `to_device_id` 定向接收设备,同时保留发送方 self-sync 和 audit recipients;应用消息公开规范化的 `sender_device_id`,不再暴露内部 slot 字段。
|
|
152
|
+
|
|
153
|
+
#### 群管理与 agent.md 事件
|
|
154
|
+
- `GroupFacade` 新增 `block`、`unblock`、`getBlocklist`、`reportStatus` 和 `getMemberStatuses`;屏蔽、禁言和成员状态可通过高层 SDK 直接调用。
|
|
155
|
+
- 远端 agent.md 已有版本的 ETag 或 Last-Modified 变化时,通过应用事件管线发布 `agentmd.changed`。
|
|
156
|
+
|
|
157
|
+
### 修复
|
|
158
|
+
|
|
159
|
+
#### Storage / Group FS 上传 Content-Type
|
|
160
|
+
- `writeBytes`、`uploadFile` 和 Group FS 上传在未显式指定类型时按实际字节识别 MIME,并以路径后缀作为回退。
|
|
161
|
+
- 上传会话、HTTP PUT 和 `completeUpload` 使用同一 Content-Type;保留 session 的其它 header 并替换冲突的 Content-Type,修复 OSS 预签名校验不一致导致的 403。
|
|
162
|
+
|
|
163
|
+
#### 群身份恢复
|
|
164
|
+
- 匿名群创建在 RPC 前持久化群密钥并复用稳定的 `_create_request_id`,响应丢失后的重试不会重复创建群;命名群恢复可复用已保存身份。
|
|
165
|
+
- 新群主收到 `owner_transfer_rekey_pending` 后只自动完成一次转让;重连时即使服务端角色仍为 member,也会按本地 pending 状态续跑 `complete_transfer`。
|
|
166
|
+
|
|
167
|
+
### 改进
|
|
168
|
+
|
|
169
|
+
- Message、SendResult、PullResult 和 AckResult 类型补充 volatile 元数据、cursor、ACK 结果及 `sender_device_id`;`status` 接受 `accepted`。
|
|
170
|
+
- SDK、锁文件、运行时版本、V2 E2EE envelope `sdk_version` 和 conformance 期望统一更新为 `0.5.17`。
|
|
171
|
+
|
|
172
|
+
### 测试
|
|
173
|
+
|
|
174
|
+
- 增加 volatile Push/Pull/ACK、纯 volatile 分页、cursor 恢复、并发去重、定向设备和公开字段边界测试。
|
|
175
|
+
- 增加群屏蔽/禁言/成员状态、匿名创建幂等、群主转让自动完成与恢复测试,并扩展浏览器 E2E 覆盖。
|
|
176
|
+
- 增加 Storage/Group FS MIME 与 Content-Type 一致性测试及 conformance 版本验证。
|
|
177
|
+
|
|
178
|
+
## 0.5.16 — 2026-09-16
|
|
86
179
|
|
|
87
180
|
### 修复
|
|
88
181
|
|