 chenweiandClaude
|
a1ed2c2736
|
fix: qrcode 补入 dependencies(0.1.0 遗留,templates qrcode 模板硬依赖);requirements 冻结 mcp==1.29.0
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 15:01:17 +00:00 |
|
 chenweiandClaude
|
8a9019a925
|
docs: 生产链路目视闭环——set_mode image0 单步复测上屏(用户确认)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 12:27:16 +00:00 |
|
 chenweiandClaude
|
6a5ffda9fb
|
docs: 生产接口实测六步全过 + connected=false 解析误报闭环
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 04:33:20 +00:00 |
|
 chenweiandClaude
|
161c54ad5e
|
docs: MCP.md 常驻部署节 + PROGRESS 0.2.0-beta release 与生产性测试记录
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 01:35:33 +00:00 |
|
 chenweiandClaude
|
5130bb7aa2
|
docs: 测试数 207→208(与全量回归真值一致)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 01:05:58 +00:00 |
|
 chenweiandClaude
|
f975827971
|
docs: 0.2.0-beta 同步——CHANGELOG 复测与 beta 修正、测试数 195→207、DECISIONS 终审放行与依赖钉版留痕、Windows 部署清单 main+--allowed-hosts
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 01:02:11 +00:00 |
|
 chenweiandClaude
|
e9b919eeba
|
chore: 版本 0.2.0b1 + mcp 地板抬至 >=1.23(transport_security 自 1.23 引入 + CVE-2025-66416)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 01:02:09 +00:00 |
|
 chenweiandClaude
|
d33a1296ff
|
fix: ppclock-mcp --allowed-hosts 空串按 None 处理(空白名单自锁 localhost 421)
空串逗号拆分得空列表,TransportSecuritySettings(allowed_hosts=[]) 启用
DNS 重绑定防护后连 localhost 族一并 421。main() 解析层抽出
_parse_allowed_hosts,空列表以 or None 归一,保持 mcp 默认;含回归测试。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 01:02:07 +00:00 |
|
 chenweiandClaude
|
85e2413947
|
docs: spec 补 HTTP 复测记录——LAN Host 200/421/401 与 device_status 全链命中(熠管家)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 00:36:11 +00:00 |
|
 chenweiandClaude
|
eb229717c7
|
docs: PROGRESS 记录 ppclock-mcp 0.2.0 与 Windows 实测
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-31 00:06:44 +00:00 |
|
 chenweiandClaude
|
e8feb2d34a
|
docs: MCP.md 校准 + spec 实测与终审偏离记录
- 工具表:scan_devices 返回形状 data.devices=[{name,address,rssi}];
device_status 注明触发连接守候且刷新空闲计时(周期轮询阻止 idle 断开)
- 启动参数表新增 --allowed-hosts;Windows 部署段同步(含 421 说明)
- 连接行为节:重连覆盖面改为传输层异常全家
- spec 末尾加「实测与终审偏离记录」:5 码契约(DEVICE_DISCONNECTED 未 emit)、
mac 解析顺序修正(启动 --mac > 自动扫描记住,工具面无 mac 参数)、
异常面适配、熠管家 Windows 实测结论与 421 修复
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 23:56:01 +00:00 |
|
 chenweiandClaude
|
4819715c4d
|
test: dev extra 补 pytest-asyncio,防新环境 async 测试假绿
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 23:55:59 +00:00 |
|
 chenweiandClaude
|
69c4d209c0
|
fix(mcp): HTTP 模式新增 --allowed-hosts,修 LAN Host 421
Windows 实测:绑 0.0.0.0 后局域网请求被 mcp DNS 重绑定防护 421 拒。
- parse_args 加 --allowed-hosts(逗号分隔 Host 白名单,默认 None 保持
mcp 仅 localhost 族行为)
- build_server(manager, allowed_hosts=...) 经 TransportSecuritySettings
传入(mcp 1.29.0 API 与设计一致,无需调整)
- main() 逗号拆分(去空白、丢空段)
- 回归测试:TestClient 驱动真实 ASGI app(含 lifespan),
Host=192.168.61.35:8972 initialize → 200;Host=evil.example.com → 421
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 23:55:57 +00:00 |
|
 chenweiandClaude
