feat(runtime): 增加只读 Runtime 目录探针 - #3
Conversation
|
Java 新增第二阶段探针
仓库脚本已确认生产路径包括 |
|
根据 ShortX 实机调用方式, 调整:
当前探针版本: |
真机门禁:只读 Runtime Client UI 接入目录探针已确认 ShortX ShellCommand 以 已发布独立测试模块集
安全边界:不读取配置、策略、端点或日志内容;不调用 Runtime Controller;不启动/停止进程;不操作 TUN、路由、防火墙或 DNS。 Manifest 16 个模块的 SHA-256 已由 GitHub Actions 校验通过。稳定 |
Stage 53 Retry 1:Runtime/Core 状态分歧真机结果:
已记录:
Retry 2 测试入口:
Retry 2 只发送一次只读 |
Stage 53 Retry 2 真机通过;Retry 3 已加入Retry 2 已确认 Runtime/Core 状态分歧不是内部空状态,而是旧 argv 契约过窄:
已记录:
Stage 53 Retry 3 已加入:
Retry 3 要求恰好一个控制器持有 Core,发送一次 |
Stage 53 Retry 3 真机通过;Retry 4 已加入Retry 3 真机结果:
已记录:
Stage 53 Retry 4 已加入:
Retry 4 使用真机确认的控制器持有 Core 契约:
最终必须为 Core 已停止、Runtime 控制服务继续运行、TUN/规则/路由为空。失败时仅对已锁定且身份仍匹配的 Core PID 执行精确 TERM/KILL 回滚,不停止控制服务,不自动重试。 静态验证:模块与完整入口 JavaScript 语法通过;Rhino ES5 禁用语法扫描通过;前置、启动观察、停止观察、回滚和审计 5 组生成 Shell 的 |
Stage 55:生产生命周期 UI 验收Stage 54 真机门禁与入口启动记录已确认:
已加入:
Stage 55 执行顺序:
Stage 55 不发送 START、STOP_CORE 或进程信号,启动和停止按钮继续锁定。通过后进入 |
Stage 56 真机解锁通过真机结果:
已新增真机记录:
下一步直接使用当前 Stage 56 会话,在首页按顺序执行一次: |
Stage 56 真机解锁通过Stage 56 按钮回调结果确认:
已记录:
补充说明:入口启动 JSON 中的 |
Stage 56 手动控制通过,但同步链路过慢;Stage 57 已加入Stage 56 真机手动闭环结果:
根因:可见回调串行等待完整快照、操作后观察和审计等约三次 ShortX ShellCommand;真机 Shell 传输层长期返回 已加入 Stage 57:
Stage 57 设计:
静态验证:模块、包装模块和完整入口 JavaScript 语法通过;三组 Shell 模板 |
目的
在实现 Runtime Client 前,先通过真机只读探针确认生产 Runtime 的实际目录结构、状态文件和 PID/端点候选路径,避免根据旧脚本或经验猜测路径。
新增
entry/SingBoxHubRuntimeProbe.js<ShortXDir>/SingBoxHub,最大深度 5、最多 400 项安全边界
真机门禁
探针结果确认后,才建立只读 Runtime Client 状态协议。当前稳定 UI 分支不受影响。