Implement authorization import and revocation checks (T-503)
This commit is contained in:
+6
-3
@@ -3,12 +3,12 @@ id: T-503
|
||||
title: 授权界面、离线导入与撤销状态
|
||||
phase: 5
|
||||
deps: [T-502, T-204]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-20
|
||||
issue: null
|
||||
context_ref: null
|
||||
context_ref: b44531337d2fdca7c7c52fd42f66ad588ebcf9a2
|
||||
claim_branch: null
|
||||
work_branch: null
|
||||
work_branch: agent/codex/T-503
|
||||
write_paths:
|
||||
- docs/tasks/T-503.md
|
||||
- core/licensing/
|
||||
@@ -70,3 +70,6 @@ T-501/T-502 已经能在调用方给出机器摘要和公钥时,严格离线
|
||||
## 执行记录
|
||||
|
||||
- 2026-07-20:正式落成。冻结 Revocation List v1、7 天离线宽限和受限 `licenses/` 缓存;明确产品授权必须使用受验证 manifest 的 product ID,且 License v1 不足以实现本地 trial/rebind。默认发布构建仍以未配置状态 fail closed,真实 trust root/发布配置交由 T-603。
|
||||
- 2026-07-20:领取任务,基于 `b44531337d2fdca7c7c52fd42f66ad588ebcf9a2` 在 `agent/codex/T-503` 执行;先重跑基线,再实现授权存储、撤销状态、产品映射与双端 Gio 授权视图。
|
||||
- 2026-07-20:完成。新增严格 Revocation List v1(共享 canonical JSON、Ed25519、31 天最大有效期、7 天离线宽限)和 `LicenseStore`(验签后 1 MiB 受限缓存、digest 文件名复核、0600 原子写入、每次读取重新验证);`AuthorizationService` 仅发布不含 license ID/JSON/签名/路径的授权快照,并在无/坏/过期撤销缓存时拒绝授权。已验证 package manifest 的 `product_id`/`supports_trial` 现在写入安装记录,启动改按 product ID 检查,历史记录缺字段返回 `authorization_unavailable`。现代/Win7 Gio shell 均增加授权页和后台导入请求接线;默认 cmd 只发布 unconfigured 状态,不使用测试 key 或 allow-all。试用/换绑只展示已签名事实,不创建本地授权或变更绑定。
|
||||
- 2026-07-20:验证通过:`go -C core vet ./...`;`go -C core test -count=1 ./...`;`go -C app-modern test -count=1 ./...`;`go -C app-win7 test -count=1 ./...`;modern/Win7 Windows amd64 `go build ./cmd/softbox`(Win7 强制 Go 1.20.14);`./scripts/verify_phase0.ps1`;`python scripts/validate_agent_context.py`;`python scripts/validate_harness_governance.py`。提交前复核覆盖撤销边界、缓存 digest/布局、事件净化、旧安装记录 fail-closed 与 Gio Layout 无 I/O。
|
||||
|
||||
Reference in New Issue
Block a user