设置页“当前设备”保存按钮需要完成两件职责清晰的动作:
不再通过 claim 或心跳完成设置页登记。登记接口由 Admin 工单 #12 实现;claim 只在“获取任务”流程调用。
claim
PUT /api/v1/client/registration X-Client-Id: <稳定设备号> X-Request-Id: <uuid> Content-Type: application/json Authorization: Bearer <token>
请求沿用领取能力结构:
{ "client": {"name": "办公室-01"}, "supported_types": ["collect", "purchase"], "device": { "address": "192.168.0.173:5555", "platform": "android", "pdd_package": "com.xunmeng.pinduoduo" }, "capabilities": { "purchase_mode": "dry_run", "schema_versions": [1] } }
成功统一返回 200:
200
{ "registered": true, "client_id": "CLIENT-123456", "registered_at": "2026-08-06T09:00:00Z" }
正式细节以 #12 和双方权威契约为准。
admin.client_id
admin.client_name
AdminGateway
MockAdminGateway
register_client
HttpAdminGateway.register_client
QObject + moveToThread
client/src/settings_ui_event.py
client/src/settings_repository.py
client/src/admin_gateway.py
client/src/mock_admin_gateway.py
client/src/http_admin_gateway.py
client/requirements.txt
client/test/
git diff --check
实现前先等待 #12 的 Admin 测试和真实 curl 联调通过;Client 完成后使用同一契约用例验证 Mock 与 HTTP Gateway。
工单已创建,当前仅记录已确认流程和待确认契约,不开始编码。等待 Admin 心跳接口文档后先更新本工单,再实施。
方案已按用户确认更新:不再使用心跳或 claim 完成设置页登记;改为依赖 #12 的独立幂等登记接口。
依赖契约已由 #12 固化并提交:PUT /api/v1/client/registration,文档提交 02073ea。Client 实现继续等待 #12 Admin 接口和真实联调通过。
PUT /api/v1/client/registration
02073ea
依赖 #12 已验收关闭;现开始实施 #11。将按已确认方案完成本地设置持久化、Gateway 登记契约、HTTP 实现、Qt Worker 线程与离屏测试。
代码提交:fab5778
fab5778
归档提交:9884444
9884444
本地归档:docs/task/11-保存当前设备并登记-client.md
docs/task/11-保存当前设备并登记-client.md
工单保持打开,等待用户人工验收。
用户已确认 #11 验收通过。现关闭工单,并同步更新本地任务归档、MVP #2 和大工单 #1 的完成状态。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
设置页“当前设备”保存按钮需要完成两件职责清晰的动作:
不再通过
claim或心跳完成设置页登记。登记接口由 Admin 工单 #12 实现;claim只在“获取任务”流程调用。已确认接口
请求沿用领取能力结构:
成功统一返回
200:正式细节以 #12 和双方权威契约为准。
本地保存规则
admin.client_id是设备号权威来源;admin.client_name;实现方案
AdminGateway和MockAdminGateway,增加register_client。HttpAdminGateway.register_client。QObject + moveToThreadWorker 执行 HTTP,禁止阻塞主线程。暂定修改范围
client/src/settings_ui_event.pyclient/src/settings_repository.pyclient/src/admin_gateway.pyclient/src/mock_admin_gateway.pyclient/src/http_admin_gateway.pyclient/requirements.txt(启用固定版本 HTTP 依赖前单独确认)client/test/对应测试不做什么
claim;验收标准
admin.client_id;git diff --check通过。怎么验证
实现前先等待 #12 的 Admin 测试和真实 curl 联调通过;Client 完成后使用同一契约用例验证 Mock 与 HTTP Gateway。
工单已创建,当前仅记录已确认流程和待确认契约,不开始编码。等待 Admin 心跳接口文档后先更新本工单,再实施。
保存当前设备并通过心跳登记 Clientto 保存当前设备并登记 Client方案已按用户确认更新:不再使用心跳或 claim 完成设置页登记;改为依赖 #12 的独立幂等登记接口。
依赖契约已由 #12 固化并提交:
PUT /api/v1/client/registration,文档提交02073ea。Client 实现继续等待 #12 Admin 接口和真实联调通过。依赖 #12 已验收关闭;现开始实施 #11。将按已确认方案完成本地设置持久化、Gateway 登记契约、HTTP 实现、Qt Worker 线程与离屏测试。
实施完成,等待验收
PUT /api/v1/client/registration,通过 Qt Worker 后台登记;Admin 失败不回滚本地数据。git diff --check通过。代码提交:
fab5778归档提交:
9884444本地归档:
docs/task/11-保存当前设备并登记-client.md工单保持打开,等待用户人工验收。
用户已确认 #11 验收通过。现关闭工单,并同步更新本地任务归档、MVP #2 和大工单 #1 的完成状态。