@sidequest-007/dsh-atlas 1.0.2 → 1.0.3

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 CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 的组织方式,版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [1.0.3] - 2026-09-27
6
+
7
+ ### 文档
8
+
9
+ - **tagline 明确写出「可点链接」**:此前只写"一次点击,直达会话",没把最直观的那件事说出来 —— **`@` 画出的每个引用都是可点的链接**
10
+ (用主题的链接色,暗色下即蓝 + 悬停虚下划线)。现在 README(中英)、`package.json` 与 `dsh.plugin.json` 的 `description`
11
+ (**npm 卡片上显示的就是这一条**)、配图 `aria-label`,以及 **GitHub 仓库的 About 摘要**四处一致:
12
+ *One @, every source; every reference is a clickable link, and a session link jumps to that session.*
13
+
14
+ ### 修复
15
+
16
+ - **`release.yml` 去掉无效输入**:`actions/setup-node@v4` 的 `package-manager-cache: false` 不是合法输入,
17
+ 每次发布都会打印 `##[warning]Unexpected input(s) 'package-manager-cache'`;改为合法写法 `cache: ''`(表示不缓存包管理器)。
18
+
5
19
  ## [1.0.2] - 2026-09-27
6
20
 
7
21
  ### 修复
package/README.md CHANGED
@@ -6,9 +6,9 @@ A **Side Quest** project (工作室:支线任务, **Side Quest Labs**) — npm
6
6
 
7
7
  <img src="assets/diagrams/atlas-overview.svg" alt="dsh-ATLAS: one @ trigger, five built-in categories plus the bundled git category, and a category any plugin can register" width="880">
8
8
 
9
- **@ Last, All Sources.** One `@`, every source; one click, the session it names.
9
+ **@ Last, All Sources.** One `@`, every source — and every reference it draws is a **clickable link** (the theme's link colour, so blue in dark mode). A **session** link jumps straight to that session.
10
10
 
11
- Unified `@` mentions for the DeepSeek Harness web GUI: type `@` in the composer to reference **workspace files and folders**, **discoverable skills**, **past chats**, **installed plugins**, and **workspace git changes** — and any other plugin can add its own category to the same menu. A **session** reference is a link: click it and the composer switches to that session.
11
+ Unified `@` mentions for the DeepSeek Harness web GUI: type `@` in the composer to reference **workspace files and folders**, **discoverable skills**, **past chats**, **installed plugins**, and **workspace git changes** — and any other plugin can add its own category to the same menu. Clicking a **session** mention switches the composer to that session.
12
12
 
13
13
  - **One `@`, every source**: five built-in categories plus the bundled `@git` provider — six resource families in this deployment — and every registered provider, in one list; typing letters searches all of them at once.
14
14
  - **A platform, not a picker**: third-party plugins register their own `@` category through the `ctx.atlas` seam. The menu rebuilds from the live registry on every open, so **this package never has to change for a provider** — see [Write your own `@` source](#write-your-own--source).
package/README.zh.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  <img src="assets/diagrams/atlas-overview.svg" alt="dsh-ATLAS:一个 @ 触发位、五个内置类别加内置的 git 类别,以及任何插件都能注册的自己的类别" width="880">
8
8
 
9
- **@ Last, All Sources.** 一个 `@`,所有来源;一次点击,直达它指名的那个会话。
9
+ **@ Last, All Sources.** 一个 `@`,所有来源 —— 它画出的**每个引用都是可点的链接**(用主题的链接色,暗色下即蓝)。**会话**链接点一下直接跳到那个会话。
10
10
 
11
- DeepSeek Harness Web 界面的**统一 `@` 提及**插件:在输入框输入 `@`,即可引用工作区**文件与文件夹**、可发现的 **Skill**、**过去的聊天记录**、**已安装插件**,以及**工作区的 git 改动** —— 而且任何其它插件都能把自己的类别加进同一个菜单。**会话**引用本身就是链接:点一下,输入框就切到那个会话。
11
+ DeepSeek Harness Web 界面的**统一 `@` 提及**插件:在输入框输入 `@`,即可引用工作区**文件与文件夹**、可发现的 **Skill**、**过去的聊天记录**、**已安装插件**,以及**工作区的 git 改动** —— 而且任何其它插件都能把自己的类别加进同一个菜单。点一下**会话**引用,输入框就切到那个会话。
12
12
 
13
13
  - **一个 `@`,所有来源**:五个内置类别 + 内置的 `@git` provider(本部署里共 **6 个资源族**)+ 所有已注册的数据源,同一个列表;输入字母即跨类别一起搜。
14
14
  - **是平台,不是取词器**:第三方插件通过 `ctx.atlas` seam 注册自己的 `@` 类别。菜单每次打开都从**实时注册表**重建,所以**本包永远不需要为某个 provider 改代码** —— 见 [自己接一个 `@` 数据源](#自己接一个--数据源)。
@@ -72,7 +72,7 @@ dsh plugin --profile web add @sidequest-007/dsh-atlas
72
72
  - **草稿里任何能打开的 `@路径` 都是链接**:判断依据是**插件自己**——token 能解码成引用、并且宿主确认该目标存在——而不是框架有没有把它装饰成引用。所以手打的 `@AGENTS.md` 和框架认出来的 token 一样:**整条**变蓝、点任意位置都打开、鼠标变手型。上色用 CSS Custom Highlight API 逐段绘制(Lexical 的文本 span 只允许一个文本子节点,包裹尾巴会破坏输入),颜色取框架给引用用的同一个变量。**目标已不存在**的 token 也不会被当成普通文本,而是按引用栏那套「已失效」语言画成**暗色 + 删除线**——它是引用,只是打不开。**判定时机**:只有**写完的 token** 才会被判失效(后面跟着空白,或后面还有下一行=按过回车);正在输入的 token 不下结论——`@N` 这种中间态必然"不存在",边打边画删除线等于替用户还没写完的词下判决。**能打开**的 token 则在名字写成的那一刻就变蓝(与框架自己的引用装饰一样即时)。引用栏还没回答、provider 没声明 `open`、或名字放不下的 token 什么都不说、保持普通文本。浏览器不支持 highlight API 时什么都不绘制,此时**只有框架自己上过色的那部分**可点(没画成链接就不表现得像链接)。
73
73
  - **草稿里由其它数据源插入的 chip 也能点**:右侧栏的文件树就是往草稿里插一条原子 chip,这个客户端把它画成框架自己的 chip 蓝、并且不接任何点击。点它即打开它命名的文件,随后 chip 会带上插件的链接语言。那个数据源给 chip 的标签是**文件名**(完整相对路径只存在于草稿文本里),所以裸文件名按两步还原:①在插件索引里找同名 basename,唯一命中即用;②索引里就有歧义(例如 `index.ts` 在工作区里有两处)时回退到**草稿**——草稿里只有一个同名 token 就用它,仍有两个则**保持不可点**。索引完全不认识的名字才原样交给点击时的存在性检查(结果是标「已失效」,而不是打开一个错的目标)。
74
74
  - **已发送消息里的引用可点**:消息气泡里的引用 chip 点击即打开(文件进右侧栏,无右栏时交宿主打开器;Skill 交给 Skill 源;provider item 交给它自己声明的 `open`)。只有真的能打开的 chip 会被画成链接(用框架自己的 `--dsw-alias-link` 蓝 + 悬停下划线),框架自己接好点击的版本会渲染 `<button>`,本插件自动让位。插件同时实现了框架的 `openReference` 钩子:客户端在草稿里激活一个引用 token 时,由拥有它的 source 打开。安装版客户端还没有接上这一步,因此这个点击同样由插件补上,走的是 chip 用的那同一个动作。
75
- - **会话引用本身就是链接**:它的身份按**值**判定,因为 id 不在路径里。`@[标签](dsh-session:…)` 这种带载荷的形态自己就能指明会话(载荷按 base64url 解码并要求**规范化回环**通过);**标签里有空格也算一个 token**;手打的裸 `@<会话id或标题>` 只有**唯一命中**会话列表时才提升为会话链接——歧义或查不到就保持普通文本,所以 `@AGENTS.md` 仍然是它本来那个文件引用。点击即切换当前会话,走的是**侧栏那一行的同一个动作**。**边界**:**已发送**的消息只有在 chip 上还留着载荷时才可点;一旦 Host 把它折成裸标签,id 就不在了——这条我已按上游通道提了报告。
75
+ - **会话引用本身就是链接**:它画出的每个引用都是**可点的链接**(用主题的链接色,暗色下即蓝 + 悬停虚下划线),身份按**值**判定,因为 id 不在路径里。`@[标签](dsh-session:…)` 这种带载荷的形态自己就能指明会话(载荷按 base64url 解码并要求**规范化回环**通过);**标签里有空格也算一个 token**;手打的裸 `@<会话id或标题>` 只有**唯一命中**会话列表时才提升为会话链接——歧义或查不到就保持普通文本,所以 `@AGENTS.md` 仍然是它本来那个文件引用。点击即切换当前会话,走的是**侧栏那一行的同一个动作**。**边界**:**已发送**的消息只有在 chip 上还留着载荷时才可点;一旦 Host 把它折成裸标签,id 就不在了——这条我已按上游通道提了报告。
76
76
  - **图标**:本插件发出的每一行都带**自己的**图标——与引用栏同一套现代线稿,含按文件类型与语言的标记(TypeScript、Rust、PDF、图片、压缩包…),`@git` 用分支图标。框架的菜单行只会画它自己的三种字形,所以插件**预定那个图标槽**(这决定了所有名字缩进一致),再由自己在列表上方的一层固定层里、用单色线条画出图标:不往框架拥有的行里插任何东西,框架自己的字形也只在被这一层真正覆盖的槽里隐藏。
77
77
 
78
78
  ![@ 菜单](assets/screenshots/menu-mixed.png)
@@ -1,4 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="880" height="300" viewBox="0 0 880 300" role="img" aria-label="dsh-ATLAS: one @ trigger, five built-in categories plus the bundled git category with their glyphs, and any plugin's own category; one click names the session it points at">
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="880" height="300" viewBox="0 0 880 300" role="img" aria-label="dsh-ATLAS: one @ trigger, five built-in categories plus the bundled git category with their glyphs, and any plugin's own category; every reference is a clickable link, and a session link jumps to that session">
2
2
  <rect x="0" y="0" width="880" height="300" rx="18" fill="#0f1420"/>
3
3
  <rect x="0.5" y="0.5" width="879" height="299" rx="17.5" fill="none" stroke="#26304a"/>
4
4
 
package/dsh.plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sidequest-007/dsh-atlas",
3
- "description": "@ Last, All Sources. One @, every source; one click, the session it names.",
4
- "version": "1.0.2",
3
+ "description": "@ Last, All Sources. One @, every source; every reference is a clickable link, and a session link jumps to that session.",
4
+ "version": "1.0.3",
5
5
  "entry": {
6
6
  "name": "@sidequest-007/dsh-atlas",
7
7
  "inject": []
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sidequest-007/dsh-atlas",
3
- "description": "@ Last, All Sources. One @, every source; one click, the session it names.",
4
- "version": "1.0.2",
3
+ "description": "@ Last, All Sources. One @, every source; every reference is a clickable link, and a session link jumps to that session.",
4
+ "version": "1.0.3",
5
5
  "license": "MIT",
6
6
  "author": "Side Quest Labs",
7
7
  "publishConfig": {