|
1f78587bbd
|
fix(mcp): 异常面适配真实 bleak——重试/错误码映射覆盖异常全家
- C1: _run_with_retry 捕获面 TransportError → (base+local 两个 TransportError,
BleakError, OSError, asyncio.TimeoutError);真实掉线 bleak 裸抛
BleakError("Not connected") 不再绕过重连重试
- C2/I1a: _map_transport_error 接受异常全家,类型优先(asyncio.TimeoutError、
BleakDeviceNotFoundError → CONNECT_TIMEOUT)再按中英文消息映射;_call /
scan_devices / device_status 的 except 同步扩展,device_status 不再把传输层
错误兜底成 INTERNAL
- I2: _ensure_connected 的 __aenter__ 半途失败补 __aexit__,防半开连接泄漏
- M1: status() 先算 idle_seconds 再 _touch(),读数不再被自身归零
- docstring 校准:scan_devices 返回形状 data.devices;device_status 注明
触发连接守候且刷新空闲计时
- 新测试 8 个(先红后绿):raw BleakError 重连成功/耗尽上抛、aenter 清理、
idle_seconds 语义、local 中文 TransportError 两条映射、raw BleakError 映射、
device_status 传输错误映射
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 23:55:31 +00:00 |
|
 chenweiandClaude
|
16dbf494c9
|
docs: Windows 部署执行清单(熠管家协作)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 23:19:02 +00:00 |
|
 chenweiandClaude
|
de683fe9c2
|
docs+release: MCP.md 工具参考与部署指南;0.2.0
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 16:59:07 +00:00 |
|
chenwei
|
9506490ce2
|
feat(mcp): ppclock-mcp 入口——stdio/HTTP 双模 + token 鉴权 + 非回环守卫
|
2026-07-30 16:39:13 +00:00 |
|
 chenweiandClaude
|
bb3dbcb06a
|
fix(mcp): decode_image_source 非图片输入 OSError 归一 ValueError,守 INVALID_PARAM 契约
评审 fix round 1:Image.open 两处(路径/base64 分支)包 try/except OSError,
合法 base64 或存在文件但非可识别图片时不再让 PIL.UnidentifiedImageError
逃逸出 upload_image 炸 MCP 会话;补 decode 层与工具层覆盖测试各一。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 16:29:44 +00:00 |
|
 chenweiandClaude
|
22402a508d
|
feat(mcp): 13 个高层 MCP 工具 + 图源解码 + 统一输出契约
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 16:19:52 +00:00 |
|
chenwei
|
b280977869
|
feat(mcp): DeviceManager——按需连接+空闲保持+串行锁+掉线重连(方案 C)
|
2026-07-30 15:53:50 +00:00 |
|
 chenweiandClaude
|
6b8436ebd8
|
docs: ppclock-mcp 实施计划(5 任务,TDD)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 15:48:26 +00:00 |
|
 chenweiandClaude
