Conversation
…anes Stages 0-5 of the rendering performance plan: - Replace 16ms Task.sleep drag coalescing with zero-latency DispatchQueue.main.async via LitheDragUpdateScheduler (3 sites) - Replace per-frame full-pane even-odd Shape tessellation with four fixed-size static corner notch paths - Restore module tool window structural identity via ModuleToolContent Equatable wrapper, defeating AnyView erasure - Sink drag state into LitheSplitPaneView containers so divider drags only invalidate the small container, not the feature view (4 sites) - Flatten recursive AnyView reference tree into GitReferenceRows with LazyVStack and Equatable row views - Add GitChangeSectionsCache for ChangesSidebarView - Add EditorTabFrameStore reference box to stop layout-pass preference writes from invalidating the entire EditorAreaView body - Add RunConfigurationTokenCache and GitCurrentReferenceCache to memoize repeated derivations - Add gitCommitsVersion monotonic token replacing O(n) array comparison - Add LitheSignpost DEBUG body evaluation counter - Add tests for LitheDragUpdateScheduler, LitheSplitPaneGeometry, WorkbenchPaneCornerGeometry, GitReferenceRowsBuilder, GitChangeSectionsCache
Add missing type definitions (GitReferenceRowActions, GitReferenceRowView, GitLogThreePaneLayout) lost during transcript replay, remove duplicate GitReferenceTreeNode, fix WorkbenchWorkspaceSplitView action routing, and fix LitheSignpost to use OSSignpostIntervalState and String-keyed dictionary.
- GitLogView: fill local/remote/tag reference rows via .task(id: referenceRowsTaskIdentity) using GitReferenceRowsBuilder; add GitReferenceRowsIdentity combined key; replace linear currentReference scan with GitCurrentReferenceCache; switch .task(id:) for graph layout to use gitCommitsVersion integer token; remove unused commitFileTreeItems @State - ChangesSidebarView: replace four filter passes with GitChangeSectionsCache (single-pass derivation of displayed/tracked/added/staged) - RunView: replace per-body String.split with RunConfigurationTokenCache (two separate instances for collapsed executions and pin tokens) - EditorAreaView: replace @State editorTabFrames dictionary with EditorTabFrameStore reference box so preference writes no longer invalidate the editor body
…g state GitLogView: split gitLogQuery into hasActiveGitLogFilter (no Date() call) and gitLogQuery(now:). The debounced .task captures Date() once at fire time so afterDate/beforeDate are stable for the lifetime of each query. RunView: remove liveConfigurationListWidth, configurationListDragStart, resolvedListWidth, and constrained() — all became dead code when the configuration list pane was migrated to LitheSplitPaneView.
Swift 6.2 (the CI toolchain) rejects a call to a @MainActor-isolated init inside the nonisolated @State default-value context. The init itself is safe to call from any context — it only assigns self.delivery; no @mainactor state is touched until the first method call. Annotating the init nonisolated preserves full @mainactor isolation on all mutating methods while making the @State-held initialisation accepted by both Swift 6.2 and 6.3.
The branch popup checked out a reference on a plain click, so scanning the list could switch the working tree by accident; checkout was otherwise only reachable through the right-click menu. Branch rows now present their actions through a native pop-up menu, with Checkout as one explicit entry. The native menu also supplies IDEA's hover-safety path: once a row's menu is open, moving to another row opens that menu without a click. Rows whose branch or upstream name the fixed popup width truncates expose the full pair as a hover tooltip.
The testing helper detaches into its own process group, so the previous group-scoped walk only sampled the shell wrapper waiting on its child. Walk the ppid tree instead and capture a listing plus a thread-stack sample of every descendant before terminating the run. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The testing helper detaches into its own process group, so the previous group-scoped walk only sampled the shell wrapper waiting on its child. Walk the ppid tree instead and capture a listing plus a thread-stack sample of every descendant before terminating the run. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat(macos): 对齐 IDEA 的分支弹窗交互模式
perf(macos): 消除拖动分隔条导致的全局渲染卡顿
按窗口标签区分运行进程会话,并将 run-output/run-exit 事件定向投递到发起窗口,避免多开项目时输出混入其他窗口。 Fixes #408 Co-authored-by: Cursor <cursoragent@cursor.com>
将 use-run-process-events 与 use-maven-process-events 从全局 listen 改为 getCurrentWebviewWindow().listen,避免 Tauri EventTarget::Any 在多窗下仍接收 emit_to 事件。 补充 listener 窗口作用域单测,验证不会注册全局 listen。 Co-authored-by: Cursor <cursoragent@cursor.com>
…ut-leak Fix/windows multi window run output leak
feat(git): tag management with restore for deleted tags and branches(rebuild 354)
* feat(windows): 支持项目显示别名以区分同名文件夹 为工作区项目标签增加 displayAlias 字段并持久化,在标题栏、项目标签栏 及侧边栏以「文件夹名 (别名)」格式展示;用户可通过项目上下文菜单设置 别名,解决多个同名文件夹项目同时打开时难以区分路径的问题。 Closes #404 Co-authored-by: Cursor <cursoragent@cursor.com> * fix(windows): 移除 project.store 中错误的自引用 import 以通过类型检查 Co-authored-by: Cursor <cursoragent@cursor.com> * fix(windows): 修复 run 测试 mock 以通过 Windows CI 补充 lithe-core-client 与 tauri-core 的测试 mock 导出,并保留 run.store 的真实导出,避免同进程内后续测试加载失败。 Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Lichenkang <2188718831@qq.com>
fix(windows): keep run test within tauri boundary
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
将预发布分支
preview的最新状态提升到main。包含近期预发布中的 macOS 工作台、Git 视图与性能改进,以及对应的稳定性测试和文档更新。
验证:
./scripts/verify-git-graph.shpreview与main无合并冲突。