Conversation
SDK 2.0.4 带的是标签页图标那一面(PluginIcon:ProtocolDescriptor.Icon / WorkspaceDescriptor.Icon / PanelOptions.Icon 三处共用一个类型),下一个提交要用它。 顺手把文件末尾缺的那个换行补回来(.editorconfig 的 insert_final_newline)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GXH7SxQFdYtgMWgfjY5TkS
宿主不维护「插件 id → 图标」的对照表(那张表第三方插件永远进不去),图标由插件经 描述符自报;不报就是所有插件共用的那个通用插头 —— 同时开着 Redis、S3、串口三种会话时, 三条标签顶着同一个插头,图标那一格等于白占。 - Redis:品牌标(RedisIcon.cs,实心、视框 1030)。lucide 里没有 Redis,拿「数据库」 之类的近似字形凑,换来的是一排标签里认不出哪个是它。路径是原始 SVG 三段 path 的顺序 拼接,前两段末尾导出工具留下的空指令 m0 0 去掉了。三段绕向相反,顶面那几处镂空在 evenodd 与 nonzero 下画出来一模一样,因此不必声明 F0 / F1。 - 串口:lucide usb-c-port。 - Telnet:lucide ethernet-port。刻意不用终端字形 —— 宿主的 SSH 标签画的就是 square-terminal,而标签上只有 12–16px,两个终端框并排等于没分。以太网口与串口的 USB-C 口成对:一个网口一个串口,一眼分得开。 - S3:lucide cloud,会话标签页与桶管理器 / 对象检视器两扇工具窗共用(宿主现在也给 窗口标题栏画这个图标)。不用存储那一类字形:宿主给 SFTP / FTP 画的正是 hard-drive, 而三者并排躺在同一条标签条上。 测试:四个插件各钉住自己那份图标(路径、描边/实心、视框);RedisIconTests 另在 headless 会话里把那 2 KB 路径真解析一遍并核边界 —— 宿主那边解析失败是**静默**退回通用插头, 不报错也不抛,没有这一层守卫,路径里打错一个字符谁也不会发现。Telnet 与 S3 之前没有激活 测试,这次一并补上描述符那几条。 注:暂不在 plugin.json 声明 minSdkVersion "2.0.4" —— 发布出来的 SDK 2.0.4 里 VelaPluginApi.SdkVersion 仍是 "2.0.2"(2.0.3 / 2.0.4 两次发版没抬那个常量),而宿主的 兼容闸门比的正是它,声明了会把四个插件全部标成 Incompatible。等 SDK 那边把常量抬上去再补。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GXH7SxQFdYtgMWgfjY5TkS
joesdu
added a commit
that referenced
this pull request
Sep 11, 2026
main 上的 #31 / #32 都是 squash 合并,新造的提交与 dev 这边的原提交没有共同历史 —— 于是 Docker 面板那几个文件在合并基线看来是**两边各自新增**的(add/add),内容不同的 两个(PluginMain.cs / README.md)就成了冲突。两边逐字节比过:main 的那两份与 dev 上 「我改之前」的那两份完全一致,因此冲突取 dev 这一侧 = 保留本分支新加的图标改动。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GXH7SxQFdYtgMWgfjY5TkS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
把 SDK 2.0.4 的标签页图标契约(
PluginIcon)用起来:Redis / 串口 / Telnet / S3 各自把图标交给宿主,不再共用那个通用插头。宿主一行都不用动(见宿主plan.md§69、feature-plan.md插件生态那一节)。各插件用了什么
usb-c-portethernet-portsquare-terminal,而标签上只有 12–16px,两个终端框并排等于没分。与串口的 USB-C 口成对cloudhard-drive,而三者并排躺在同一条标签条上。S3 的两扇工具窗(桶管理器 / 对象检视器)也用同一个实例16px 深色底渲染核过:Serial / Telnet / S3 / Redis / SSH / SFTP 六种标签两两分得开。
几处取舍
m0 0去掉了(画不出东西,却让解析器多收一个空图形)。三段绕向相反,顶面那几处镂空在 evenodd 与 nonzero 下画出来一模一样(两种规则各渲染一遍比过),所以不必在路径上声明F0/F1。RedisIcon.cs,不塞进RedisPlugin(同 AI 插件的AiIcon):横在注册与探测逻辑中间,读代码的人要翻很久。S3 的S3Icon是因为三处共用同一个实例。minSdkVersion: "2.0.4":发布出来的 SDK 2.0.4 里VelaPluginApi.SdkVersion仍是"2.0.2"(2.0.3 / 2.0.4 两次发版都没抬那个常量),而宿主的兼容闸门比的正是它 —— 声明了会把四个插件全部标成 Incompatible。等 SDK 那边把常量抬上去再补,届时才拦得住"带图标的插件装到 2.0.2 宿主上"那条运行期MissingMethod的路。测试
四个插件各钉住自己那份图标(路径、描边/实心、视框);
RedisIconTests另在 headless 会话里把那 2 KB 路径真解析一遍并核边界 —— 宿主那边解析失败是静默退回通用插头,不报错也不抛,没有这一层守卫,路径里打错一个字符谁也不会发现。Telnet 与 S3 此前没有激活测试,这次一并补上描述符那几条。FillContains结果不可信(整行报 true,视框外的点也报),所以"镂空还是不是洞"验不了,这一条写在测试注释里,免得下一个人再试一遍。验收
dotnet build VelaShell.Plugins.slnx -c Debug -warnaserror—— 0 警告 0 错误dotnet test VelaShell.Plugins.slnx -c Debug—— Telnet 26 / 串口 77 / S3 104 / Redis 155 通过,Redis 另有 84 条因本机没有127.0.0.1:6379跳过(既有口径)dotnet build plugins/VelaShell.Plugin.Redis -t:PackVpx—— 出包正常🤖 Generated with Claude Code
https://claude.ai/code/session_01GXH7SxQFdYtgMWgfjY5TkS