线程阅读意图探测工具
该工具可在 Chromium 环境下模拟真实的生产环境“线程”、实际助手界面外部存储运行时以及生产级样式,同时生成确定的合成对话记录。无需启动任何后端服务或数据提供方,也不属于完整的原生应用或报告式对话记录复现方案。
从代码仓库根目录将 fixture.tsx 复制到 apps/desktop/src/scroll-campaign-probe.tsx,将 fixture.html 复制到 apps/desktop/scroll-campaign-probe.html。这两个文件均为临时文件,并非正式生产版本。使用常规配置及随机回环端口在 apps/desktop 目录下启动 Vite。请将 Vite 缓存设置在 node_modules 目录下;若缓存位于 node_modules 之外,可能会被 React 编译器再次处理。
服务器与探测工具应分别使用独立的 HOME 和 HERMES_HOME 环境变量。如果 HOME 变量改变了 Chromium 的缓存查找机制,则需显式设置 PLAYWRIGHT_BROWSERS_PATH。工作树中必须同时包含根目录依赖项及 apps/desktop 目录下的依赖项。
需在活动对应的共享测试锁定模式下运行:
THREAD_SCROLL_OUTPUT=/path/to/artifacts \
THREAD_SCROLL_URL=http://127.0.0.1:18480/scroll-campaign-probe.html?thread \
PROBE_TAG=before \
node evals/desktop_bug_campaign/thread-scroll/probe.mjs
该探针会记录新页面加载、滚轮跳转、A→B→A路径操作,以及延迟后的空状态到已加载状态的刷新过程中的真实滚动几何数据。它能够确保元素与页面底部的距离保持不变,并记录新会话中的滚动位置。首先在未做任何修改的默认环境中运行探针,然后再在全新的浏览器环境中测试候选版本。每次运行都会生成 <PROBE_TAG>.json 文件。
可选的 ?twins 固件可启动两个具有不同运行时 ID 的独立生产环境线程,虽有助于故障诊断,但上述自动化探针仅支持单个视口,因此无法替代分屏式界面测试方案。
ownership-probe.mjs 在原有的 ?ownership 固件基础上进行了扩展,它能够在更改生产环境配置及连接范围存储后重新加载真实线程,执行真正的文档刷新操作,并生成部分转录内容——该转录内容的剩余历史记录会通过 startTransition 方法被释放。该脚本通过命名空间机制控制使用 12 条消息来排除虚拟化相关数据对所有权判断的干扰;而水合过程则可恢复到原本的 200 条消息的历史记录。同时,该探针不会覆盖任何 DOM 几何数据,滚轮输入功能则直接来自 Playwright 的原生输入处理机制。
该探测工具会严格执行文档重新加载的相关规范。同时,它还会在恢复后进行200条消息的完整重新加载操作,并检测实时响应的变化情况。后续测试中,它会持续观察Markdown格式内容及行高在用户输入或实时运行介入之前的变化趋势:12条消息时的重新加载偏移量从17像素降至0像素,而当前200条消息时的重新加载控制距离则从72像素降至0像素。此前的历史数据中,长时间重新加载后的偏移量为323像素;目前的控制机制在重新加载过程中仍能保持相同间距,但这并不属于原生应用功能或问题修复方案的一部分。在停止服务器运行后,请删除这两个临时的桌面快捷方式文件。