dsh-claude-style 0.16.1 → 0.16.2-dev.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/THIRD_PARTY_NOTICES.md +1 -3
- package/docs/FEATURES.en.md +1 -1
- package/docs/FEATURES.md +1 -1
- package/docs/SETTINGS.en.md +4 -2
- package/docs/SETTINGS.md +4 -2
- package/docs/STYLE.md +6 -5
- package/lib/assets/0cde9ade580e.js.br +0 -0
- package/lib/assets/89c261313699.js.br +0 -0
- package/lib/assets/bebb9a8751b0.js.br +0 -0
- package/lib/assets/manifest.json +12 -12
- package/lib/client.js +13 -13
- package/lib/host/settings.js +4 -0
- package/package.json +1 -1
- package/lib/assets/4d55814bc60a.js.br +0 -0
- package/lib/assets/6c257991027d.js.br +0 -0
- package/lib/assets/9abad5da303e.js.br +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,48 @@ All notable changes to `dsh-claude-style` are documented here, newest first.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.16.2] - 2026-10-17
|
|
8
|
+
|
|
9
|
+
[中文](#cn-0.16.2) | [English](#en-0.16.2)
|
|
10
|
+
|
|
11
|
+
<h3 id="cn-0.16.2">新增功能</h3>
|
|
12
|
+
|
|
13
|
+
- **侧栏里进行中的对话标记可以换回滚动的圆环**:「动效」页新增「进行中的对话」一行,两张卡片带出「呼吸灯」(默认)与「滚动圆环」两档(设置项 `ongoingIndicator` 的取值为 `breathe` 与 `ring`);侧栏里正在跑的那一行立刻换过来,动画设为「减弱」时两档都停住。
|
|
14
|
+
|
|
15
|
+
### 体验优化
|
|
16
|
+
|
|
17
|
+
- **上下文弹层里的数字改为连续计数**:弹层里那一列数字接到新读数时从眼前的数计数到新值,与输入卡片下面那一行同一套动作,不再逐字弹入;弹层每次打开都从当时的读数写起。
|
|
18
|
+
- **流式输出时,写回的 tokens 随文字上涨**:会话数字里写回的那一数在答案流式输出期间按已经到达的文字估算着上涨,不再等整段答案写完才跳一次;这一步结算时换成提供方给出的真实值,读入的 tokens、缓存命中率与计量饼的占用都不动。
|
|
19
|
+
- **流式输出时,上下文计量饼不再拖慢页面**:计量饼需要的两种颜色改在每一帧开头读取,回答流式输出期间不再让页面额外重算一次样式(本机实测:皮肤每次更新页面的耗时从约 37 毫秒降到约 14 毫秒,其中上下文组件从约 27 毫秒降到不足 1 毫秒)。
|
|
20
|
+
- **推理强度滑块不再在每次更新里重排页面**:滑块轨道与滑钮的宽度改在每一帧开头读取,卡片收起时也不再让页面额外排一次版(本机实测:推理强度选择器在每次更新里的耗时从约 18 毫秒降到约 1 毫秒)。
|
|
21
|
+
- **长对话流式输出时,消息折叠与推理窗口不再拖慢页面**:折叠用户消息所需的气泡查找、推理窗口所需的高度与样式读取,都改在每一帧开头完成,写入阶段不再让页面额外重算样式与布局(本机桌面端实测:消息折叠每次更新从约 6.8 毫秒降到不足 0.1 毫秒,推理窗口每帧从约 5 到 14 毫秒降到约 0.1 毫秒)。
|
|
22
|
+
- **计数中的上下文数字与等待计时不再让整页重算样式**:状态行与上下文弹层里随流式输出上涨的数字、等待行的计时,都改为原地改写文字,页面上其他插件的 `:has()` 规则不再因此在每一帧重算整页样式(本机桌面端实测:流式输出期间每帧少付约 10 毫秒的样式重算)。
|
|
23
|
+
|
|
24
|
+
### 问题修复
|
|
25
|
+
|
|
26
|
+
- **搜索面板的分类页签,按下哪一枚滑块就滑向哪一枚**:点「会话」「项目」这些分类时,背后的滑块在按下的一刻出发,不再等到列表下一次重绘才移动。
|
|
27
|
+
- **思考行回放推理时不再拖慢页面**:推理窗口里的文字每 0.84 秒平滑上移一步,一步追到最新一行,正在思考的回合里页面保持流畅(本机实测:修复前单帧最长 470 毫秒、主线程阻塞 406 毫秒,修复后 29 秒内没有超过 100 毫秒的帧)。
|
|
28
|
+
- **推理窗口的高度跟着文字一起长**:正在思考的回合里,推理每写出新的一段,窗口就在同一帧长到文字自己的高度,最新的几行不再被下缘裁住、等到下一个节拍才露出来;长到上限高度之后照旧按原来的节拍上移。
|
|
29
|
+
|
|
30
|
+
<h3 id="en-0.16.2">New Features</h3>
|
|
31
|
+
|
|
32
|
+
- **The sidebar's mark for a running conversation can be the turning ring again**: the Motion tab gains Ongoing conversations, whose two cards offer Breathing light (the default) and Turning ring (the `ongoingIndicator` setting is `breathe` or `ring`); the running row changes at once, and with Animation set to Reduced both stand still.
|
|
33
|
+
|
|
34
|
+
### Improvements
|
|
35
|
+
|
|
36
|
+
- **The context popover's figures count to their readings**: a row's number travels from the value on show to a new reading, the same motion the line under the input card makes, instead of each character popping in; a panel that opens writes the reading of the moment where it stands.
|
|
37
|
+
- **The tokens written back climb while an answer streams**: the session numbers' written-back figure grows with the text that has arrived instead of standing still until the answer ends, and takes the provider's own number once that step settles; the tokens read in, the cache-hit share and the meter's occupancy stay as they were.
|
|
38
|
+
- **The context meter's pie no longer slows the page while an answer streams**: the two colours the pie is drawn in are read at the start of each frame, so a streaming answer no longer makes the page recompute its styles a second time (measured locally: each of the skin's page updates went from about 37 ms to about 14 ms, the context component's share from about 27 ms to under 1 ms).
|
|
39
|
+
- **The reasoning-effort slider no longer lays the page out again on each update**: the widths of its track and knob are read at the start of each frame, so the slider no longer costs the page an extra layout, its card closed or open (measured locally: the effort picker's share of each update went from about 18 ms to about 1 ms).
|
|
40
|
+
- **Message folding and the reasoning window no longer slow the page while a long conversation streams**: finding the bubble a user message folds on, and reading the reasoning window's heights and styles, happen at the start of each frame, so the writes that follow no longer make the page recompute its styles and layout a second time (measured locally on the desktop app: each message-fold update went from about 6.8 ms to under 0.1 ms, the reasoning window's frame work from about 5–14 ms to about 0.1 ms).
|
|
41
|
+
- **Counting context figures and the wait timer no longer make the whole page recompute its styles**: the figures that rise with a streaming answer on the status line and in the context panel, and the wait line's timer, rewrite their text in place, so another plugin's `:has()` rules on the page no longer recompute the whole page's styles every frame (measured locally on the desktop app: about 10 ms less style recalculation per frame while an answer streams).
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
- **The search palette's filter highlight follows the tab pressed**: the sliding background starts toward a pressed category — Sessions, Projects and the rest — within the press itself, instead of waiting for the list to be drawn again.
|
|
46
|
+
- **Replaying the reasoning in the thinking row no longer slows the page**: the text in the reasoning window glides up one step every 0.84 seconds, each step reaching the newest line, and the page stays smooth while the model thinks (measured locally: the longest frame went from 470 ms with 406 ms of main-thread blocking to no frame over 100 ms across 29 seconds).
|
|
47
|
+
- **The reasoning window grows with its text**: while the model reasons, the window takes the text's own height within the frame the text arrives, so the newest lines are no longer held behind its lower edge until the next beat; once the window reaches the cap it steps up on the same clock as before.
|
|
48
|
+
|
|
7
49
|
## [0.16.1] - 2026-10-17
|
|
8
50
|
|
|
9
51
|
[中文](#cn-0.16.1) | [English](#en-0.16.1)
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -66,8 +66,6 @@ SOFTWARE.
|
|
|
66
66
|
|
|
67
67
|
## transitions.dev
|
|
68
68
|
|
|
69
|
-
The Number pop-in transition (`packages/client/src/features/context-stats/stats-digits.ts` and the `dsh-claude-digit-*` rules in `packages/client/src/features/composer/inline-bar.css`) is ported from transitions.dev's "Number pop-in": its keyframes, its distance, blur, stagger and easing tokens, and one span per character with the last two delayed behind the rest — renamed into this package's own classes and tokens.
|
|
70
|
-
|
|
71
69
|
The "Text states swap" transition (`packages/client/src/features/chat-wait/chat-wait.ts` and the `dsh-claude-chat-wait-label` rules in its stylesheet, and the operation label of a shared file row in `packages/client/src/features/chat-files/` with the `dsh-claude-file-op-*` rules in its stylesheet) is ported the same way: its three-phase sequence (leave upward with a blur, change the text out of sight, enter from below), its duration, shift, blur and easing tokens as this package's own custom properties, and the reflow that releases the entry pose. The snippet's `prefers-reduced-motion` guard is answered by the animation choice this skin resolves onto `<body>` (D40), which already folds the system setting in.
|
|
72
70
|
|
|
73
71
|
The "Reasoning stream" transition (`packages/client/src/features/chat-fold/reasoning-stream.ts` and the `data-dsh-claude-reason-window` rules in that feature's `fold-motion.css`) is ported as well: its window (a few lines tall with a mask at each edge rather than painted gradients), its hold, step, lines, fade and easing tokens, and the stepping clock — read as live text, so there is no copy and no wrap and the steps stop at the newest line.
|
|
@@ -76,7 +74,7 @@ Seven more are ported the same way, each into this package's own classes, attrib
|
|
|
76
74
|
|
|
77
75
|
The colour wash the waiting line can wear instead of the band (`packages/client/src/shared/motion.css`, the `dsh-claude-sweep` and `dsh-claude-wash` presets in that sheet and the `--dsh-claude-wash-*` custom properties) is the paint transitions.dev serves on its own pages as "Pro gradient text" (`.title-pro` on <https://transitions.dev/agent.html>): its seven radial washes over a grey base ramp as inline SVG, its 180% layer sizes, and its orbit and hue-rotation periods, renamed into this package's own custom properties and motion tokens, with the `prefers-reduced-motion` guard answered by the skin's animation choice (D40) as everywhere else.
|
|
78
76
|
|
|
79
|
-
Source: <https://transitions.dev/detail.html?t=
|
|
77
|
+
Source: <https://transitions.dev/detail.html?t=text-states-swap> · <https://transitions.dev/detail.html?t=reasoning-stream> · <https://transitions.dev/detail.html?t=menu-dropdown> · <https://transitions.dev/detail.html?t=modal-open-close> · <https://transitions.dev/detail.html?t=page-side-by-side> · <https://transitions.dev/detail.html?t=notification-badge> · <https://transitions.dev/detail.html?t=skeleton-loader-and-reveal> · <https://transitions.dev/detail.html?t=texts-reveal> · <https://transitions.dev/detail.html?t=toggle> · <https://transitions.dev/detail.html?t=pro-gradient-text> · <https://github.com/Jakubantalik/transitions.dev>
|
|
80
78
|
|
|
81
79
|
```
|
|
82
80
|
Transitions.dev License
|
package/docs/FEATURES.en.md
CHANGED
|
@@ -12,7 +12,7 @@ What each feature does and where its switch lives; the six tabs, their rows and
|
|
|
12
12
|
- **Ripple glyph background**: The new-conversation page's background is a field of digits and letters in the monospace face, redrawn twice a second under a slowly drifting cloud and faintly visible only where the cloud is thin. A press anywhere on the page sends out waves: they travel fastest at the click and slow with distance, so each ring thins as it goes; the characters a wave passes show, blue at its front and grey in its wake, fading away. A switch of the same name under the home layout on the Appearance tab is off until it is turned on, and is marked experimental.
|
|
13
13
|
- **Mascot**: A pixel companion stands on the composer's top edge and changes its animation with what the agent is doing (thinking, writing and calling tools, several sessions at work, subagents, waiting on you, compacting the context, finished, failed, asleep). Follow the brand shows the pixel crab under Claude and Deepy the whale under DeepSeek; either can be picked for good, or none. Where it appears keeps it to the new-conversation page, or puts it in conversations as well.
|
|
14
14
|
- **Permission control**: The composer's permission menu becomes a row of segments on the classic home; the studio home and conversations carry one trigger with its tier card, shaped like the composer's other pickers. The presets are the host's own catalog, a plugin's preset included; the new-conversation page shows the one a new session will start in.
|
|
15
|
-
- **Session numbers**: The session statistics and the token usage follow the host's data live and stand in the context meter's popover by default: the host's own context rows, followed by this session's detail rows — turns and steps, the output speed, the tokens read in and written back, the cache-hit share. On its own line writes them on a line of their own below the input card with the meter's pie at its end, and pressing that line opens and closes the same popover (opening and closing on hover stays the pie's own path). A figure counts from the value on show to a new reading, carries on from where it stands when another reading lands mid-count, and counts to another session's numbers from the ones it was showing; no separator glyph stands between the groups — the line's own gap is what sets them apart — and the cache share's band marks its figure and percent sign alone while the meter's pie takes the colour its occupancy falls on.
|
|
15
|
+
- **Session numbers**: The session statistics and the token usage follow the host's data live and stand in the context meter's popover by default: the host's own context rows, followed by this session's detail rows — turns and steps, the output speed, the tokens read in and written back, the cache-hit share. On its own line writes them on a line of their own below the input card with the meter's pie at its end, and pressing that line opens and closes the same popover (opening and closing on hover stays the pie's own path). A figure counts from the value on show to a new reading, carries on from where it stands when another reading lands mid-count, and counts to another session's numbers from the ones it was showing; the popover's rows count the same way; while an answer streams, the written-back figure climbs with the text that has arrived, by estimate, and is replaced by the host's own number once that step settles; no separator glyph stands between the groups — the line's own gap is what sets them apart — and the cache share's band marks its figure and percent sign alone while the meter's pie takes the colour its occupancy falls on.
|
|
16
16
|
- **Peak rate meter**: Every row of the model picker carries the rate in force for that model right now: peak, off-peak and a dated promotion each get their own mark, the colour says expensive or cheap, and the countdown says how long it lasts; hovering reads the whole judgement, the state in force and what it becomes and when. Each provider is judged on its own clock, public holidays are off-peak in full, and windows crossing midnight and daylight-saving changes are resolved against real instants.
|
|
17
17
|
- **Model picker**: The composer's model menu becomes a two-level card: the first level holds the official service and the quick providers you picked, each model with its vendor mark and a line of description; the second level holds the rest.
|
|
18
18
|
- **Effort**: The reasoning effort gets a trigger of its own beside the model, opening a slider. It switches with the model picker, since the host keeps the effort inside its own model menu.
|
package/docs/FEATURES.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- **水波纹字符背景**:新会话页的背景是一片等宽字体的数字与字母,每秒重绘两次,被缓缓漂移的云层遮住,只在云层稀薄处隐约可见。点击页面任意位置会荡开水波:波速在点击处最快、越远越慢,环越走越细;被波扫过的字符显现出来,波前染成蓝色,尾迹留下灰色并慢慢淡去。设置页「外观」页首页版面下有一个同名开关,默认关闭,标为实验性。
|
|
13
13
|
- **吉祥物**:输入框上沿站着一只像素小伙伴,随智能体的工作状态换动画(思考、写回答与调用工具、多个会话同时工作、子代理、等你操作、压缩上下文、完成、失败、睡着)。「跟随品牌」在 Claude 品牌下是像素螃蟹,在 DeepSeek 品牌下是小鲸鱼 Deepy,也可以固定选一个或者关闭;「出现位置」决定它只在新会话页出现,还是新会话页和对话页都出现。
|
|
14
14
|
- **权限控件**:输入区的权限菜单在经典首页换成一排分段按钮,工作台首页与对话页是一枚按钮加一张档位卡片,与输入区其余选择器同一形制;档位以宿主的目录为准,别的插件加的档位也在里面;新会话页上显示新会话会用的那一档。
|
|
15
|
-
- **会话数字**:会话统计与 Token 用量随宿主的数据实时更新,默认收进上下文计量那张弹层:里面是宿主自己的上下文行,后面接上这一段会话的数字明细——轮数与步数、输出速度、读入与写回的 tokens
|
|
15
|
+
- **会话数字**:会话统计与 Token 用量随宿主的数据实时更新,默认收进上下文计量那张弹层:里面是宿主自己的上下文行,后面接上这一段会话的数字明细——轮数与步数、输出速度、读入与写回的 tokens、缓存命中率。也可以选「独立成行」,把这些数字写在输入卡片下面单独一行、末尾就是那枚计量饼,按一下那一行同样开合这张弹层(悬停开合只归那枚饼)。数字接到新读数就从眼前的数连续计数到新值,答案流式输出期间接连更新时从当时的值接着走;写回的那一数还按流式文字估算着上涨,这一步结算时换成宿主给出的真实值;切换会话时也从上一段的数字计数过去,弹层里的数字同样这样计数;各段之间没有分隔符号、只靠间距分开,缓存命中那一截的色带只染数字与百分号,计量饼按占用自己取色。
|
|
16
16
|
- **峰谷电表**:模型选择器的每一行标出该模型此刻的峰谷:峰价、谷价与限时活动三种状态各有自己的图标,颜色表示贵还是便宜,并跟上距离切换还有多久;悬停读到完整的一条,讲出此刻的判定与切换后的状态。各家供应商按各自时区的作息判定,法定节假日整日算谷价,跨零点与夏令时都按真实时刻计算。
|
|
17
17
|
- **模型选择器**:输入区的模型菜单换成两级卡片:第一级是官方服务与你挑的快捷供应商,每个模型带厂商标志与一句说明,第二级是其余模型。
|
|
18
18
|
- **工作强度**:模型旁边有一个自己的工作强度按钮,点开是一条滑杆;它跟着模型选择器一起开关,因为宿主把工作强度放在自己的模型菜单里。
|
package/docs/SETTINGS.en.md
CHANGED
|
@@ -13,7 +13,7 @@ The settings page appears both in the settings dialog (the "Claude Style" tab) a
|
|
|
13
13
|
| Composer | Composer restyle, Redraw the model picker (with Model descriptions, Quick providers and the Peak rate meter under it), Redraw the permission control |
|
|
14
14
|
| Sidebar | Collapse the sidebar settings area (with the Account-hold easter egg under it: Off / 中文 / English), Sidebar search, Search box style, In progress / Archived view, Float docked panels, Sidebar layout (Relaxed / Compact) |
|
|
15
15
|
| Conversation | Conversation navigator, Conversation statistics position (Inside the context popover / On its own line), Chat / Trajectory tabs, Header in the title bar |
|
|
16
|
-
| Motion | Animation, Chat-area scrolling animation (Following the end / Rows and groups folding / File operation rows), Waiting-line animation (a switch, with a Precise status line switch and two cards under it: Highlight sweep / Colour wash), Composer caret motion (On / Off), New-text fade (Fade in / Appears at once), Message bubble animation (a switch, with two cards under it: Grows into its place / Flies up from the composer) |
|
|
16
|
+
| Motion | Animation, Chat-area scrolling animation (Following the end / Rows and groups folding / File operation rows), Waiting-line animation (a switch, with a Precise status line switch and two cards under it: Highlight sweep / Colour wash), Composer caret motion (On / Off), Ongoing conversations (two cards: Breathing light / Turning ring), New-text fade (Fade in / Appears at once), Message bubble animation (a switch, with two cards under it: Grows into its place / Flies up from the composer) |
|
|
17
17
|
|
|
18
18
|
Every feature that takes over part of the host's interface has its own switch; turning it off brings the host's original back at once, without a reload. Chat-area scrolling animation governs the three parts of the conversation that move with its content — following the end, rows and groups folding open and shut, and the file operation rows — playing this plugin's set when on and handing those three back, with the host's own way of doing them, when off; the waiting-line animation and the sent message's entrance on the Motion tab each carry a switch of their own and no longer follow it, and the caret and the new-text fade keep their on/off choices as before.
|
|
19
19
|
|
|
@@ -67,7 +67,9 @@ In the settings dialog, this page's heading row ends with a GitHub mark; pressin
|
|
|
67
67
|
|
|
68
68
|
**Waiting-line animation**: one of the Motion tab's settings, and it is about the words on the line that says what the model is doing, with a switch of its own: off hands the line back to the host and greys the two rows under it — Precise status line and the two cards. With the line on, the Precise status line switch right below decides how much it says: on writes the specifics of the moment (the file a call works on, a command's declared description, a clause out of the reasoning, so Chinese and English mix), off writes the bare states alone. The two cards under that carry no text: each is that line's own words, moving, all the time. Inside a card the words take turns between two wordings — the word the brand in force waits on and "Running tools…" — the old one leaving upward and the new one rising back in, which is the swap the line itself runs (with the precise line on, the card takes turns between three samples instead, one at a time: 正在阅读README.md, Checking out current tree and 正在思考), over either paint: Highlight sweep (the default) crosses a band of light over the glyphs at the rhythm of the host's own rows, and Colour wash makes the letters themselves move through colour — seven radial washes over a grey ramp, orbiting the glyph box while the hue turns a full circle. One press on a card changes it at once; on the line itself the wording, its swap and the clock beside it are the same either way; with Animation set to Reduced the paint holds still (neither the band nor the wash moves on) and the words keep taking turns, cut from one to the other with no leave and no rise, which is what the line does as well.
|
|
69
69
|
|
|
70
|
-
**
|
|
70
|
+
**Ongoing conversations**: this row on the Motion tab decides how the sidebar marks a conversation that is still running, at the head of its row. Each of the two cards is one sidebar row as the sidebar draws it — the mark first, its title after — so the two differ in the mark alone; one press on a card changes the real row at once. Breathing light (the default) is a filled dot the size of an idle row's hollow circle, brightening and dimming in place; Turning ring is what earlier builds drew: a 10px ring whose track carries one brighter stretch around it. With Animation set to Reduced both stand still (the light at its brightest, the ring caught at one step), and the mark still reads as a row at work.
|
|
71
|
+
|
|
72
|
+
**Conversation statistics position**: the session's eight figures have two places to live. Inside the context popover (the default) puts them in the panel that the meter's pie opens and leaves only the pie under the input card; On its own line writes the turns and steps, the output speed, the tokens read in, the tokens written back and the cache-hit share on a line of their own below the input card, with the pie itself at the end. A figure on that line counts from the value on show to a new reading (every step moves it; through a streaming answer the written-back figure climbs with the text that has arrived, by estimate, and takes the host's own number once that step settles), carries on from where it stands when another reading lands mid-count, and counts to another session's numbers from the ones it was showing; the popover's rows count the same way; the cache share's band marks its figure and percent sign alone, the words before them keeping the line's own tone — the share runs from red in the nineties to dark green at 99%, and the pie takes a colour between green at two fifths and red at four fifths. A window too narrow for the whole line makes it give way one step at a time: first the cache share's words, then the turns and steps, then the number beside the pie (the pie stays), then the tokens read in and written back as one total, and last the counts folded into k / M / B — and the same order gives them back when the window grows.
|
|
71
73
|
|
|
72
74
|
**Conversation navigator**: the column of short marks at the conversation's right edge holds one per turn and follows where you are reading. Reach it with the pointer and it opens into a list: each row carries the message that started its turn and sits exactly where that turn's mark was — the turn you are reading stays in place, and the turn under the pointer is still under it. The wheel scrolls the list and a click glides the page to the turn, loading earlier history first when it is not loaded yet; the Chat / Trajectory tabs at the top of the conversation stay up while the pointer is on the list. Alt+↑ / Alt+↓ jump to the previous or the next turn, and held or repeated they keep stepping; while the composer holds a draft the keys stay with it. The turn you land on flashes a short line over its start. With [dsh-plugin-msg-nav](https://github.com/SherUnlocked-4869/dsh-plugin-msg-nav) installed too, Alt+↑ / Alt+↓ stay with that plugin.
|
|
73
75
|
|
package/docs/SETTINGS.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
| 输入区 | 输入区重绘范围、重绘模型选择器(及其下的模型描述、快捷供应商与峰谷电表)、重绘权限控件 |
|
|
14
14
|
| 侧栏 | 折叠侧栏设置区(及其下的封号彩蛋:关闭 / 中文 / English)、侧栏搜索、搜索框样式、进行中 / 已归档视图、面板悬浮卡片、左侧栏布局(宽松 / 紧凑) |
|
|
15
15
|
| 对话 | 对话导航、对话统计信息位置(收进上下文 / 独立成行)、对话 / 轨迹标签条、会话标题进入顶栏 |
|
|
16
|
-
| 动效 | 动画效果、聊天区滚动动画(跟随末尾 / 行与过程组的开合 / 文件操作行)、状态行动画(一个开关,下面依次是「精确状态行」开关与两张卡:扫光 / 渐变流动)、光标动画(开 /
|
|
16
|
+
| 动效 | 动画效果、聊天区滚动动画(跟随末尾 / 行与过程组的开合 / 文件操作行)、状态行动画(一个开关,下面依次是「精确状态行」开关与两张卡:扫光 / 渐变流动)、光标动画(开 / 关)、进行中的对话(两张卡:呼吸灯 / 滚动圆环)、新文字淡入(淡入 / 直接出现)、消息气泡动画(一个开关,下面两张卡:在原地长出来 / 从输入框飞上来) |
|
|
17
17
|
|
|
18
18
|
每一项接管宿主界面的功能都有自己的开关,关闭后宿主原来的界面原样回来,不需要刷新页面。「聊天区滚动动画」管的是对话区里随内容滚动的那三样——跟随末尾、行与过程组的开合、文件操作行——开启时播放本插件的这一套,关闭后这三样交回宿主,宿主自己的做法也一并回来;「动效」页里的状态行动画与消息气泡动画各自带一个开关,不再跟它一起走,光标动画与新文字淡入也照旧各自有开与关两档。
|
|
19
19
|
|
|
@@ -67,7 +67,9 @@
|
|
|
67
67
|
|
|
68
68
|
**状态行动画**:「动效」页的这一项,管的是轮次进行中、对话末尾那一行文字上的动静,自己带一个开关,关闭时这一行交回宿主(它下面那两行——「精确状态行」与两张画法卡片——同时变灰、不能操作);开启后,紧跟着的「精确状态行」决定这一行说得多细:开着时写具体在做什么(正在操作的文件、命令声明的描述、推理里的原句,所以中文与英文会混着出现),关掉只写状态本身。再下面那两张画法卡片都不带文字,卡片里就是这一行自己的样子,一直在动:里面的字在两种说法之间来回换——旧的向上淡出、新的从下方升起,就是状态行换词的那套动作(「精确状态行」开着时改在三条样例之间一次一条地换:正在阅读README.md、Checking out current tree、正在思考)——画法则是默认的「扫光」:一道高光带贴着字形扫过,与宿主自己的行同一节奏;另一档「渐变流动」让文字本身流动着变色,七层径向色斑压在一条灰色渐变上,色斑绕着字框游走,同时整圈色相在转。点一张卡片立刻换过来;真实状态行的说法、换词与旁边的时间两档都一样;「动画」设为「减弱」时画法停住(扫光与渐变都不再走),说法照旧一轮一轮换,只是换成瞬间切换——不再演离开与升起那两半,预览卡与状态行在这一点上一致。
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
**侧栏进行中的标记**:「动效」页的这一项决定侧栏里正在进行的对话,行首那颗标记画成什么。两张卡片里各是一行侧栏的样子——标记在前、标题在后——所以两档的分别就是标记本身;点一张卡片立刻换过来,真实的那一行当场换掉。「呼吸灯」(默认)是一颗与空闲行的空心圈同大的实心圆点,原地明暗起伏;「滚动圆环」是此前版本的样子:一枚 10px 的圆环,轨道之上有一段更亮的部分转着走。「动画」设为「减弱」时两档都停住(圆点停在最亮处、圆环停在一格),仍看得出这一行在跑。
|
|
71
|
+
|
|
72
|
+
**对话统计信息位置**:会话的八个数字有两个去处。「收进上下文」(默认)把它们放进那枚上下文计量饼的弹层,输入卡片下方只留那枚饼;「独立成行」把其中的轮数与步数、输出速度、读入的 tokens、写回的 tokens 与缓存命中率写在输入卡片下面单独一行,末尾就是那枚计量饼。这一行里的数字接到新读数就从眼前的数连续计数到新值(每走一个步骤都在动;流式输出期间写回的那一数按收到的文字估算着上涨,这一步结算时换成宿主的真实值),中途再接到新读数就从当时的值接着走,切换会话时也从上一段的数字计数到新一段的,弹层里的数字同样这样计数;缓存命中那一截的色带只染数字与百分号,前面的字样留在这一行自己的颜色,命中率从九成的红走到 99% 的深绿,计量饼按占用自己在四成的绿到八成的红之间取色。窗口窄到这一行放不下时它会依次让位:先去缓存那截的字样,再去轮数与步数,再去计量饼旁的数字(饼留下),然后把读入与写回合成一个合计,最后把数字折叠成 k / M / B;窗口宽回来时按同一顺序退回。
|
|
71
73
|
|
|
72
74
|
**对话导航**:对话区右侧那列短横线每一轮一条,跟着你读到的位置走。鼠标碰到它,它就展开成一张列表:每一行写着开启这一轮的那条消息,正好落在它那条短横线原来的位置上——你正在读的那一轮还在原处,鼠标下面还是刚才那一轮;滚轮上下翻,点一行页面滑到那一轮,还没加载的早期对话先加载再跳;指针停在列表上时,对话区顶部的对话 / 轨迹标签照常显示。Alt+↑ / Alt+↓ 跳到上一轮或下一轮,连按会一轮一轮接着走;输入框里有草稿时这两个键留给输入框。跳到的那一轮开头会闪一条短横线。同时装着 [dsh-plugin-msg-nav](https://github.com/SherUnlocked-4869/dsh-plugin-msg-nav) 时,Alt+↑ / Alt+↓ 留给它。
|
|
73
75
|
|
package/docs/STYLE.md
CHANGED
|
@@ -291,9 +291,9 @@ edit the JSON, not the table.
|
|
|
291
291
|
| `--dsh-claude-duration-bounce` | `350ms` | a switch's knob travelling across with its double bounce |
|
|
292
292
|
| `--dsh-claude-duration-flight` | `400ms` | the sent message flying from the composer to its row |
|
|
293
293
|
| `--dsh-claude-duration-step` | `500ms` | one step of the reasoning window's text rising two lines |
|
|
294
|
-
| `--dsh-claude-duration-pop` | `500ms` | something popping into place:
|
|
294
|
+
| `--dsh-claude-duration-pop` | `500ms` | something popping into place: the overtime badge's own pill |
|
|
295
295
|
| `--dsh-claude-duration-rise` | `500ms` | a line of the home greeting rising into place |
|
|
296
|
-
| `--dsh-claude-duration-stagger` | `70ms` | how far behind the piece before it a staggered piece starts: the
|
|
296
|
+
| `--dsh-claude-duration-stagger` | `70ms` | how far behind the piece before it a staggered piece starts: the greeting's second line |
|
|
297
297
|
| `--dsh-claude-period-dot-orbit` | `2400ms` | one turn of the waiting line's loader dots that swap corners: four quarter-turns of the two pairs, which leaves every dot where it started |
|
|
298
298
|
| `--dsh-claude-period-dot-rotate` | `10s` | how long one of the waiting line's loader motions stands before another takes its place, the next one picked so a motion never follows itself |
|
|
299
299
|
| `--dsh-claude-duration-reduced` | `0.01ms` | every skin animation and transition under the Reduced animation choice (D40) |
|
|
@@ -309,6 +309,7 @@ edit the JSON, not the table.
|
|
|
309
309
|
| `--dsh-claude-period-flash` | `1450ms` | one flash of the reasoning slider's top-rung matrix |
|
|
310
310
|
| `--dsh-claude-period-blink` | `1000ms` | one blink of the composer caret |
|
|
311
311
|
| `--dsh-claude-period-breathe` | `2400ms` | one breath of the sidebar's ongoing-conversation light |
|
|
312
|
+
| `--dsh-claude-period-spin` | `850ms` | one turn of the sidebar's ongoing-conversation ring |
|
|
312
313
|
| `--dsh-claude-period-landed` | `1400ms` | the mark on the turn the conversation navigator landed on |
|
|
313
314
|
| `--dsh-claude-period-hold` | `840ms` | how long the reasoning window's text stands between two steps |
|
|
314
315
|
| `--dsh-claude-period-dot-bounce` | `500ms` | one bounce of the waiting line's loader dots under the Claude brand, and the period each dot's own start is measured against |
|
|
@@ -319,15 +320,15 @@ edit the JSON, not the table.
|
|
|
319
320
|
| `--dsh-claude-ease-in-out` | `ease-in-out` | something that leaves and returns, or swaps in place: wording swaps, pulses, flashes |
|
|
320
321
|
| `--dsh-claude-ease-glide` | `cubic-bezier(0.22, 0.61, 0.36, 1)` | travel along a track: the sliding highlight, the reasoning slider, the search dialog's entrance, the reasoning window's step, the wording box's width, the stream's slide |
|
|
321
322
|
| `--dsh-claude-ease-roll` | `cubic-bezier(0.4, 0, 0.2, 1)` | digits rolling over: the file rows' tail and the process group header's counts |
|
|
322
|
-
| `--dsh-claude-ease-spring` | `cubic-bezier(0.34, 1.45, 0.64, 1)` | a small overshoot as something lands: the
|
|
323
|
+
| `--dsh-claude-ease-spring` | `cubic-bezier(0.34, 1.45, 0.64, 1)` | a small overshoot as something lands: the overtime badge popping in, a switch's knob bouncing past its end |
|
|
323
324
|
| `--dsh-claude-ease-settle` | `cubic-bezier(0.22, 1, 0.36, 1)` | a surface or a page settling into place out of its anchor: menus and dialogs opening and closing, a settings page sliding, the overtime badge sliding onto its line, the greeting's lines rising |
|
|
324
325
|
| `--dsh-claude-ease-host-sweep` | `steps(48, end)` | the band across the waiting line's words and a running process group's header |
|
|
325
326
|
| `--dsh-claude-ease-damped-out` | `cubic-bezier(0.33, 1, 0.68, 1)` | a loader dot slowing into the end of its line: the damping the line motion carries, so a dot dwells at its turning point before it comes back |
|
|
326
327
|
| `--dsh-claude-ease-damped-in` | `cubic-bezier(0.32, 0, 0.67, 0)` | a loader dot leaving the end of its line and gathering speed towards the middle |
|
|
327
328
|
| `--dsh-claude-distance-nudge` | `4px` | the short offset a surface rises from, and a small row's wording swap travels |
|
|
328
|
-
| `--dsh-claude-distance-travel` | `8px` | the waiting line's wording swap,
|
|
329
|
+
| `--dsh-claude-distance-travel` | `8px` | the waiting line's wording swap, a settings page's slide, the overtime badge's sideways slide, and both directions of the waiting line's loader dots: the lift off their floor and the reach along their own lines |
|
|
329
330
|
| `--dsh-claude-distance-rise` | `12px` | how far below its place a line of the home greeting starts, and the overtime badge's upward slide |
|
|
330
|
-
| `--dsh-claude-blur-soft` | `2px` | the blur words
|
|
331
|
+
| `--dsh-claude-blur-soft` | `2px` | the blur words and badges pass through while they swap or pop in, and a placeholder passes through as it hands its place over |
|
|
331
332
|
| `--dsh-claude-blur-enter` | `3px` | the blur a settings page or a line of the home greeting passes through as it slides or rises in |
|
|
332
333
|
| `--dsh-claude-scale-surface` | `0.98` | the scale a surface grows from as it rises |
|
|
333
334
|
| `--dsh-claude-scale-dropdown` | `0.97` | the scale a menu grows from out of its trigger |
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/assets/manifest.json
CHANGED
|
@@ -101,15 +101,15 @@
|
|
|
101
101
|
"encoding": "br",
|
|
102
102
|
"bytes": 77316
|
|
103
103
|
},
|
|
104
|
-
"
|
|
104
|
+
"0cde9ade580e.js": {
|
|
105
105
|
"type": "text/javascript; charset=utf-8",
|
|
106
106
|
"encoding": "br",
|
|
107
|
-
"bytes":
|
|
107
|
+
"bytes": 26253
|
|
108
108
|
},
|
|
109
|
-
"
|
|
109
|
+
"fa257e5906cb.js.map": {
|
|
110
110
|
"type": "application/json; charset=utf-8",
|
|
111
111
|
"encoding": "br",
|
|
112
|
-
"bytes":
|
|
112
|
+
"bytes": 145823
|
|
113
113
|
},
|
|
114
114
|
"b55a1acf34e0.js": {
|
|
115
115
|
"type": "text/javascript; charset=utf-8",
|
|
@@ -131,15 +131,15 @@
|
|
|
131
131
|
"encoding": "br",
|
|
132
132
|
"bytes": 74969
|
|
133
133
|
},
|
|
134
|
-
"
|
|
134
|
+
"bebb9a8751b0.js": {
|
|
135
135
|
"type": "text/javascript; charset=utf-8",
|
|
136
136
|
"encoding": "br",
|
|
137
|
-
"bytes":
|
|
137
|
+
"bytes": 8319
|
|
138
138
|
},
|
|
139
|
-
"
|
|
139
|
+
"f70c3fda4e83.js.map": {
|
|
140
140
|
"type": "application/json; charset=utf-8",
|
|
141
141
|
"encoding": "br",
|
|
142
|
-
"bytes":
|
|
142
|
+
"bytes": 34875
|
|
143
143
|
},
|
|
144
144
|
"d2064c247435.js": {
|
|
145
145
|
"type": "text/javascript; charset=utf-8",
|
|
@@ -151,15 +151,15 @@
|
|
|
151
151
|
"encoding": "br",
|
|
152
152
|
"bytes": 132800
|
|
153
153
|
},
|
|
154
|
-
"
|
|
154
|
+
"89c261313699.js": {
|
|
155
155
|
"type": "text/javascript; charset=utf-8",
|
|
156
156
|
"encoding": "br",
|
|
157
|
-
"bytes":
|
|
157
|
+
"bytes": 31940
|
|
158
158
|
},
|
|
159
|
-
"
|
|
159
|
+
"d8602385cac2.js.map": {
|
|
160
160
|
"type": "application/json; charset=utf-8",
|
|
161
161
|
"encoding": "br",
|
|
162
|
-
"bytes":
|
|
162
|
+
"bytes": 127865
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
}
|