|
10897ec97f
|
docs: ppclock-mcp 设计 spec(单层 MCP 服务器,方案 C 连接管理,13 工具)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-30 15:37:32 +00:00 |
|
agent
|
c2a52220aa
|
docs: K5 实证关闭——内置应用与上传图均 400x300 满幅(用户目视确认)
|
2026-07-30 15:18:05 +00:00 |
|
agent
|
aa03a208d9
|
docs: K5 记录——App 侧 2.13 指派为厂商付费家族模型,非设备问题
|
2026-07-30 15:15:30 +00:00 |
|
agent
|
5ae1886b00
|
docs: PROGRESS 记录 SDK 化与 0.1.0 里程碑
|
2026-07-30 14:59:46 +00:00 |
|
agent
|
2b90d3891f
|
docs+release: CHANGELOG/llms.txt/SDK README/API.md,0.1.0 候选
|
2026-07-30 14:58:18 +00:00 |
|
agent
|
122023cdf4
|
feat(sdk): PPClient 门面 API(via_local/via_bridge/via_uri/scan_devices + 全设备操作)+ __version__ 0.1.0,165 测试全绿
|
2026-07-30 14:53:59 +00:00 |
|
agent
|
a613c76114
|
refactor: SDK 包结构——transports/firmware 分包、bridge_server 入包+ppclock-bridge 入口、fw 工具入 SDK 域,151 测试全绿
|
2026-07-30 14:46:29 +00:00 |
|
agent
|
c13958db10
|
docs: A组补测收官+典狱长案例 review 闭环(PROGRESS 终态)
|
2026-07-30 14:38:09 +00:00 |
|
agent
|
42e56d04bb
|
docs: 典狱长 v2 官图上屏确认+槽位覆盖重绘机制增补
|
2026-07-30 14:37:09 +00:00 |
|
agent
|
1ebe317aa7
|
feat: 典狱长测试案例——线稿风格化处理+上屏+图片输入机制 review 入库
|
2026-07-29 16:21:53 +00:00 |
|
agent
|
8bfb99df40
|
docs: A组进展与打结①(time --tz 增强 + 对时守候中)
|
2026-07-29 15:20:56 +00:00 |
|
agent
|
2c10e6b3c8
|
feat(cli): time --tz 时区偏移(默认本机时区的修正项),151 测试全绿
|
2026-07-29 15:07:36 +00:00 |
|
agent
|
29e4c2b10c
|
feat(tools): rppclock 守候重试包装
|
2026-07-29 06:58:01 +00:00 |
|
agent
|
5646c0a327
|
docs: README 测试计数同步 150
|
2026-07-29 06:46:44 +00:00 |
|
agent
|
30e0211649
|
docs: 项目收官——G4 路径 B 定案,三大目标终态核对入库
|
2026-07-29 06:44:54 +00:00 |
|
agent
|
f9553628f3
|
feat: 工厂布局破解——线刷 .bin 完整解析(pP引导+双bank+pR产品头),G4 解法成文(docs/firmware-layout.md)
|
2026-07-29 06:33:59 +00:00 |
|
agent
|
250e30b9f3
|
docs: 烧后健康复查——DIS 原固件未变+331f 通道正常(零写入实证闭环)
|
2026-07-29 06:23:37 +00:00 |
|
agent
|
5a981439aa
|
docs: 全量烧录实证记录——状态20 产品头门禁定案(留证 suota-flash-log.jsonl),设备零风险
|
2026-07-29 05:57:22 +00:00 |
|
agent
|
14cd3277de
|
feat(tools): flash_run 内置守候循环
|
2026-07-29 05:34:52 +00:00 |
|
agent
|
31571b54ef
|
feat(tools): flash_run.py 全量烧录执行器(全程 JSONL 留证)
|
2026-07-29 05:19:41 +00:00 |
|
agent
|
0c456c667a
|
docs: 用户全量烧录授权记录(范围/留证/验证方案)
|
2026-07-29 05:18:14 +00:00 |
|
agent
|
101cc634a4
|
docs: vendor 固件目录实证(CH镜像=本地镜像)+ 全量烧录安全性论证入库
|
2026-07-29 05:14:39 +00:00 |
|
agent
|
237084c4a2
|
docs+chore: SUOTA 安全收尾——GPIO_MAP 固化 BE 序、排障全记录与 K4 解法路线入库
|
2026-07-29 05:06:17 +00:00 |
|
agent
|
94fea411a9
|
docs: SUOTA 状态码分层与 0x38000 产品头阻断根因入 DECISIONS
|
2026-07-29 04:56:12 +00:00 |
|
agent
|
ff9f2f84fd
|
refactor(tools): gpio_probe v2 单会话+复位+守候
|
2026-07-29 04:26:26 +00:00 |
|
agent
|
ff46d2985b
|
feat(tools): gpio_probe.py GPIO_MAP 候选实证探针(max_blocks=2 安全模式)
|
2026-07-29 04:20:24 +00:00 |
|
agent
|
3322bd2c82
|
feat(bridge): build 11 ota gpio_map 参数+max_blocks 探针模式
|
2026-07-29 04:18:47 +00:00 |
|
agent
|
201f91721c
|
docs: 状态码 8/16 固件证据与 StreamReader 根因入 DECISIONS
|
2026-07-29 03:46:47 +00:00 |
|
agent
|
9e0cf12118
|
fix(bridge): build 10——状态码 8/16 按会话信息码处理(固件反汇编实证:MEM_DEV type 检查路径)+ 阶段状态取证 + SPOTA 写特征入 CHARS
|
2026-07-29 03:45:45 +00:00 |
|