
Security News
GitHub to Block pull_request_target Workflows by Default Starting December 2
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.
dsh-worksop-plus
Advanced tools
DSH web plugin: enhanced workspace panel — pin, groups, hide, filter and bulk actions for the session sidebar
DSH Web GUI 左侧「工作区」面板的增强版本:置顶、自定义分组、隐藏、筛选、批量整理。
系统面板本身只能按「工作区」或「扁平列表」两种方式浏览,工作区一多就没法组织。这个插件接管整块区域,把组织方式变成你自己定义的:置顶区永远在最上面,命名分组可以折叠、排序、着色,暂时不关心的项目可以隐藏而不是删除。
全部 / ★置顶 / 分组 ▾ / + —— 分组数量再多,这一行也不增长;所有分组连同「未分组」收进下拉菜单,每项带计数与勾选,激活后该 chip 显示所属分组名并高亮。StateDot;待处理状态读槽位标准 prop——DSH ≥ 0.1.6 的 useSessionStatus(Map<SessionId, SessionStatus>,请求在 pendingInteraction 里),更早版本回退到 useSessionPendingInteraction(Map<SessionId, interaction>),两种快照都直接支持。insertSessionBefore,带插入指示线);跨工作区拖动会被拒绝而不是报错(宿主只支持在既有账目内移动)。schedule 投影时行内显示时钟图标。+ 打开面板自带的目录浏览(面包屑 + 子目录列表 + 新建文件夹 + 隐藏项淡显),在远端浏览器/无 GUI 宿主上也能用;对话框里另有「系统选择器」回到宿主原生选择器。sessions.search(250ms 防抖 + AbortController 取消),本地标题/路径没命中但正文命中的会话进「内容匹配」分区,带所属工作区名与命中片段,结果过多时给出收窄提示;搜索期间被过滤空的分区自动收起。parentId 汇总到父会话,父行显示 ↳n 角标(悬停说明「n 个子代理运行中」);子代理不再作为顶层行出现。Menu(portal + getAnchorRect,右键喂合成 rect)渲染,键盘导航/定位/次级菜单交给产品组件;seed 模块缺失时回退到内置 popup。insertBefore 把置顶项写进宿主工作区顺序,TUI 与其他前端也能看到。面板的视觉语言吸纳自本仓库的 Material You 皮肤(dsh-skin-material-you):皮肤的 sidebar.css 本来就在打磨这块面板,但它选择器打的是系统面板的 DOM,插件接管后就不再命中,所以这里把同一套配方落进插件自己的类名:
(n)(无底色的 tertiary 小字,名字过长时随省略号一起收在名字后面),时间是固定 46px 右对齐的 tabular 列,右栏不会随数字跳动;var(--m3-*, fallback) 读取,颜色全用 --dsw-alias-*,因此装了皮肤更一致、不装也成立,明暗主题自适应。@deepseek-ai/dsh-client-ui-primitives,浏览器 seed 模块,运行时 require):文件夹开/合、箭头、搜索、更多、勾选、删除、排序全部与系统面板同源;只有「置顶星标」因官方图标集没有对应形状而内置,并带同风格的兜底。sidebar.workspaces 槽位,priority: -1 覆盖系统面板(系统注册仍在 ledger 上,本插件被停用或关闭开关后系统面板立即回来)。同一半还注册 sidebar.footer.action 的常驻开关,保证面板关掉后仍能打开。worksop-plus settings 命名空间。数据落在 ~/.dsh/settings.yaml 的 worksop-plus: 段,经 ctx.settingsScope 在浏览器与服务端双向同步(官方 settings 通道,无需自建 HTTP 路由),浏览器再叠一层 localStorage 缓存保证首屏不闪烁。@deepseek-ai/dsh-workspace 的记录 schema 会剥离未知字段,且其 storage domain 只能开一次,所以置顶/分组这类视图偏好属于 settings,而不是 registry。workspaceId(uuid),不存路径或标题:工作区改名、改路径都自动跟随;已被删除的工作区会在下次读取时惰性清理。dsh plugin --profile web add dsh-worksop-plus # 发布版
# 开发期可直接 link 本地目录
dsh plugin --profile web add link:/path/to/melon/packages/worksop-plus
装好后刷新页面即可;lib/ 由 pnpm --filter dsh-worksop-plus build 产出。
pnpm --filter dsh-worksop-plus build # esbuild 打包浏览器半 + 拷贝 host 半
pnpm --filter dsh-worksop-plus test # bun test:视图派生纯函数单测
pnpm --filter dsh-worksop-plus smoke # 真实驱动 lib/ 产物
node packages/worksop-plus/scripts/preview.mjs # 离线视觉预览(打开 lib/preview.html)
scripts/preview.mjs 把构建产物里的真实组件静态渲染成一张对照页(四列:基线 / 拖拽高亮 / 多选整理 / 分组编辑),不需要起 dsh、不需要登录。它按 hook 序号注入组件状态(第 8 个 useState 是批量模式、第 5 个是对话框……),所以条件渲染的分支也能静态看到;改样式或改交互时先看它再交付。
src/derive.js 是全部视图规则(置顶/分组/隐藏/筛选/排序/时间)的纯函数实现,单测覆盖它。src/client.js 只负责 React 渲染、槽位注册与 settings 读写;src/host.js 只有 schema 与命名空间注册。FAQs
DSH web plugin: enhanced workspace panel — pin, groups, hide, filter and bulk actions for the session sidebar
The npm package dsh-worksop-plus receives a total of 0 weekly downloads. As such, dsh-worksop-plus popularity was classified as not popular.
We found that dsh-worksop-plus demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.

Security News
/Application Security
A practical guide to securing GitHub Actions against supply chain attacks, covering malicious pull requests, credential theft, dependency risks, and release pipelines.

Security News
Composer 2.11 adds dependency cooldowns, joining package managers that delay new releases to reduce supply chain risks while allowing urgent security updates.