Skip to content

Commit fd2940e

Browse files
committed
docs(phase-12): close TA-P12-002 evidence and trackers
1 parent 6c8ec8f commit fd2940e

9 files changed

+264
-9
lines changed
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,37 @@
11
# TelAgent v1 Phase 12 执行产出(v1.2 候选能力冻结)
22

33
- 文档版本:v1.0
4-
- 状态:Phase 12 启动中`TA-P12-001` 已完成,`TA-P12-002` ~ `TA-P12-008` 待执行)
4+
- 状态:Phase 12 执行中`TA-P12-001``TA-P12-002` 已完成,`TA-P12-003` ~ `TA-P12-008` 待执行)
55
- 最后更新:2026-03-03
66

77
## 1. 产出目录
88

99
| Task ID | 文档 | 说明 |
1010
| --- | --- | --- |
1111
| TA-P12-001 | `ta-p12-001-phase12-candidate-pool-freeze-2026-03-03.md` | Phase 12 候选池冻结 |
12+
| TA-P12-002 | `ta-p12-002-audit-snapshot-export-2026-03-03.md` | 链上/链下审计快照导出(脱敏) |
1213

1314
## 2. 当前证据目录
1415

1516
- 启动文档:
1617
- `ta-p12-001-phase12-candidate-pool-freeze-2026-03-03.md`
18+
- `ta-p12-002-audit-snapshot-export-2026-03-03.md`
1719
- 机读清单:
1820
- `manifests/2026-03-03-p12-candidate-pool-freeze.json`
21+
- `manifests/2026-03-03-p12-audit-snapshot-check.json`
22+
- 日志:
23+
- `logs/2026-03-03-p12-node-build.txt`
24+
- `logs/2026-03-03-p12-node-test.txt`
25+
- `logs/2026-03-03-p12-audit-snapshot-check-run.txt`
1926

2027
## 3. 当前进展
2128

2229
- `TA-P12-001`:DONE
23-
- `TA-P12-002`TODO
30+
- `TA-P12-002`DONE
2431
- `TA-P12-003`:TODO
2532
- `TA-P12-004`:TODO
2633
- `TA-P12-005`:TODO
2734
- `TA-P12-006`:TODO
2835
- `TA-P12-007`:TODO
2936
- `TA-P12-008`:TODO
30-
- 下一步:进入 `TA-P12-002`(链上/链下审计快照导出)。
37+
- 下一步:进入 `TA-P12-003`(revoked DID 实时会话隔离)。
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
. |  WARN  Unsupported engine: wanted: {"node":">=22 <25"} (current: {"node":"v25.6.1","pnpm":"10.18.1"})
2+
[TA-P12-002] serviceHashingPass=true
3+
[TA-P12-002] apiEnvelopePass=true
4+
[TA-P12-002] apiDesensitizedPass=true
5+
[TA-P12-002] apiQueryValidationPass=true
6+
[TA-P12-002] decision=PASS
7+
[TA-P12-002] output=/Users/xiasenhai/workspace/private-repo/Bots/telagent/docs/implementation/phase-12/manifests/2026-03-03-p12-audit-snapshot-check.json
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
. |  WARN  Unsupported engine: wanted: {"node":">=22 <25"} (current: {"node":"v25.6.1","pnpm":"10.18.1"})
2+
3+
> @telagent/node@0.1.0 build /Users/xiasenhai/workspace/private-repo/Bots/telagent/packages/node
4+
> tsc -p tsconfig.json
5+
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
. |  WARN  Unsupported engine: wanted: {"node":">=22 <25"} (current: {"node":"v25.6.1","pnpm":"10.18.1"})
2+
3+
> @telagent/node@0.1.0 pretest /Users/xiasenhai/workspace/private-repo/Bots/telagent/packages/node
4+
> pnpm build
5+
6+
7+
> @telagent/node@0.1.0 build /Users/xiasenhai/workspace/private-repo/Bots/telagent/packages/node
8+
> tsc -p tsconfig.json
9+
10+
11+
> @telagent/node@0.1.0 test /Users/xiasenhai/workspace/private-repo/Bots/telagent/packages/node
12+
> node --test dist/*.test.js dist/**/*.test.js
13+
14+
✔ created response returns data envelope and Location header (50.304458ms)
15+
✔ list response returns paginated envelope shape (13.339875ms)
16+
✔ validation errors use RFC7807 shape and problem+json content type (4.178792ms)
17+
✔ node audit snapshot exports de-sensitized envelope and links.self (39.91ms)
18+
✔ node audit snapshot rejects invalid query with RFC7807 response (15.015792ms)
19+
✔ not found uses RFC7807 shape (1.502167ms)
20+
✔ identities and groups endpoints are accessible with expected status codes (23.708791ms)
21+
✔ messages, attachments and federation endpoints are accessible (16.825417ms)
22+
✔ routes only serve /api/v1/* prefix (42.870042ms)
23+
✔ identity endpoint responds with data envelope (9.884125ms)
24+
✔ mailbox store defaults to sqlite backend (4.899417ms)
25+
✔ mailbox store parses postgres backend config (0.857625ms)
26+
✔ postgres backend requires connection url (1.268083ms)
27+
✔ mailbox backend rejects unsupported value (0.214125ms)
28+
✔ federation protocol defaults to v1 and supports self version (0.936208ms)
29+
✔ federation supported protocols auto-include self version (0.243875ms)
30+
✔ domain proof config defaults to enforced mode (0.195541ms)
31+
✔ domain proof config accepts report-only mode and custom values (0.594042ms)
32+
✔ domain proof mode rejects unsupported value (3.087209ms)
33+
✔ domain proof numeric settings require positive integers (1.580625ms)
34+
✔ federation pinning defaults to disabled mode (2.964083ms)
35+
✔ federation pinning parses current/next keys and cutover timestamp (1.039375ms)
36+
✔ federation pinning rejects invalid mode (6.185084ms)
37+
✔ federation pinning enabled requires key mappings (2.566458ms)
38+
✔ federation pinning map requires domain=keys format (2.445417ms)
39+
✔ finalityDepth only materializes finalized blocks (49.929083ms)
40+
✔ reorg rollback replays canonical events and restores deterministic view (19.065042ms)
41+
✔ TA-P4-009 E2E main path: create -> invite -> accept -> group chat (text/image/file) (130.770292ms)
42+
✔ TA-P4-010 E2E offline 24h pull keeps dedupe and per-conversation order (23.104916ms)
43+
✔ TA-P4-006 init-upload sanitizes filename and emits attachment objectKey (1.189584ms)
44+
✔ TA-P4-006 complete-upload enforces manifest and checksum integrity (0.433667ms)
45+
✔ TA-P4-006 complete-upload is idempotent and rejects checksum divergence (0.140208ms)
46+
✔ TA-P4-006 expired upload sessions are cleaned and cannot be completed (0.125458ms)
47+
✔ TA-P11-003 accepts valid domain proof challenge and canonical hash (35.579667ms)
48+
✔ TA-P11-003 rejects illegal domain challenge on malformed domain (0.384125ms)
49+
✔ TA-P11-003 rejects when canonical domainProofHash mismatches payload (0.382916ms)
50+
✔ TA-P11-003 rotates challenge nonce near expiry and accepts renewed domain proof (1.718834ms)
51+
✔ TA-P11-003 report-only mode returns warning without blocking create flow (0.633875ms)
52+
✔ TA-P4-007 federation envelopes support idempotent retries (2.049416ms)
53+
✔ TA-P4-007 federation auth token is enforced when configured (1.371708ms)
54+
✔ TA-P4-007 federation rate limit rejects burst traffic (0.415625ms)
55+
✔ TA-P4-008 group-state sync enforces domain consistency (0.639083ms)
56+
✔ TA-P8-002 group-state sync rejects stale stateVersion and records resilience counters (2.672042ms)
57+
✔ TA-P8-002 group-state sync detects split-brain on same stateVersion with different state (0.527125ms)
58+
✔ TA-P9-002 federation accepts compatible protocol versions and tracks usage stats (18.027625ms)
59+
✔ TA-P9-002 federation rejects unsupported protocol versions (0.169ms)
60+
✔ TA-P11-004 federation pinning enforces sourceKeyId with current/next rotation (9.559709ms)
61+
✔ TA-P11-004 federation pinning report-only mode allows traffic but records warnings (0.294375ms)
62+
✔ TA-P11-005 federation DLQ captures failures and replays in sequence order (0.502375ms)
63+
✔ TA-P4-008 node-info publishes domain and federation security policy (0.686167ms)
64+
✔ assertSufficient throws INSUFFICIENT_GAS_TOKEN_BALANCE when native balance is not enough (0.856542ms)
65+
✔ TA-P11-006 rotate key keeps old key usable in grace window then expires (1.042834ms)
66+
✔ TA-P11-006 revoke and recover lifecycle is verifiable (0.250833ms)
67+
✔ TA-P11-006 rejects invalid did and malformed key id (0.108666ms)
68+
✔ TA-P4-002 sequence allocator keeps per-conversation monotonic order (1.6975ms)
69+
✔ TA-P4-003 dedupe keeps idempotent writes for same envelopeId (0.285375ms)
70+
✔ TA-P4-003 duplicate envelopeId with different payload is rejected (0.417292ms)
71+
✔ TA-P4-004 cleanupExpired removes expired envelopes and releases dedupe key (0.267834ms)
72+
✔ TA-P4-005 provisional envelopes are retracted when group is reorged back (1.369959ms)
73+
✔ TA-P4-005 send is rejected when group chain state is REORGED_BACK (0.527333ms)
74+
✔ TA-P12-002 buildAuditSnapshot exports hashed retraction samples (1.018667ms)
75+
✔ TA-P12-002 buildAuditSnapshot normalizes sample and scan bounds (0.09025ms)
76+
✔ TA-P6-001 mailbox persists messages and seq after service restart (21.868917ms)
77+
✔ TA-P11-006 message send validates signal/mls key lifecycle status (0.793417ms)
78+
✔ TA-P11-007 revoked DID cannot continue sending new messages (0.168541ms)
79+
✔ TA-P5-002 monitoring snapshot normalizes dynamic route segments and records counters (2.0685ms)
80+
✔ TA-P5-002 monitoring emits warning/critical alerts when thresholds are exceeded (0.284208ms)
81+
ℹ tests 67
82+
ℹ suites 0
83+
ℹ pass 67
84+
ℹ fail 0
85+
ℹ cancelled 0
86+
ℹ skipped 0
87+
ℹ todo 0
88+
ℹ duration_ms 600.135042
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"phase": "Phase 12",
3+
"taskId": "TA-P12-002",
4+
"generatedAt": "2026-03-03T09:43:07.300Z",
5+
"summary": {
6+
"serviceHashingPass": true,
7+
"apiEnvelopePass": true,
8+
"apiDesensitizedPass": true,
9+
"apiQueryValidationPass": true
10+
},
11+
"decision": "PASS",
12+
"details": {
13+
"service": {
14+
"groupId": "0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
15+
"snapshot": {
16+
"activeEnvelopeCount": 0,
17+
"retractedCount": 1,
18+
"retractedByReason": {
19+
"REORGED_BACK": 1
20+
},
21+
"sampledRetractions": [
22+
{
23+
"envelopeIdHash": "2c2aaea44e41ad2ba007a376b407349d6866c6c9d91b72959b5d1cd7d6cc8d55",
24+
"conversationIdHash": "c1573db4e636ce719c1f04f4d2a7c0f1a860e843e23f79126a3e21cb1ca96f3b",
25+
"reason": "REORGED_BACK",
26+
"retractedAtMs": 1772582400000
27+
}
28+
],
29+
"sampleSize": 1,
30+
"retractionScanLimit": 20
31+
},
32+
"expectedEnvelopeHash": "2c2aaea44e41ad2ba007a376b407349d6866c6c9d91b72959b5d1cd7d6cc8d55",
33+
"expectedConversationHash": "c1573db4e636ce719c1f04f4d2a7c0f1a860e843e23f79126a3e21cb1ca96f3b"
34+
},
35+
"api": {
36+
"selfLink": "/api/v1/node/audit-snapshot?sample_size=3&retraction_scan_limit=100",
37+
"leakedTokens": [],
38+
"invalidStatus": 400,
39+
"invalidCode": "VALIDATION_ERROR",
40+
"invalidDetail": "sample_size must be a positive integer"
41+
}
42+
}
43+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# TA-P12-002 链上/链下审计快照导出(脱敏)(2026-03-03)
2+
3+
- Task ID:TA-P12-002
4+
- 阶段:Phase 12(v1.2 候选能力冻结与排程)
5+
- 状态:DONE
6+
- 负责人角色:Backend + Security
7+
8+
## 1. 目标
9+
10+
落地可审计、可脱敏导出的节点快照能力,覆盖群组、消息、联邦、安全与监控摘要,满足以下验收:
11+
12+
1. 审计快照可通过 `/api/v1/node/audit-snapshot` 导出;
13+
2. 返回体遵循 `{data, links}` envelope;
14+
3. 不暴露敏感明文(域名、controller、envelopeId、conversationId);
15+
4. 非法查询参数返回 RFC7807 错误。
16+
17+
## 2. 实现范围
18+
19+
### 2.1 MessageService 审计摘要能力
20+
21+
- 更新:`packages/node/src/services/message-service.ts`
22+
- 新增:
23+
- `MessageAuditSnapshot`
24+
- `MessageAuditRetractionSample`
25+
- `buildAuditSnapshot({sampleSize,retractionScanLimit})`
26+
- 行为:
27+
- 聚合 active/retracted 计数;
28+
-`envelopeId``conversationId` 输出 `sha256` 脱敏哈希;
29+
-`sampleSize``retractionScanLimit` 进行边界归一化。
30+
31+
### 2.2 GroupService 查询补齐
32+
33+
- 更新:`packages/node/src/services/group-service.ts`
34+
- 新增:`listGroups(state?)`
35+
- 作用:为节点审计路由提供群组全集与状态统计入口。
36+
37+
### 2.3 Node API 新增审计快照端点
38+
39+
- 更新:`packages/node/src/api/routes/node.ts`
40+
- 新增端点:`GET /api/v1/node/audit-snapshot`
41+
- 查询参数:
42+
- `sample_size`(默认 20,最大 100)
43+
- `retraction_scan_limit`(默认 2000,最大 100000)
44+
- 返回摘要:
45+
- actor:`didHash` + `controllerHash`
46+
- groups:状态计数、成员计数、域名哈希样本
47+
- messages:retraction 审计摘要
48+
- federation:域名哈希、允许源域名哈希、pinning 哈希摘要
49+
- monitoring:监控 totals/alerts/mailboxMaintenance
50+
- 错误处理:参数非法时走 RFC7807(`application/problem+json`)。
51+
52+
## 3. 测试与校验
53+
54+
### 3.1 单测/契约测试
55+
56+
- 更新:`packages/node/src/services/message-service.test.ts`
57+
- `TA-P12-002 buildAuditSnapshot exports hashed retraction samples`
58+
- `TA-P12-002 buildAuditSnapshot normalizes sample and scan bounds`
59+
- 更新:`packages/node/src/api-contract.test.ts`
60+
- `node audit snapshot exports de-sensitized envelope and links.self`
61+
- `node audit snapshot rejects invalid query with RFC7807 response`
62+
- 更新:`packages/node/src/api-prefix.test.ts`
63+
- 覆盖 `/api/v1/node/audit-snapshot``/v1/node/audit-snapshot` 前缀校验。
64+
65+
### 3.2 Phase 12 专项检查脚本
66+
67+
- 新增:`packages/node/scripts/run-phase12-audit-snapshot-check.ts`
68+
- 校验项:
69+
1. service 层 retraction 哈希脱敏正确;
70+
2. API 返回 envelope + self link 正确;
71+
3. API 响应无明文泄露;
72+
4. 非法 query 返回 `VALIDATION_ERROR`
73+
- 产出机读清单:`docs/implementation/phase-12/manifests/2026-03-03-p12-audit-snapshot-check.json`
74+
75+
## 4. 执行命令
76+
77+
```bash
78+
pnpm --filter @telagent/node build
79+
pnpm --filter @telagent/node test
80+
pnpm --filter @telagent/node exec tsx scripts/run-phase12-audit-snapshot-check.ts
81+
```
82+
83+
## 5. 证据
84+
85+
- 代码:
86+
- `packages/node/src/services/group-service.ts`
87+
- `packages/node/src/services/message-service.ts`
88+
- `packages/node/src/api/routes/node.ts`
89+
- `packages/node/src/services/message-service.test.ts`
90+
- `packages/node/src/api-contract.test.ts`
91+
- `packages/node/src/api-prefix.test.ts`
92+
- `packages/node/scripts/run-phase12-audit-snapshot-check.ts`
93+
- 日志:
94+
- `docs/implementation/phase-12/logs/2026-03-03-p12-node-build.txt`
95+
- `docs/implementation/phase-12/logs/2026-03-03-p12-node-test.txt`
96+
- `docs/implementation/phase-12/logs/2026-03-03-p12-audit-snapshot-check-run.txt`
97+
- 清单:
98+
- `docs/implementation/phase-12/manifests/2026-03-03-p12-audit-snapshot-check.json`
99+
100+
## 6. 结论
101+
102+
- `TA-P12-002`:PASS
103+
- 审计快照导出能力已落地,满足“可导出审计摘要且不泄露明文”的验收要求。

docs/implementation/telagent-v1-implementation-plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@
194194

195195
- 候选池与优先级完成签字冻结;
196196
- 每个候选项具有可验证的最小验收标准;
197-
- `TA-P12-002` 可直接开工。
197+
- `TA-P12-002` 已完成并具备可验证证据,`TA-P12-003` 可直接开工。
198198

199199
## 6. 质量保障策略
200200

docs/implementation/telagent-v1-iteration-board.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,8 @@
207207
- 已完成:`TA-P11-009`(Web Console v2 运营能力增强)
208208
- 已完成:`TA-P11-010`(Phase 11 Gate 评审与收口)
209209
- 已完成:`TA-P12-001`(Phase 12 候选池冻结)
210-
- 下一批 Ready:继续 Phase 12 执行(优先 `TA-P12-002` ~ `TA-P12-004`
210+
- 已完成:`TA-P12-002`(链上/链下审计快照导出(脱敏))
211+
- 下一批 Ready:继续 Phase 12 执行(优先 `TA-P12-003` ~ `TA-P12-004`
211212

212213
## 4.2 Blockers(2026-03-03 更新)
213214

@@ -358,14 +359,15 @@
358359

359360
- `TA-P12-001`:DONE(候选池与优先级冻结,见 `docs/implementation/phase-12/ta-p12-001-phase12-candidate-pool-freeze-2026-03-03.md`)。
360361
- 候选池机读清单:`docs/implementation/phase-12/manifests/2026-03-03-p12-candidate-pool-freeze.json`
361-
- `TA-P12-002`:TODO(链上/链下审计快照导出(脱敏))。
362+
- `TA-P12-002`:DONE(审计快照导出 API + 脱敏校验 + 检查脚本,见 `docs/implementation/phase-12/ta-p12-002-audit-snapshot-export-2026-03-03.md`)。
363+
- `TA-P12-002` 机读清单:`docs/implementation/phase-12/manifests/2026-03-03-p12-audit-snapshot-check.json`
362364
- `TA-P12-003`:TODO(revoked DID 实时会话隔离(订阅+驱逐))。
363365
- `TA-P12-004`:TODO(联邦 SLO 自动化)。
364366
- `TA-P12-005`:TODO(Agent SDK Python Beta)。
365367
- `TA-P12-006`:TODO(Web Console v2.1 运营与应急面板)。
366368
- `TA-P12-007`:TODO(多节点密钥轮换编排脚本)。
367369
- `TA-P12-008`:TODO(Phase 12 Gate 收口)。
368-
- 阶段状态:Phase 12 已启动,进入 `TA-P12-002`
370+
- 阶段状态:Phase 12 执行中,进入 `TA-P12-003`
369371

370372
## 5. 周会与 Gate 节奏建议
371373

docs/implementation/telagent-v1-task-breakdown.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ flowchart LR
128128
| TA-P11-009 | Phase 11 | Web Console v2 运营能力增强 | Frontend + SRE | 2 | TA-P11-001 | web v2 console + e2e | 支持群状态/回滚入口/联邦视图 | DONE |
129129
| TA-P11-010 | Phase 11 | Phase 11 Gate 评审与收口 | TL + QA | 0.5 | TA-P11-002, TA-P11-003, TA-P11-004, TA-P11-005, TA-P11-006, TA-P11-007, TA-P11-008, TA-P11-009 | gate 结论文档 | Phase 11 正式关闭 | DONE |
130130
| TA-P12-001 | Phase 12 | 冻结 v1.2 候选池与优先级 | TL + BE + Security + SRE + QA | 0.5 | TA-P11-010 | candidate pool freeze doc + manifest | 候选池冻结并明确首个 MUST 任务 | DONE |
131-
| TA-P12-002 | Phase 12 | 链上/链下审计快照导出(脱敏) | Backend + Security | 2 | TA-P12-001 | audit snapshot service + export api | 可导出审计摘要且不泄露明文 | TODO |
131+
| TA-P12-002 | Phase 12 | 链上/链下审计快照导出(脱敏) | Backend + Security | 2 | TA-P12-001 | audit snapshot service + export api | 可导出审计摘要且不泄露明文 | DONE |
132132
| TA-P12-003 | Phase 12 | revoked DID 实时会话隔离(订阅+驱逐) | Security + Backend | 1.5 | TA-P12-001 | revocation subscription + quarantine flow | 撤销事件后会话进入隔离且发送被拒绝 | TODO |
133133
| TA-P12-004 | Phase 12 | 联邦 SLO 自动化(DLQ 自动重放 + burn-rate 告警) | SRE + Backend | 1.5 | TA-P12-001 | replay scheduler + alert policy | 自动重放与多级告警可验证 | TODO |
134134
| TA-P12-005 | Phase 12 | Agent SDK Python Beta | DX + Backend | 2 | TA-P12-001 | python sdk + quickstart | 30 分钟内完成建群与发消息集成 | TODO |
@@ -307,7 +307,7 @@ flowchart LR
307307
| Task ID | 状态 | 证据链接 | 阻塞项 | 下一步动作 |
308308
| --- | --- | --- | --- | --- |
309309
| TA-P12-001 | DONE | `docs/implementation/phase-12/ta-p12-001-phase12-candidate-pool-freeze-2026-03-03.md`, `docs/implementation/phase-12/manifests/2026-03-03-p12-candidate-pool-freeze.json`, `docs/implementation/phase-12/README.md` || 进入 `TA-P12-002` 链上/链下审计快照导出 |
310-
| TA-P12-002 | TODO | `docs/implementation/phase-12/README.md` || 落地脱敏审计快照导出与 API |
310+
| TA-P12-002 | DONE | `docs/implementation/phase-12/ta-p12-002-audit-snapshot-export-2026-03-03.md`, `packages/node/src/api/routes/node.ts`, `packages/node/src/services/message-service.ts`, `packages/node/src/services/group-service.ts`, `packages/node/src/api-contract.test.ts`, `packages/node/src/services/message-service.test.ts`, `packages/node/scripts/run-phase12-audit-snapshot-check.ts`, `docs/implementation/phase-12/logs/2026-03-03-p12-node-build.txt`, `docs/implementation/phase-12/logs/2026-03-03-p12-node-test.txt`, `docs/implementation/phase-12/logs/2026-03-03-p12-audit-snapshot-check-run.txt`, `docs/implementation/phase-12/manifests/2026-03-03-p12-audit-snapshot-check.json` || 进入 `TA-P12-003`(revoked DID 实时会话隔离) |
311311
| TA-P12-003 | TODO | `docs/implementation/phase-12/README.md` || 落地 revoked DID 实时会话隔离 |
312312
| TA-P12-004 | TODO | `docs/implementation/phase-12/README.md` || 落地联邦 SLO 自动化 |
313313
| TA-P12-005 | TODO | `docs/implementation/phase-12/README.md` || 交付 Python SDK Beta |

0 commit comments

Comments
 (0)