Skip to content

feat(linsight): 任务模式产出区的四项后续打磨 - #2267

Merged
jieyuhuayang merged 4 commits into
hotfix/2.6.0-2from
feat/2.6.0-2-linsight-taskmode-followups
Aug 7, 2026
Merged

feat(linsight): 任务模式产出区的四项后续打磨#2267
jieyuhuayang merged 4 commits into
hotfix/2.6.0-2from
feat/2.6.0-2-linsight-taskmode-followups

Conversation

@jieyuhuayang

Copy link
Copy Markdown
Collaborator

PR #2263 合并时(08-07 14:01)我最后几次 push 还没到,这 4 个提交因此漏在了外面。它们是 #2263 里两个功能的后续打磨,已按当前 hotfix/2.6.0-2 重新 cherry-pick,零冲突。

四项

提交 内容
d4132f31e md 预览「章节脊」目录浮层即时展开,去掉开启防抖 —— 鼠标移过去要等一下才出来,手感像卡了
756dd753b 目录触发区收进刻度轨自身,不再提前开 —— 原来触发区比刻度轨宽,光标还没到就弹出来,挡正文
2d89df219 产物文件行的下载按钮挪到文件名旁,hover 才显示 —— 原来常驻在行尾,一列按钮把视线从文件名上拽走
1a6dc0d59 deepagents pin 由 >=0.6.3(无上界)收成 >=0.6.3,<0.7

关于那个版本上界

不是升级 —— 下界没动,0.6.8 本来就满足新区间,uv lock 跑完 295 个包全部重解、锁文件只改了 specifier 一行,没有任何版本漂移。

加上界的原因是 0.7 把 write_todos 改成 opt-in:任务模式的进度显示完全靠它,#2263 带进来的轮次预算里 _POST_BUDGET_ALLOWED_TOOLS 也刻意放行它(拦掉会让做完的任务显示成 3/5)。另外轮次预算的 _STEPS_PER_MODEL_TURN = 4 数的是 0.6.x 图里每轮编译出的中间件节点数,节点数一变递归下限就算错。

验证

  • 前端 jest src/components/Linsight163 passed(这 4 个提交自带 6 条新用例)
  • check-imports + build 通过
  • 无后端代码改动(只有依赖 pin),故未重跑后端套件

与已合并的 #2265 无冲突

已核实两边文件零重叠 —— 本 PR 只碰 MarkdownOutline / markdownOutlineUtils / ResultSection / SaveAsButton / WorkspaceDrawer / WorkspacePanel / pyproject.toml / uv.lock#2265 碰的是 artifactUtils / Markdown.tsx / 三个 locale。

🤖 Generated with Claude Code

jieyuhuayang and others added 4 commits August 7, 2026 18:48
反馈指针靠近右边缘后目录出来得慢。延迟其实叠了两段:80ms 开启防抖
加 150ms 淡入,约 230ms 才成型。

防抖本来是防「指针横扫路过误开」,但预览面板的右边缘是终点不是走廊
(停靠态右侧就是窗口边,全屏态铺满视口),根本没有横扫场景,这 80ms
纯属白等。改成命中即开;淡入 150→100ms,位移 6→4px。关闭仍留 200ms
懒延时,好让指针有时间从刻度轨走到卡片上。

顺带修一个跟着变快后会更容易撞上的问题:指针停在卡片上但已离开右边缘
判定区时,之前既不开也不关,先前排的关闭定时器照样会触发把卡片收走。
新增 holdOpen 分支,指针在卡片上就一直挂着,不论离刻度轨多远。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit d1f290b367a762f86f603325c13d78e3e6fb4438)
(cherry picked from commit 96e3520)
…l on hover

Design review on the five-file card: parked in a far-right gutter the glyph
ended up roughly 1000px from a short name like "package.json", so the eye had
to cross an empty row to work out which file the action belonged to. The
gutter bought a stable truncation point, which only pays off for long names —
the wrong trade for the common case. The action now follows the name, where
the `↗` marker already sat, so a row's affordances stop being split across
two ends of the card.

Revealed on row hover, because ten identical glyphs stacked in a column read
as noise — the repetition is the noise, not the glyph. Three exceptions keep
that from degrading into a desktop-mouse-only affordance:

- hides with OPACITY, never hidden/invisible, so the button keeps its box and
  revealing it can never re-truncate the name beside it
- focus-visible: tabbing must not land on something invisible
- data-[state=open]: the markdown format menu would otherwise fade its own
  trigger out from under itself when the pointer leaves the row
- (hover: none): the gesture does not exist on touch, so the button stays put
  rather than becoming unreachable

The single-deliverable sentence row keeps the always-visible variant: one
glyph in prose is not a column, and it is the only download entry such a run
has — the exact gap this feature was added to close.

Drops the two-step resting grey the gutter needed; by the time a row glyph is
visible the row is already hovered, so there is no earlier state to mark. The
`!important` that pinned the old hover colour goes with it — every reveal rule
now wins on specificity rather than on CSS source order.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 0f2ed8e8df4703b7547d1c7735cfbaa519b188b6)
(cherry picked from commit 58f9a2c)
反馈光标还没走到章节脊就展开了。原来的判定是「距面板右边缘 56px 的
竖带」,两头都太宽:横向比刻度轨自己(离边 8px、宽 26px)多出一截,
纵向更是铺满整个面板高度——刻度轨只在中间约 200px,在它上方去够工具栏、
或在下方靠近滚动条两端,都会误开。

改成直接读刻度轨的 getBoundingClientRect 判定,只留一点容差:横向左侧
6px,纵向上下各 20px(细长列横向好瞄,两端容易过冲)。右侧不设边界,
再往右只有面板边缘和滚动条,没什么要排除的。用真实盒子而不是常量,
刻度长度以后再改也不用同步维护这个数。

净效果:横向触发从离边 56px 收到 40px(刻度轨可见部分从 26px 处开始,
留 14px 提前量),纵向从整屏收到刻度轨±20px。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit f1c4aa9501cf2548d9988f393859fabc8c829435)
(cherry picked from commit bce40c6)
The pin was `>=0.6.3` with no upper bound, so a fresh resolve could pull 0.7,
where `write_todos` becomes opt-in. Task mode's progress display is fed entirely
by that tool, and the turn-budget soft landing added here deliberately keeps it
in `_POST_BUDGET_ALLOWED_TOOLS` for the same reason — blocking it makes a
finished task render as 3/5. A silent jump to 0.7 would take both out.

`_STEPS_PER_MODEL_TURN = 4` is the other reason to cap: it is a count of the
middleware nodes deepagents compiles per model turn (model -> tool-loop-breaker
-> TodoList -> tools), measured on the 0.6.x graph. A different node count makes
the recursion floor wrong.

Resolution is unaffected — 0.6.8 already satisfies the narrowed range, and the
lock diff is the specifier line alone.

This is not the 0.6.12 upgrade (c4a6221 on the 3.0 line); the floor stays at
0.6.3.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit 5041c1c)
@jieyuhuayang
jieyuhuayang merged commit f510d50 into hotfix/2.6.0-2 Aug 7, 2026
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant