Improve workspace distinction and persist active terminal blocks - #321
Open
mmaxiaolei wants to merge 107 commits into
Open
Improve workspace distinction and persist active terminal blocks#321mmaxiaolei wants to merge 107 commits into
mmaxiaolei wants to merge 107 commits into
Conversation
The + button inherited PreviousDir from ~ when the last session cwd was outside the worktree. Prefer the worktree unless cwd is already inside it; CustomDir still wins when set.
Treat a configured but missing remote-tracking ref as no usable upstream and fall back to the repository default branch for merge checks, instead of failing deletion with rev-parse Needed a single revision.
Persist the active CLI agent on each terminal pane and re-run its resume command after shell bootstrap. Snapshot TerminalModel state without nested FairMutex locks so app-state save cannot deadlock the UI on launch.
Record the approved window chrome for repository workspaces: full-height left panel with the tab bar confined to the content column.
Break the approved chrome spec into TDD tasks: helpers, padding wiring, ToolsPanel lift, empty/collapsed regressions, and spec sync.
Header padding now follows the chrome helper from AppContext in LeftPanelView::render, matching TabBar padding the same frame instead of relying on the event-synced cache.
Drop always-on workspace cards, collapse duplicate branch subtitles, and replace oversized badges with a tree rail, numeric pills, and a running dot so the sidebar hierarchy is easier to scan.
Empty repository workspaces are a valid persisted state. Skip the must-have-a-tab assertion in that mode, ignore PaneGroup events before an active tab exists, and subscribe after the tab is inserted so debug launches no longer abort.
repaint_after only relayouts the existing element tree, so baking opacity into Container during View::render froze the ring until hover.
wait_until_completion=true 时无条件 PAGER=cat,会把 git log --stat / git diff / man 整段打到 block,用户无法滚动。对这些隐式 pager 命令不再关 pager,改走 LongRunningCommandSnapshot,让 less 保持可交互。 git --no-pager / 管道 / git status 等仍走原来的关 pager 路径。
侧栏打开时页签作为 workspace 子节点展示各自状态,顶部 TabBar 换成 branch · from upstream · +n/−n 信息栏。折叠父节点不再聚合 agent 头像,避免多页签时误导。
空闲终端页签用 Terminal N,跑过命令后显示最近命令,不再用 cwd/OSC 路径。 重启后等 login shell bootstrap 再执行 CLI agent resume。 树内状态图标与 workspace 分支图标对齐;git log --stat 在 cd && 等写法下保留交互翻页。
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.
Summary
Validation
cargo test -p warp active_block_can_be_finalized_for_shutdown --libcargo check -p warp