Skip to content

Releases: TLEWA/dsh-sidebar-organizer

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 04 Nov 01:02

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.7.3/dsh-sidebar-organizer-0.7.3.tgz

也可以下载 dsh-sidebar-organizer-0.7.3.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.7.3。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.7.3 — 2026-11-04

  • 仅文档:README 的版本说明改为不随版本漂移的写法,安装示例指向 v0.7.3,中英文路线图补齐
    0.7.2 一行并删去无障碍目标。无代码变更。

English

  • Docs only: the README version blurb no longer hard-codes a version, the install
    example points at v0.7.3, and both roadmaps gain the 0.7.2 row while dropping the
    accessibility goal. No code changes.

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 04 Nov 01:01

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.7.2/dsh-sidebar-organizer-0.7.2.tgz

也可以下载 dsh-sidebar-organizer-0.7.2.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.7.2。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.7.2 — 2026-11-04

  • 修正:桌面端窗口里拖好的顺序,在浏览器打开的 Web 界面(http://127.0.0.1:<端口>)里
    看不到,两个界面各显示各的。原因是布局只写在 window.localStorage,而桌面窗口的
    origin 是 dsh-app://app、Web 界面是 http://127.0.0.1:<端口>,端口每次重启还会变,
    浏览器按 origin 隔离,同一台机器上的两份存储本来就互不相通。
  • 现在布局同时存到宿主侧 $DSH_HOME/storages/dsh-sidebar-organizer/layout.json:桌面端
    与任意端口的 Web 界面读写同一份,重启桌面端、换端口都不影响;localStorage 保留为
    本地缓存,宿主不可用时(旧版宿主、静态页、离线)照旧按本地布局工作。
  • 合并规则是「更新时间戳较新者胜」:拖动后 350ms 内上传一次,窗口重新可见或获得焦点时
    拉取一次;拉到的顺序会立即重排当前页面,不会反过来再上传。
  • 新开窗口且宿主还没有存档时保留本地顺序,不会用一个空布局抹掉桌面里已经拖好的配置;
    只有「恢复默认」才显式清空宿主存档。
  • 只有真正动过顺序的窗口才会成为发布源:启动时的默认登记、投影 pass 写回的布局都只留在
    本地,不会把默认顺序上传后盖掉另一个窗口里拖好的配置;升级前就存在本地、且与宿主注册
    顺序不同的布局会被认作旧版手工配置,首次启动时接管宿主存档。
  • 新增:设置页「布局整理」顶部有「跨窗口共用布局」开关。关掉后每个窗口只用自己的本地
    布局,不再上传或拉取宿主存档(即 0.7.1 的行为),桌面端与 Web 界面各排各的;重新打开
    会立即拉取宿主那份并继续共用。

English

  • Fix: the order dragged in the desktop window was not visible in the Web UI opened in a
    browser (http://127.0.0.1:<port>) — each showed its own layout. The layout lived only
    in window.localStorage, and the desktop window (dsh-app://app) and the Web UI are
    different origins (the port changes on every restart), so the two stores never met.
  • The layout is now also stored host-side at
    $DSH_HOME/storages/dsh-sidebar-organizer/layout.json: the desktop window and a Web UI
    on any port read and write the same copy; localStorage stays as a local cache for
    older hosts, static pages and offline use.
  • Merging is last-write-wins by timestamp: a change is pushed 350 ms after the last edit and
    pulled when a window becomes visible or focused; an adopted layout is re-applied locally
    without echoing back an upload.
  • A fresh window keeps its local order when the host has no copy yet (so an empty layout
    cannot wipe an existing one); only "reset to default" clears the host copy.
  • Only windows that really rearranged something publish: the boot-time registration and the
    projection pass writeback stay local, so a default order can never overwrite an arranged
    one in another window; a pre-upgrade local layout that differs from the host registration
    order is treated as hand-made and takes over the host copy on first boot.
  • New: a "Shared layout" switch at the top of the settings page. Turned off, every window
    keeps only its own local layout and stops reading or writing the host copy (the 0.7.1
    behaviour), so the desktop window and the Web UI can be arranged independently; turning
    it back on pulls the host copy immediately.

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 20:58

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.7.1/dsh-sidebar-organizer-0.7.1.tgz

也可以下载 dsh-sidebar-organizer-0.7.1.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.7.1。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.7.1 — 2026-11-04

  • 修正:「更多操作」菜单内拖动宿主菜单项(下载 Session 日志 / 反馈)重排后松手不生效。
    宿主菜单项不属于收纳列表,提交时误走了收纳排序通道,必然失败;现在宿主菜单项有
    自己的顺序存储(按标签保存,因为宿主每次打开菜单都会重新分配内部 id),菜单关闭
    重开或刷新页面后顺序保持,且只与同类宿主菜单项互排,不影响已收纳项的顺序。
  • 修正:在「更多操作」菜单内完成重排后菜单会被立即关闭。现在菜单内重排保持展开,
    只有把行拖出菜单、或拖回「更多操作」执行收纳时菜单才关闭。
  • 修正:纯图标行(会话头部图标等)的拖影带有黑色圆角方块。原判据是「源行背景透明
    才使用扁平拖影」,但指针悬停在图标上时宿主会给出半透明浅色底,判据失效后又套上
    了深色卡片底;现在改为按行内有无文字判断,图标行拖影一律透明底、无阴影。

English

  • Fix: reordering the shipped menu items ("Download session log" / "Feedback")
    inside "More actions" did not stick on release. Those rows are not part of the
    tucked list, so the commit went through the tucked-order path and always
    failed; they now have their own label-keyed order (the host reassigns internal
    ids every time the menu opens), persisted across menu reopen and reload and
    kept separate from tucked rows.
  • Fix: finishing a reorder inside "More actions" closed the menu immediately.
    It now stays open for in-menu reordering and only closes when a row is dragged
    out of the menu or onto "More actions" to be tucked away.
  • Fix: glyph-only rows (session-header icons and the like) dragged with a black
    rounded tile behind them. The flat ghost was selected only when the source
    background was fully transparent, but hovering an icon makes the host paint a
    translucent tint, so the check failed and the dark card surface came back. The
    decision now keys on whether the row has text, and icon-only rows always get a
    transparent, shadowless ghost.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 20:08

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.7.0/dsh-sidebar-organizer-0.7.0.tgz

也可以下载 dsh-sidebar-organizer-0.7.0.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.7.0。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.7.0 — 2026-11-04

  • 新增「会话头部工具条」区域:对话页右上角那排图标(提醒、底部面板、上下文诊断、
    解除卡顿、查找等)现在也支持长按拖动排序、收进「更多操作」与从「更多操作」拖回。
  • 条带里的宿主控件保持原样:「更多操作」按钮本身不参与排序、也不可收纳,始终停在
    它自己的位置;「用文件资源管理器打开 / 更多打开方式」这类分屏组合控件同样整体
    保留,不会被拆成可拖动行。
  • 收纳落点就是官方内置的「更多操作」菜单(下载 Session 日志 / 反馈所在的那个):
    已收纳条目以菜单行的形式注入原生两项上方,不额外添加标题;菜单打开期间保持同步,
    点击条目会触发对应组件,拖出即恢复原位。该菜单由官方插件硬编码、不暴露插槽,
    因此改用 DOM 注入并随菜单开合清理。
  • 官方菜单里的「下载 Session 日志」「反馈」也可以拖到条带上,生成同名图标按钮,
    点击等同于点击该菜单项;拖回「更多操作」即撤下该按钮。
  • 与其他区域一致的独立拖动开关、按区域恢复、配置导入/导出;存储格式不变,旧的 v3
    布局会自动补上该区域,无需迁移。0.7.0 起设置里的「布局整理」页面也包含该区域的
    卡片。
  • 修正:从菜单拖出条目后宿主菜单会停留在屏幕上——关闭动作改走一个不受拖拽后点击
    守卫影响的通道;同时修正拖动预览与实际落点偶尔不一致的问题(保存顺序里存在宿主
    当前未渲染的条目时,落点索引会整体偏移,表现为预览线画得出、松手却不动)。
  • 修正拖影白边:会话头部的图标按钮靠外层容器提供「无边框、无内边距、居中」的样式,
    拖影克隆到 <body> 后这层样式失配,浏览器给按钮补上默认的 2px 浅色描边。现在把
    源行实际生效的边框、内边距、显示方式与对齐一并冻结到拖影上。

English

  • New "session header" scope: the icon strip at the top right of a conversation
    (reminder, bottom panel, context diagnostics, unstick, find, …) now supports
    long-press reordering, tucking into "More actions", and dragging back out.
  • Host chrome inside the strip stays untouched: the "More actions" button itself
    is neither sortable nor tuckable and keeps its own place, and split controls
    such as "Open in file explorer / More ways to open" stay whole instead of
    being split into draggable rows.
  • Tucked rows land in the shipped "More actions" menu (the one with "Download
    session log" and "Feedback"): they are injected as menu rows above the native
    items without adding a heading, stay in sync while the menu is open, activate
    the component when clicked, and return to their place when dragged out. That
    menu is hardcoded by an official plugin and exposes no slot, so the rows are
    injected as DOM and torn down with the menu.
  • The shipped "Download session log" and "Feedback" items can be dragged onto
    the strip as icon buttons that perform the same action as the menu item; drop
    one back on "More actions" to take it away again.
  • The scope has its own drag switch, region reset, and configuration
    import/export like every other scope; the v3 storage format is unchanged (old
    layouts simply gain the new scope), and the "Layout organizer" settings page
    lists it from 0.7.0 on.
  • Fix: dragging a row out of the "More actions" menu left the host menu open;
    closing it now bypasses the post-drag click guard. Drag preview and drop
    position no longer disagree either: a saved order can list a row the host does
    not paint right now, and its slot used to shift every drop index.
  • Fix the ghost's light frame: the session-header icon buttons get "no border,
    no padding, centered" from a wrapper selector that no longer matches once the
    clone sits on <body>, so the browser supplied its default 2px outset button
    border. The clone now freezes the source row's resolved border, padding,
    display and alignment.

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 18:18

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.6.1/dsh-sidebar-organizer-0.6.1.tgz

也可以下载 dsh-sidebar-organizer-0.6.1.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.6.1。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.6.1 — 2026-11-04

  • 修复从「更多」菜单拖动已收纳条目时拖影是直角方块:已收纳行由一层普通的
    .dso-menu-item 容器包住宿主圆角按钮,此前插件只读取容器自身的圆角(0),
    并把 border-radius: 0 !important 冻结到拖影上。现在会继续查找容器内真正
    带圆角的行按钮,取它的圆角;只有确实没有圆角时才回退到默认值。

English

  • Fix the square drag ghost when dragging a collected row out of the "More" menu:
    collected rows are a plain .dso-menu-item wrapper around the host's rounded
    menu button. The organizer used to freeze only the wrapper's own radius (0) as
    border-radius: 0 !important on the ghost. It now resolves the radius from the
    rounded row button inside the wrapper and falls back to the default only when
    no rounded element exists.

v0.6.0

Choose a tag to compare

@TLEWA TLEWA released this 02 Nov 14:56

安装

在 DSH 桌面端打开「插件」页 →「添加插件」,粘贴下面的压缩包链接:

https://github.com/TLEWA/dsh-sidebar-organizer/releases/download/v0.6.0/dsh-sidebar-organizer-0.6.0.tgz

也可以下载 dsh-sidebar-organizer-0.6.0.tgz 后选择本地文件安装;发布页同时提供 SHA256SUMS 便于校验。安装完成后按 Ctrl+R 刷新界面。

备选:粘贴 Git 地址 git+https://github.com/TLEWA/dsh-sidebar-organizer.git#v0.6.0。这种方式直接使用仓库里已构建好的 lib/,不需要在本机构建。


0.6.0 — 2026-11-02

首个正式版:把 0.5.x 预览版验证过的六区域整理、设置页与配置导入/导出收拢为稳定发布,
并完成下列收尾修复。npm 上的 latest 由 0.4.3 直接更新到 0.6.0;0.5.x 预览版此前只在
GitHub 发布。

  • 修复窗口变窄(例如打开右侧栏)后已收纳的对话视图「跑出来」:宿主会根据标签栏
    宽度把放不下的视图折叠进「更多」菜单,被收纳的视图于是以宿主普通条目的形式出现
    在「已收纳」上方;同时「已收纳」区又因为对应标签已不在 DOM 中而整块消失,只剩
    「恢复默认排序」。现在折叠进菜单的已收纳视图仍列在「已收纳」下方,宿主对应的
    重复条目会被隐藏,点击后照常打开该视图。
  • 修复刷新后侧栏的自定义顺序丢失(同一份配置里的收纳状态却仍然有效):启动时
    插件会分多次发现宿主行,第一次只看到部分行时,旧逻辑会把尚未出现的行从保存
    顺序里剪掉并立即写回;这些行稍后挂载时就成了「新条目」,被按宿主位置插回,
    自定义顺序因此被冲掉。现在尚未发现的行会和已收纳行一样保留在保存顺序中。
  • 新增配置导入 / 导出:设置页标题栏可把六区域的排序、收纳状态与拖动开关导出为
    JSON 文件,也能导入同格式文件整体替换当前配置。版本不兼容、缺少布局块或 JSON
    损坏时整份拒绝,不会只应用一半;导入后的顺序也不会被旧版尾行修复再次改写。
  • 修复拖动对话标签(「对话 / 轨迹」)时页面右侧多出一条滚动条:宿主的标签样式
    给克隆行带上了 position: relative,拖影于是落进 body 常规流、把文档撑高。
    现在拖影强制 position: fixed !important,不再参与页面布局。
  • 修复标签插入线偏下、不居中:宿主标签在底部预留 9px 给当前项的下划线,插入线
    原来按整个行盒居中,视觉上比文字低。现在按行的内容区居中,与标签文字对齐。
  • 修复把右侧栏组件拖进「更多」时松手会误触发一次点击:投放走 180ms 收纳动画,
    点击护栏(500ms)原本要等动画结束才生效,而浏览器在 pointerup 当刻就派发了
    click,于是被激活的是刚拖走的那一行。现在 pointerup 里先同步装上护栏再提交
    投放,拖进「更多」只收纳、不激活。
  • 修复设置导航里的「布局整理」入口无法拖动:它原先和 better-sidebar 的设置入口
    一样被固定。现在本插件自己的入口可以拖动排序,但仍不能收起;better-sidebar 的
    入口保持完全固定,避免拖走后找不到它自己的恢复入口。
  • 设置导航有收纳项时,导航底部新增「更多」按钮:列出已收纳的设置项,点击直接
    打开对应设置页;也可以把其他设置行继续拖进去。收纳第一项仍需在配置页操作。

English

First stable release: promotes the six-scope organizer, settings page, and
configuration import/export validated in the 0.5.x previews, and includes the
cleanup fixes below. npm's latest tag moves from 0.4.3 straight to 0.6.0; the
0.5.x previews were published on GitHub only.

  • Fix tucked conversation views leaking back into view when the pane gets narrow
    (for example after opening the right sidebar): the host folds views that no
    longer fit into the header "More" menu, so a tucked view reappeared there as an
    ordinary host row above "已收纳", while the tucked block itself disappeared
    (its tab was no longer in the DOM) and only "Reset layout" remained. Folded
    tucked views now stay listed under the tucked caption, the duplicate host rows
    are hidden, and clicking one still opens that view.
  • Fix a custom sidebar order being lost after a reload while the same layout's
    tucked state survived: at startup the plugin discovers host rows in several
    passes. On the first pass it saw only some rows and pruned the rest from the
    saved order, writing that partial order back. The missing rows then mounted,
    looked brand new, and were inserted at their host positions, wiping out the
    custom order. Undiscovered rows now stay in the saved order, just like tucked
    rows.
  • Add configuration import/export: the settings header exports the order, tucked
    rows, and drag switches of all six sections as a JSON file, and imports the
    same format as a full replacement. A version mismatch, a missing layout block,
    or broken JSON is rejected whole instead of half-applied, and the legacy
    trailing-row repair cannot rewrite the imported order.
  • Fix a stray page scrollbar while dragging the conversation tabs: the host tab
    class sets position: relative, so the cloned ghost fell into normal flow at
    the bottom of the page and grew the document. The ghost is now pinned with
    position: fixed !important and no longer affects layout.
  • Fix the tab insertion line sitting too low: the host tab reserves 9px at the
    bottom for the active underline, so centering on the padding box put the line
    below the labels. It now centers on the row's content box, aligned with the
    tab text.
  • Fix a component in the right sidebar being activated when it is dropped onto
    "More": the drop runs a 180 ms absorb animation and the 500 ms click guard
    was only armed when that animation ended, while the browser dispatches the
    click immediately on pointerup, so the row that had just been dragged away
    received it. The guard is now armed synchronously in pointerup before the
    drop commits, so dropping onto "More" only tucks the row.
  • Fix the "Layout organizer" entry in settings navigation being undraggable: it
    was pinned together with better-sidebar's settings entry. Our own entry can now
    be reordered, though it still cannot be tucked; better-sidebar's entry stays
    fully fixed so its own recovery path cannot be dragged away.
  • When settings navigation has tucked rows, a "More" button now appears at the
    bottom of the list: it lists the tucked settings and opens the matching section
    on click, and accepts further drops. Tucking the first row still happens from
    the settings page.

0.5.6-preview.1 — 修复右侧栏起始页被向下挤压(测试版)

Choose a tag to compare

@TLEWA TLEWA released this 02 Nov 12:16

测试版 / preview build — 只在 feature 分支发布,供验证右侧栏起始页的修复。

修复:右侧栏起始页被整体向下挤压

安装插件后,右侧栏起始页(指南针图标 + 文件 / Git / 上下文 / 新建终端 … 入口卡)会整体下移,
窗口越高、空隙越大:用户截图里指南针到第一张卡的间距从安装前 93px 涨到 248px。

根因:宿主给起始页容器加了

.guide::after { content: ""; flex: 0 10%; }

这个伪元素是靠末尾的「占位」,用 10% 容器高度把入口列表向上偏置。插件给每一行写入
style.order 之后,伪元素的 order 仍是 0,按 flex order 规则它就排进了「order 0 组」,
落到指南针与第一张卡之间 —— 于是这块空白随面板高度一起变大。

修复:用双属性选择器把该伪元素固定到所有已排序行之后(不需要 !important):

[data-sidebar-right-guide][data-sidebar-right-guide]::after { order: 2147483647; }

验证

  • 真机(DSH 0.2.1-rc.5,真实宿主页面):指南针底部到第一张卡 92px → 30px,其余行间距恒定 70px,
    「更多工具」仍在末尾,已保存的自定义顺序完全不受影响。
  • 离线回归 test/harness.html:fixture 复刻宿主的 ::after 占位,新增「spacer 必须排在所有已排序行之后」
    断言,全量 56 项通过。

English

Fixes the right sidebar's start page being pushed down after installing the organizer. The host ships
.guide::after { content: ""; flex: 0 10% }, a trailing spacer that biases the entry list upward. Once the
organizer writes order on the rows, that spacer (still order: 0) sorted into the first-child group and
landed between the compass and the first card, so the blank band grew with the pane height (93px → 248px in
the report). A rule now pins the spacer past every ordered row.

Verified on the real host page (gap 92px → 30px, 70px row pitch, saved order untouched) and by the offline
harness (56 assertions, including the new spacer regression check).

Install

npm i github:TLEWA/dsh-sidebar-organizer#v0.5.6-preview.1

v0.5.5-preview.1 — 六区域布局整理器预览

Choose a tag to compare

@TLEWA TLEWA released this 02 Nov 11:55

0.5.x 首个预览版

汇总 0.5.0–0.5.5 的全部改动:布局整理从左侧边栏扩展到六处位置(左侧边栏、侧栏底部、对话标签、输入框工具条、右侧栏、设置导航),新增「布局整理」设置页与每个区域独立的拖动开关,并修复右侧栏入口回位、横向标签插入线、短按缩放等问题。

预览版:未发布到 npm,也不会合入 main。构建产物与真机验证过的 0.5.5 相比仅版本号不同。

安装

  1. 下载下方 dsh-sidebar-organizer-0.5.5-preview.1.tgz。

  2. 在 DSH 插件管理器中安装该文件(target 用绝对路径):

    plugin_manager  action: install_bundle  target: <tgz 的绝对路径>
    
  3. 刷新 Web 界面(Ctrl+R)。

回退:重新安装 npm 上的 0.4.3 即可。

English

Download the .tgz asset below and point the plugin manager's install_bundle
at its absolute path, then refresh the Web UI (Ctrl+R). This preview is not
published to npm and is not merged into main.

变更明细

见 CHANGELOG.md。