Skip to content

feat(core): #1662 车道 C 运行/调试下沉(RUN-03/06/07/14) - #1759

Merged
1lck merged 3 commits into
previewfrom
feat/issue-1662-c-run-debug
Nov 5, 2026
Merged

1lck merged 3 commits into
previewfrom
feat/issue-1662-c-run-debug

Conversation

@1lck

@1lck 1lck commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

引用 #1662 车道 C(运行/调试)。本 PR 完成 RUN-03、RUN-06、RUN-07、RUN-14;【插件】类 RUN 条目不在此范围。

改动

  • RUN-03 测试结束判定:Core 新增 build.resolveTestRunOutcome(通用归约,不含 Maven/JUnit 语义)。超时/取消不声明测试结果;已报告的失败优先于退出码;非零退出优先于空结果;退出码 0 但没有执行任何选中测试判为失败(显式套件/用例为 noTestsMatched,项目/工作区为 noTestsFound)。macOS LanguageTestService 与 Windows maven.store 都改为调用,旧的按退出码判定已删除。新增词条 tests.outcome.noTestsMatched / noTestsFound。
  • RUN-06 变量分页:Core 新增 debug.planVariablePage / debug.reduceVariablePage(named/indexed 分段、重复页丢弃、耗尽判定)。macOS 删除本地分页状态机。Windows 保留 Scope 与变量的 named/indexed 数量,请求携带 filter/start/count,并提供“加载更多”。
  • RUN-07 源码身份:Windows 栈帧保留 sourceReference、instructionPointerReference、isFiltered;带 sourceReference 的帧不再把 sourcePath 当磁盘文件打开或高亮;被过滤的帧在调用栈中淡化。
  • RUN-14 反汇编分页:Core 新增 debug.planDisassemblyWindow / debug.reduceDisassemblyPage(窗口二分缩小、首窗口负偏移回退、边缘探测、重复地址去重)。macOS 删除本地实现。Windows host 目前未开放 disassemble/readMemory,功能矩阵 debug-disassembly 保持 missing 并写明原因。
  • 共享 fixture、rust-core-api.md、功能矩阵(debug-state / debug-disassembly / run-java-test)与 v1-baseline.json 同步追加。

两端行为变化

  • macOS:测试存在已报告失败或没有执行任何选中测试时,即使退出码为 0 也显示失败(此前显示通过)。
  • Windows:expensive Scope 改为手动加载(点击“加载变量”),不再随栈帧一次性请求所有 Scope;其余 Scope 按报告的数量分页,不再一次拉全。
  • Windows:adapter 托管源码的栈帧不再作为磁盘文件打开。

新 API

build.resolveTestRunOutcome、debug.planVariablePage、debug.reduceVariablePage、debug.planDisassemblyWindow、debug.reduceDisassemblyPage。

验证

  • 通过:cargo test -p lithe-core --lib(debug::/build:: 全部)、rust-core-comments、shared-contracts、verify-core、service-boundaries、windows-boundaries、feature-matrix、i18n 两项、runtime-bundle-immutability、swift build、tsc --noEmit。
  • macOS 子集:test-macos.sh 的 ExecutionModuleTests 167 个全通过;LanguageTestService 相关测试已按 RUN-03 断言具体终态(带失败用例与零测试均为 .failed,后者并断言“没有找到任何测试”文案,正常通过为 .passed)。LitheDebugModuleTests 与相关 LitheTests 合并并发跑时出现 4 个超时类失败,已在干净 origin/preview 上用同一 filter 对比:toolbarDebugRestartsOnlyTheSelectedTarget、repeatedStartupFailuresStopUntilExplicitRestart、preparedProviderOutputRendersWithoutGeneratedConfigurations 在基线上同样失败(原有问题,非本 PR 引起);staleProjectLoadCannotReplaceTheNewProjectState 基线本次未复现,但它是 waitUntilBlocked 等待型用例,不经过本 PR 改动的代码,本分支单独复跑通过,判断为并发抖动。
  • Windows 前端:maven.store.test.ts 63 通过;debug-adapter-events.test.ts 16 通过(含新增分页与 sourceReference 用例);src/features/run 324 通过。
  • debug-adapter-service.test.ts 在 src/features/debugger 整体运行时有 7 个失败,在干净的 origin/preview 上完全相同(原本存在),单文件运行通过。
  • 未能执行/已知问题:src/features/maven 下 maven-detected-value.test.tsx、reload-maven-workspace.test.ts 在本机 bun 下挂起,未跑;cargo check --bin lithe-windows 在 macOS 上有 2 个 Windows 专有 API 的既有错误,无新增;lithe-core 全量中 search_everywhere_pages_all_sources_past_200... 曾超时,与本 PR 无关;Windows 真机调试未验证。

🤖 Generated with Claude Code

1lck and others added 3 commits November 5, 2026 01:31
- RUN-03:Core 新增 build.resolveTestRunOutcome 通用归约(超时/取消不声明测试结果,失败优先于退出码,
  退出码 0 但没有执行选中测试判为失败);macOS LanguageTestService 与 Windows maven.store 改为调用,删除旧的按退出码判定
- RUN-06:Core 新增 debug.planVariablePage / reduceVariablePage;macOS 删除本地分页状态机;
  Windows 保留 named/indexed 数量,只自动请求非 expensive Scope(expensive 改为手动加载),请求携带 filter/start/count 并提供加载更多
- RUN-07:Windows 栈帧完整消费 sourceReference / instructionPointerReference / isFiltered,sourceReference 帧不再当磁盘文件打开
- RUN-14:Core 新增 debug.planDisassemblyWindow / reduceDisassemblyPage;macOS 删除本地窗口二分、负偏移回退与耗尽判定;Windows host 未开放 disassemble/readMemory,功能矩阵标明
- 共享 fixture、i18n 词条、rust-core-api 说明、功能矩阵与 v1 baseline 条目一并更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
带失败用例期望 .failed,零测试期望 .failed 并断言“没有找到任何测试”文案,正常通过仍期望 .passed。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#1746 新增的 makeDeclaredFeature 仍用旧的 GenericDebugFeatureModel(sessions:) 初始化,
而本 PR 给初始化器增加了必填的 paging 参数,补上 paging: LinkedCoreDebugPaging()。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@1lck
1lck force-pushed the feat/issue-1662-c-run-debug branch from 79c370a to 5fefded Compare November 5, 2026 09:38
@1lck

1lck commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

本地验证(代替 GitHub macOS / Windows CI)

本 PR 与 #1760、#1755、#1753、#1759、#1756、#1758、#1757 一起,在本地集成分支 integration/issue-1662-round1 上按合并顺序集成后,按 ci-macos.yml / ci-windows.yml 的步骤在维护者的 Mac 和 Windows 机器上完整验证,未使用 GitHub 的 macOS / Windows runner。

macOS(本机,macOS 26.6 arm64)

Windows(lithe-dev,Windows Server)

  • 通过:依赖安装、verify-windows-boundaries.ps1、共享编辑器测试、PHP 插件构建与隔离验证、ci-windows.yml 中各组 bun 测试、dist 验证、Rust 测试(shared、shared-hosts、MCP stdio、agent-host、git-host、ide-host、project、terminal、windows)。
  • 发现并已修复的回归(均为测试替身未跟上新的 Core 契约,生产代码无回归):bun run typecheck 3 个 TS 错误与 3 个 agent 测试文件(feat(core): #1662 车道 F Agent/AI 下沉(AGT-03/04/07~09/11~13/18) #1757)、git-workspace-status-panel.test.tsx(feat(core): #1662 车道 A Git 流程下沉(GIT-24/25/28/29) #1753)。
  • lithe-windows memory::platform::tests::current_process_private_working_set_is_available 失败,干净 preview 基线同样失败,属于该 Windows Server 环境的既有问题。
  • 跳过:real-jdt(机器无 JDK 21/25 与 Maven)、需要 GPU 或交互桌面的 GUI 验证、GitHub 专属的缓存/上传/gate 步骤。

合并前每个 PR 已 rebase 到最新 preview,并重新执行编译、i18n、verify-core、verify-shared-contracts 等快速检查。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: high ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant