From 4def26a44d4c3658224a312b0f3b45cd0c32db48 Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 17 Oct 2026 01:02:04 +0900 Subject: [PATCH 1/2] Record USB iPhone OpenClaw connection handoff --- docs/3.0/PROGRESS.md | 6 ++++++ docs/native-ios/BACKEND-ACCEPTANCE.md | 20 ++++++++++++++++++++ docs/native-ios/PLAN.md | 4 ++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/docs/3.0/PROGRESS.md b/docs/3.0/PROGRESS.md index 687cddfd..1eb468a9 100644 --- a/docs/3.0/PROGRESS.md +++ b/docs/3.0/PROGRESS.md @@ -1,5 +1,11 @@ # PROGRESS · Clawket 3.0 进度日志 +- 2026-10-17 Native USB iPhone OpenClaw 连接交付测试(RN 保持默认)。 + - 按 owner 明确要求安装真机开发版。唯一 USB iPhone 的 IORegistry 硬件标识与 CoreDevice wired 记录完全匹配,目标为 iPhone Air/iOS27.0.1;现有开发者模式、配对及 WDA profile 均有效。fresh main0ceb1edf 独立工作树、ios/heavy 租约及 jobs2 开发编译69.9秒通过,校验QA bundle、deep strict codesign和profile包含该硬件后,仅更新安装 com.p697.clawket.nativeqa/3.1.2。未卸载、清数据、替换RN或打Archive/IPA;仅关闭自有QA模拟器,未碰其他模拟器/无线手机。 + - 实际有线WebDriver使用产品Direct表单;已知LAN endpoint仍对应本机当前接口/既有Gateway端口,不改bind/TLS/认证或重启服务。令牌只由当前已知operator配置在进程内读取,经系统Paste填入SecureField,随后手机临时剪贴板改为中性文本;保存复用同URL/transport的已有Native连接与label,其他连接保留。凭据通过后出现真实当前device-approval context,不再是上轮AUTH_TOKEN_MISMATCH。 + - 当前App公钥指纹与唯一pending的32字节公钥SHA256、operator角色及Native默认7 scopes逐项匹配。首个CLI --url+env-auth在参数校验被拒;默认list可能local fallback,不能算Gateway RPC认证。首次approve返回1且错误未保留,原因未证,未盲重放。改用子进程env URL+token的正式loopback shared-auth读取,确认旧pending/paired均无该身份,再由App显式Check again取得不同requestId、30秒内新请求,同当前UI指纹/角色/scopes再核后仅批准该精确请求,CLI返回0,再走正常握手。 + - 真机实际显示已连接及4个OpenClaw Agent;只重启QA App后再次达到ready、4项目录、无Alert,截图已实际查看。未发测试消息,推理/Stop/上传/弱网/Relay/完整N5不据此通过,留给owner在该开发版先测。自有WDA已定向停止并确认runner75,ios/heavy已释放,手机留在OpenClaw目录;Gateway仅新增该Native客户端的精确设备批准,无共享服务配置/凭据轮换/发布变更。 + - 2026-10-17 Native 第一轮 UI 初验独立入口(RN 保持默认)。 - 原合成peer进程已退出,原Studio当前只有缓存/正在重连;不以新peer冒充原physical恢复。另起专用UI peer、新physical及新saved connection,显示名「Clawket · UI 体验」,已实际通过产品连接表单建立。WebDriver仅发送一次文字与三张已知fixture图片,独立stats为acceptedSends1/completedRuns1/active0/images3/dedupe0;完成窗口App无Alert/Stop,一张新回复图片实际原生QuickLook→完成通过。这是新合成UI窗口,不是真模型或原连接恢复验收。 - 原Studio空draft原UTF8及三资源ID/顺序与baseline完全一致,未发held。真实Hermes长回复已通过,Native Stop、OpenClaw认证、Relay/弱网恢复仍未通过;VoiceOver/完整N5与owner接受未完成,不以文档/CI替代UI或模型验收。 diff --git a/docs/native-ios/BACKEND-ACCEPTANCE.md b/docs/native-ios/BACKEND-ACCEPTANCE.md index da7b5bd8..10d0fe03 100644 --- a/docs/native-ios/BACKEND-ACCEPTANCE.md +++ b/docs/native-ios/BACKEND-ACCEPTANCE.md @@ -1,5 +1,25 @@ # Native backend acceptance +## 2026-10-17: OpenClaw on the verified USB iPhone + +The owner requested a development install and OpenClaw connection for their own testing. IORegistry contained one USB iPhone; its hardware identifier exactly matched CoreDevice's wired record for an iPhone Air on iOS 27.0.1. Existing pairing, Developer Mode and the WebDriver profile were verified. No wireless phone or iPhone Mirroring was used. + +Fresh main `0ceb1edf` built in its own SSD worktree with two jobs and the iOS/heavy leases (69.9 seconds). Deep strict signing, the QA bundle and the profile's hardware coverage were checked before installing `com.p697.clawket.nativeqa`, version 3.1.2. This updated the independent development app without uninstalling or clearing it, replacing React Native, or creating an Archive/IPA. Only the owned QA simulator was shut down before the build. + +WebDriver used the actual Direct form. The known LAN endpoint was rechecked against this Mac's current interface and existing Gateway port. The current operator credential was read in memory from its known configuration, entered through the actual system Paste menu, and removed from the phone's temporary clipboard afterward. No credential is included in this document or command output. Saving reused the existing matching URL/transport connection and retained its label and the other connections. This is `backend=openclaw`, `transport=custom`, over LAN; no Gateway binding, TLS, authentication setting or service was changed. + +The app reached a current device-approval context. Its displayed public fingerprint matched one pending device and SHA-256 of that device's 32-byte Ed25519 public key; its operator role and seven scopes exactly matched the native source. A CLI `--url` attempt rejected environment-only authentication before the request. Default JSON listing can use local fallback and therefore did not establish Gateway RPC authentication. An initial exact approval returned nonzero without retained error details, so its cause is unproven and it was not blindly replayed. + +The standard CLI was then given the verified loopback URL and token through its subprocess environment, without a token in argv. An authenticated read found neither the old pending request nor a paired entry for this identity. Explicit Check again in the app produced a different request ID less than 30 seconds old. The current app fingerprint, public key, role and scopes were matched again before approving only that exact new request. The CLI returned success, followed by the app's ordinary handshake recheck. + +| Scenario | Observed evidence | Result | +|---|---|---| +| USB OpenClaw authentication and approval | Current signed identity matched before the one successful exact approval; actual app displayed Connected and four OpenClaw Agents, with ready-only Refresh available and no Alert. | Passed for this LAN connection. | +| Saved connection after cold restart | Terminated and launched only the QA app; four OpenClaw Agents and the authenticated ready state returned without an Alert. The screenshot was inspected. | Passed for this cold reconnect. | +| Owner message/inference test | No test message was sent. The phone was left at the OpenClaw Agent list. | Awaiting owner testing; no inference claim. | + +The owned WebDriver run was stopped and confirmed exited; iOS/heavy leases were released before handing over the phone. The Gateway authorization change was approval of this exact native client. There was no shared service reconfiguration, backend credential rotation or release. These bounded phone results do not establish OpenClaw inference, Stop, uploads, weak-network/Relay recovery, full parity or owner acceptance of the native UI. React Native remains the default. Earlier simulator authentication failures below remain historical evidence. + ## 2026-10-16: real Direct connections on the isolated iPhone simulator WebDriver drove the independent `com.p697.clawket.nativeqa` app on a dedicated standard iPhone simulator. The local development app was built from `90e84ce1`; merged `695ee378` changes only the explicit Optional-Bool switch syntax for the older CI compiler. This is separate from the synthetic-peer matrix in [MEDIA](MEDIA.md). diff --git a/docs/native-ios/PLAN.md b/docs/native-ios/PLAN.md index 13d4b383..941e208c 100644 --- a/docs/native-ios/PLAN.md +++ b/docs/native-ios/PLAN.md @@ -70,8 +70,8 @@ Screen acceptance includes a small phone, regular phone, landscape/resizable iPa The chat/upload craft pass now uses a dedicated standard iPhone simulator and WebDriver, with real app/runtime envelopes against an isolated synthetic peer. It refines the composer, media gallery, system-picker lifetime and reconnect presentation; measured results and remaining real-service/device gaps live in [MEDIA](MEDIA.md#chat-craft-simulator-acceptance--2026-10-16). This advances N5 without completing it or changing the default client. -The subsequent real Direct checks are recorded separately in [BACKEND-ACCEPTANCE](BACKEND-ACCEPTANCE.md): Hermes text and protected cold restoration passed, its Stop attempt failed, and OpenClaw has not passed credential authentication. Later complete history recovery does not erase that failed Stop or prove a bounded reconnect time. These findings do not authorize changing a shared backend or replacing React Native. +The subsequent real Direct checks are recorded separately in [BACKEND-ACCEPTANCE](BACKEND-ACCEPTANCE.md): Hermes text and protected cold restoration passed, while its Stop attempt failed. A later verified USB iPhone pass completed OpenClaw authentication, exact device approval and a saved-connection cold reconnect with four Agents; no message was sent before handing over to the owner. These bounded results do not establish OpenClaw inference, successful Stop or network recovery, erase earlier failed checks, or authorize changing a shared backend or replacing React Native. -N0 source research, architecture audit and the current feature checklist are complete; three-app USB WebDriver input/attachment observations are recorded separately in RESEARCH. N1 transport/pairing and the initial backend/UI packages are merged with protocol and compile evidence. N2 now has a maintained development app with scoped persistence, real adapter bindings and simulator CI; the wired WebDriver development pass has verified a real Hermes text round trip and saved-token cold reconnect against a fresh uncached catalog. A later main9aebc8d0 wired WebDriver pass verified the existing synthetic Hermes conversation after cold catalog recovery and twenty-/thirty-second background returns; a measured return settled with its header, messages and composer in 0.811 seconds after the initial accessibility sample. The prior lost detail selection was not reproduced. This same pass exposed horizontal overflow of long text: the composer action lay outside the 420-point window and the attempted tool test remained an unsent draft, which was cleared by exact value. A 4d8adf0a plus layout development build corrected the width constraints on that same QA installation: the 44-point Send action was visible within the window, one synthetic printf tool request produced its exact reply and one inspectable original tool result, and the same reply/work output remained readable after restarting only the QA app. Real-host geometry regressions cover narrow and wide width proposals; complete history and work acceptance remains pending. OpenClaw reaches its normal device-pairing requirement after exact input verification and has not yet completed phone inference. Complete two-backend connection/inference/recovery acceptance and the later parity gates remain pending. No same-bundle upgrade, distribution package, upload, production deployment or public release is claimed. +N0 source research, architecture audit and the current feature checklist are complete; three-app USB WebDriver input/attachment observations are recorded separately in RESEARCH. N1 transport/pairing and the initial backend/UI packages are merged with protocol and compile evidence. N2 now has a maintained development app with scoped persistence, real adapter bindings and simulator CI; the wired WebDriver development pass has verified a real Hermes text round trip and saved-token cold reconnect against a fresh uncached catalog. A later main9aebc8d0 wired WebDriver pass verified the existing synthetic Hermes conversation after cold catalog recovery and twenty-/thirty-second background returns; a measured return settled with its header, messages and composer in 0.811 seconds after the initial accessibility sample. The prior lost detail selection was not reproduced. This same pass exposed horizontal overflow of long text: the composer action lay outside the 420-point window and the attempted tool test remained an unsent draft, which was cleared by exact value. A 4d8adf0a plus layout development build corrected the width constraints on that same QA installation: the 44-point Send action was visible within the window, one synthetic printf tool request produced its exact reply and one inspectable original tool result, and the same reply/work output remained readable after restarting only the QA app. Real-host geometry regressions cover narrow and wide width proposals; complete history and work acceptance remains pending. The later verified USB OpenClaw pass completed authentication, exact device approval and cold reconnect to four Agents; phone inference remains for owner testing. Complete two-backend connection/inference/recovery acceptance and the later parity gates remain pending. No same-bundle upgrade, distribution package, upload, production deployment or public release is claimed. The task host now has a bounded protected work/review journal, exact producer-lineage grouping, native work inspection and inert cold-restored consent/question receipts. Missing/ambiguous attribution stays unknown; complete history reconciliation, actual backend work flows and USB inspection remain acceptance gates. See `WORK-JOURNAL.md`. From ee88f15a38a5b3c97d6de54d4bc5ad02a39c2a46 Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 17 Oct 2026 01:05:06 +0900 Subject: [PATCH 2/2] Close USB WebDriver prerequisite and record owner testing handoff --- docs/3.0/PROGRESS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/3.0/PROGRESS.md b/docs/3.0/PROGRESS.md index 1eb468a9..1091176c 100644 --- a/docs/3.0/PROGRESS.md +++ b/docs/3.0/PROGRESS.md @@ -2514,7 +2514,8 @@ Clawket 3.0 围绕统一 Agent 花名册与持续线程重构:新增 Hermes | 编号 | 事项 | 怎么做 | 验证方法 | 状态 | |---|---|---|---|---| | HT-NATIVE-SSD-1016 | 已解除:模拟器磁盘空间 | 负责人要求代理自行清理后,迁出可重建缓存/工具链,使用苹果工具清理本任务失败导入的暂存镜像,并将四台长期关闭的旧测试模拟器完整双 SHA 校验冷归档到 SSD,保留原 UUID、App 数据与显式恢复脚本;最近使用的设备留原位。 | 标准 iOS 27.0 与原有 27.1 运行时均已实际安装为 Ready;独立普通 iPhone QA 已创建,实际 UI/连接验收继续。 | 无需负责人清理或开启完全磁盘访问,未更改系统授权。外置设备集试切换已回滚,四台冷归档设备需恢复后使用;归档及恢复说明保留在本机开发归档目录,数据未丢弃。 | -| HT-NATIVE-WDA-1016 | 指定 USB 测试机 WebDriver 前置开关信息 | 仅在指定USB测试iPhone查看设置→开发者→启用UI自动化;异步回复已开/刚开启/稍后查看,不涉及个人无线手机。 | 实际WDA ready并建立QA session后才继续手机验收;开关状态或host Developer mode均不单独证明故障原因。 | 已询问,驱动三轮启用automation mode超时;独立native实现/模拟器/CI继续,无整机设置改变。 | +| HT-NATIVE-WDA-1016 | 已解除:指定 USB 测试机 WebDriver 前置条件 | 本轮重新逐次匹配唯一USB iPhone硬件标识与CoreDevice wired,验证既有profile后启动WDA并建立独立QA session。 | 真实产品表单、当前设备批准与OpenClaw冷重连均通过该有线session操作。 | 2026-10-17已实际ready;无需负责人再处理开关,未修改系统授权。先前三轮automation-mode超时原因仍未证,不由本轮成功倒推。 | +| HT-NATIVE-OWNER-1017 | 独立原生 iOS 手机初验 | 已在USB iPhone Air安装Clawket Native;当前OpenClaw是该Mac的LAN直连。负责人先体验真实聊天、上传、停止生成、重连与UI方向,RN继续默认。 | 实际功能与视觉由负责人验收;模拟器、编译及连接目录不代替推理/完整N5或原生替换决定。 | 真机认证、精确设备批准、4个Agent目录及QA App冷重连通过;未发测试消息,已停自动化并交还手机,待负责人测试反馈。 | | HT-NATIVE-UPGRADE-1016 | Native iOS 同 bundle 原安装升级验收与发布授权 | 所有原生数据消费者接入后,由负责人选择原签名/entitlement 的升级测试路径及发布阶段;独立 QA App 不覆盖商店 App。 | 保留原设备身份/六后端连接/作用域令牌/购买身份与一次性权益、草稿/缓存/未发送资源;失败可重试且原数据未删,实际升级后两后端重连与基础功能通过。 | ClawketUpgrade 只读来源/事务保全模块25项通过;host 激活与签名同 bundle 连续性待后续,未制作分发包或发布。 | | HT-DUO-INPUT-1013 | Duo 真实交互验收的备用自动化授权 | 回答已发送的异步问题,明确允许使用苹果 XCTest/XCUITest 在专用本地模拟器输入、长按、滚动与断言。CUA 坐标/拖动持续 noWindowsAvailable,键盘未生效;工具规则要求用户明确指定其他 UI 自动化后才能使用。 | 真实选图完成隔离配对,再验证中文草稿、长按、分屏、折叠/旋转和恢复;结果不能由单元测试替代。 | 已解决:负责人明确允许XCTest/XCUITest;原生交互证据已完成,session06/08正常退出。最终主分支交付与负责人验收见PR #220及本机acceptance.html。 | | HT-DUO-TOOLCHAIN-1013 | Duo 工具链的本机认证与系统重启 | 已授权下载 macOS26.7.1、同意 Xcode27.1/SDK 许可;负责人完成本机管理员认证,并确认安装/重启时机。无需在聊天提供密码。 | 升级后 macOS≥26.6,Xcode27.1 初始化成功,可安装官方 Duo runtime 并继续分支原生验收。 | 已完成:负责人授权重启后macOS26.7.1、Xcode27.1初始化与Duo runtime安装成功,首个Debug包已运行;原生体验验收继续。 |