cruldra
|
3c7513b7cd
|
✨ feat(vscode): 只有从「未提交的更改」点开的预览才对比上一次提交
|
2026-10-12 15:52:35 +11:00 |
|
cruldra
|
aecc4d1ab5
|
✨ feat(vscode): 重写注释排成一队,整个扩展一次只跑一段
OpenPencil 同一时间只能开一个画板,两段同时画会互相掐断。所有预览、所有文件的重写(第一轮和接着说)排成一队,前一段写成、出错、被叫停后按先后自动开始下一段;问 AI 照旧最多同时 3 个。
排着的那一轮记在扩展端(rewriteCurrent 的 queued),块下面写「排队中」、能取消排队,切标签页、页面重新加载后照样显示。
|
2026-10-12 15:11:22 +11:00 |
|
cruldra
|
b7c29c60e1
|
✨ feat(vscode): 重写注释把原型存进 docs/prototype/<功能>/openpencil/
跟写注释技能 ECC v2.2.53 的原型约定:去掉临时草稿目录 spx-comment-<id> 和 */prototypes 的建目录规则,会话 id 交给 Claude Code 起。
放开 Edit/Write 到 docs/prototype/*/openpencil/ 下、mkdir -p 到 docs/prototype/*/openpencil/exports;Bash 规则的 * 能跨空格,另外拒掉建目录时多跟一个路径的写法。
|
2026-10-12 15:11:10 +11:00 |
|
cruldra
|
c9f60f5b30
|
✨ feat(vscode): 重写注释留会话记录、能接着说,允许画原型图
每块的重写记录存进 .spx/comment-rewrites.json(和问答分开,改名、删文件跟着走),块下面同问答区:灰字历史、当前这一轮、输入框;输入框里的话接着这块最近一次重写的会话说,交回新正文照样写回,写回失败也记下原因。
重写跑在 claude --restricted 下:只放开读搜、OpenPencil 的 op、建 prototypes 目录、改草稿目录,写注释的插件单独加载;超时 15 分钟。
进行中的、出错被叫停留着的那一轮记在扩展端,切走标签页再切回来照样接上(问 AI 同一套)。
|
2026-10-12 13:45:37 +11:00 |
|
cruldra
|
7f39345d03
|
🐛 fix(vscode): 写注释时改已有说明,不再在声明上面另插一行
|
2026-10-08 09:55:36 +08:00 |
|
cruldra
|
5cf96af740
|
♻️ refactor(vscode): 代码阅读的块数据去掉没人用的「注释」一行下标 commentRow
|
2026-10-08 08:04:51 +08:00 |
|
cruldra
|
ebea984852
|
💄 style(vscode): 代码阅读的「按注释规范写注释」按钮统一排在卡片右上角那排最前面,不再画在「注释」一行上
|
2026-10-08 08:03:00 +08:00 |
|
cruldra
|
582ac4c987
|
✨ feat(vscode): 代码阅读的注释挂到它讲的代码块上成「注释」一行,重写注释改用技能一句话加结构化结果
- 普通注释不再单独成卡片:同一层挂到后面最近的块(隔空行也算),后面没有挂到前面那块,整层没代码挂到父块;只有文件开头隔着空行的注释、模块 docstring、//!、@file 单独成「文件开头的说明」
- 各语言(Python、TypeScript、Rust、Shell、Dockerfile)建好树后统一调 attachComments;块的编辑范围连着挂上的注释,差异、跳转、钉住卡片都按它
- 宿主统一给每张卡片(语言卡片、翻译插件的属性表、库规则卡片、一行译文的语句卡片)插「注释」一行,排在名称、说明后面
- TypeScript 的 JSDoc 也能当常量、变量的说明;sqlx、React 不再单独处理前面的注释
- 「重写注释」每块都有:提示只发 /ecc:writing-code-comments 路径:起-止,模型只读、按 --json-schema 交 body,没交结构化正文就失败不写;扩展换掉块前面的注释或在块上面新写一段
|
2026-10-08 07:51:21 +08:00 |
|
cruldra
|
fcee4143d4
|
✨ feat(vscode): 会话交接改走阿里云 OSS 收件箱、换 xz 压缩,另加从 env 文件配置移交存储的 URI
- 会话包传到 OSS 上收件人的收件箱 spx-handoff/<owner>/<repo>/session/<收件人>/<sid>!<发送人>!<会话名>.tar.xz,对象私有;owner/repo/收件人转小写
- 待接收列表就是列自己的收件箱;同一会话再交给同一人先删旧包;接收后删包,包已被别处收走时提示并刷新
- 打包换成 xz 1 级,和工单移交共用 packHandoff / unpackHandoff,删掉 gzip 版
- 删掉邮箱工单整套(mailboxIssue、MAILBOX_*、isMailboxIssue 及看板 / webhook 里的过滤、附件名编解码)和不再用的 Gitea 附件、标签、建工单接口
- session-handoff/accept 与待接收项改用 OSS 对象 key 标识
- 没配移交存储时发送、接收、刷新都提示去配,刷新回空列表
- 进度提示照工单移交:同一条提示依次显示打包、上传、下载多少 MB、解包、装会话
- 新增 URI configure-handoff-store?envFile=<绝对路径>:读 OSS_ENDPOINT / OSS_BUCKET_NAME / OSS_ACCESS_KEY / OSS_SECRET_KEY 保存,和命令共用 saveHandoffStore;URI 入口按 path 统一分发,未知 path 报错
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
499cfad7d7
|
✨ feat(vscode): 工单移交的会话包改走阿里云 OSS、换 xz 压缩,两边进度一步步显示
- 会话包传到 OSS 的 spx-handoff/<owner>/<repo>/issue-<N>-<时间>.tar.xz,上传时对象设成私有;不再挂 Gitea 工单附件
- 新命令「配置移交存储」:endpoint、bucket 存扩展设置,AccessKey 存密钥存储;没配时移交 / 接管直接提示,什么都不改
- 共享 state 字段 handoffAttachmentId 改名 handoffBundleKey(含 spx CLI 与 schema)
- 打包换成 xz 1 级(tar -cJf),去掉 100MB 上限检查和先试压一遍的重复压缩
- 发送方提示打包 / 上传了多少 MB;接管方同一条提示依次显示下载、解包、建 worktree、装会话,完成前不消失
- 会话交接(单会话)仍走 Gitea 附件,Gitea 附件白名单没有 .xz,单独保留 gzip 打包
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
a1fbefd3aa
|
🐛 fix(vscode): 代码阅读的钉住卡片改成每张卡片都算一层,折叠着、没有子块的高卡片滚到一半也钉在顶上
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
eb3d1b90cd
|
✨ feat(vscode): 代码阅读滚进卡片的子块时把外层卡片钉在顶上,同 VS Code 的 Sticky Scroll
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
5ce2e904f4
|
✨ feat(vscode): 代码阅读侧栏右键菜单加「在 Finder 中显示」,按系统换成文件资源管理器 / 打开所在的文件夹
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
a48b016d73
|
✨ feat(vscode): 代码阅读鼠标停在名字和注释链接上弹出定义所在那块的卡片,别的文件的也行
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
bc7380c716
|
🐛 fix(vscode): 代码阅读注释里的链接指到别的文件时用预览打开,和 ⌘ 点击跳到定义走同一条路
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
300d8a07b9
|
✨ feat(vscode): 代码阅读注释里不带路径的引用 [Name] 能点,本文件定义的优先、再找导入的
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
0958506681
|
✨ feat(vscode): 代码阅读把说明里的 @param / @return / @throws 拆到参数表、输出、异常表
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
c841ae678a
|
✨ feat(vscode): 代码阅读侧栏跟着当前文件走,目录链接在侧栏树上定位
|
2026-10-08 07:17:26 +08:00 |
|
cruldra
|
04a11eb0b2
|
✨ feat(vscode): Rust 的 #![…] 内部属性做成「编译属性」卡片
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
2f610e9cb8
|
🐛 fix(vscode): Rust 连着写的行注释合成一块注释,和别的语言走同一套拆块
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
66a94578c4
|
📝 docs(vscode): 代码阅读规格里图标名单、框样式、文件说明、测试清单跟上 React 一块一张卡片的实现
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
5e994cd90e
|
♻️ refactor(vscode): 卡片里的子块只留挂在子行上、点了才展开的一种,测试假数据换掉旧 React 卡片的名字
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
f6bc217e91
|
✨ feat(vscode): 代码阅读的入口文件和入口块换成绿色播放图标,不再写「入口」二字
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
6ce4ef7ee2
|
✨ feat(vscode): React 文件照源码一块一张卡片,组件卡片只留名称、说明、构造参数
- 组件体的语句不再并进组件卡片,照源码顺序是它的子块;状态、引用、数据源、派生值、副作用、事件处理函数、渲染输出各成一张卡片,回调和函数里的语句是这些卡片下面的子卡片
- 普通变量、提前返回的 if、注释照语言默认的卡片;表格格子里只写名字和位置,去掉「改它的」「来自」格子里单独打开源码的那条路
- 用词改成书面叫法(更新位置、使用位置、计算表达式、依赖项、触发时机、清理函数、绑定事件、样式取决于……),新增 toggle-right、anchor、download、sigma、layout-template 五个种类图标
- 夹具加上 luffy 的 QueuedBubble.tsx、PlanChecklist.tsx,规格的 React 一节照新样子改写
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
718bbb7f6c
|
✨ feat(vscode): 代码阅读标出项目写明的入口文件和入口函数
|
2026-10-08 07:17:25 +08:00 |
|
cruldra
|
04c4b9f710
|
✨ feat(vscode): Rust 的模块、常量和外部函数拆成卡片
|
2026-10-04 20:16:51 +08:00 |
|
cruldra
|
e8ae19d084
|
✨ feat(vscode): 构造参数区,改它的和来自能单独打开源码
|
2026-10-04 15:34:44 +08:00 |
|
cruldra
|
13e71507d6
|
🐛 fix(vscode): Rust 库规则只经契约和同目录共用代码
|
2026-10-04 14:42:46 +08:00 |
|
cruldra
|
340c81084a
|
📝 docs(vscode): 代码阅读规格补上 Rust
|
2026-10-04 14:37:09 +08:00 |
|
cruldra
|
9faf9cde9e
|
✨ feat(vscode): 注释里的仓库图片按比例显示
|
2026-10-03 03:22:20 +08:00 |
|
cruldra
|
c4113748e1
|
✨ feat(vscode): 注释里的仓库路径链接能点开并跳到符号
|
2026-10-03 03:22:20 +08:00 |
|
cruldra
|
7a06e37936
|
📝 docs(code-reader): 规格补上 Pydantic 数据模型一节(认模型、字段表、选项、跨文件父类、图标)
|
2026-10-03 03:22:04 +08:00 |
|
cruldra
|
394cd2fc1c
|
✨ feat(vscode): 代码阅读卡片横排多个概念图标
|
2026-10-03 03:11:47 +08:00 |
|
cruldra
|
70a53e5a68
|
⚡ perf(vscode): React 规则认组件体里的块时不合组件函数写法的直接放过,同一棵语法树的组件体只读一次;规格补上 React 三种卡片的图标
|
2026-10-03 03:11:46 +08:00 |
|
cruldra
|
6568182709
|
📝 docs(code-reader): 规格补上 React 组件一节(认组件、名称标签、属性表、状态 / 引用 / 读取的数据 / 派生值 / 副作用 / 事件处理、渲染大纲、和原型不一样的地方),契约补上略去块、把子块放进卡片某一行、不看导入的规则、新的框样式和图标
|
2026-10-03 03:11:46 +08:00 |
|
cruldra
|
de05d13dab
|
💄 style(vscode): 代码阅读「问过 N 次」的历史默认展开
|
2026-09-30 09:23:29 +08:00 |
|
cruldra
|
7ac4e0fb21
|
📝 docs(code-reader): 规格补上代码差异一节(对比基准、块对齐、卡片内标记、只看改动、上一处 / 下一处、总览条、消息和代码位置)
|
2026-09-30 08:56:45 +08:00 |
|
cruldra
|
70ea22543f
|
🐛 fix(vscode): 代码阅读编辑父卡片时显示整块代码(含子块)
- 块的编辑范围改成它在源码里的完整范围:头部连同各子孙块、收尾括号,保存时按整段写回;子卡片只有它自己连同子孙
- 范围由宿主统一算(blockSpans),各语言插件同一条路:else / elif / catch 这类展平的兄弟块按各块开头切开整条语句,最后一块到语句结尾(Shell 的 fi 归它)
- 库规则卡片的编辑范围并进同一套算法,去掉 claimedShape
- 块编辑时它的子孙都不画(代码都在编辑框里),点「编辑」时重叠的祖先、子孙、共用一行的兄弟块退出编辑
- 问 AI 的外层块开头改用新加的 headerEndLine,位置记号照旧按头部算,已有问答不受影响
- 着色改成整份源码算一次、各块按行取,编辑范围变大后排视图数据不变慢
|
2026-09-30 07:24:10 +08:00 |
|
cruldra
|
489d0ef41f
|
✨ feat(vscode): 选工单也列「进行中」列里已经有 PR 的工单(开发完了没走自动审查的),弹框按「审查」「进行中」分组,进审查、刷新、重开窗口按同一条列规则判断
|
2026-09-29 04:23:57 +08:00 |
|
cruldra
|
8776502f27
|
📝 docs(vscode): 代码阅读规格加 Dockerfile 一节(嵌着的代码、并块、选项表),契约、命令规则、解析运行时、代码块树规则、颜色、代码位置、测试跟着补上
|
2026-09-28 11:54:01 +08:00 |
|
cruldra
|
d15c6ceedd
|
🐛 fix(vscode): 申请移交改到工单详情标题栏
|
2026-09-28 08:09:15 +08:00 |
|
cruldra
|
6aa9831a43
|
📝 docs(vscode): 代码阅读规格加 Shell 脚本和命令规则两节,契约、代码块树规则、颜色、代码位置、测试跟着补上
|
2026-09-28 00:44:57 +08:00 |
|
cruldra
|
6342f39de0
|
✨ feat(vscode): 审查列可以申请同事移交工单
|
2026-09-28 00:17:09 +08:00 |
|
cruldra
|
285d711740
|
✨ feat(vscode): 代码阅读的调用嵌套:实参的值又是跨多行的调用时在值那一格里写它的一行、套它的实参表,一层层往下套;埋在式子里后面还跟着东西的调用括起来
|
2026-09-27 22:31:35 +08:00 |
|
cruldra
|
ecc415d763
|
✨ feat(vscode): 代码阅读的调用与构造:跨多行写的调用排成「新建 / 调用 名字 · N 个参数」一行,实参摊成参数 / 值表;Python 查被调用名字的定义分新建和调用,查到后刷新
|
2026-09-27 22:08:16 +08:00 |
|
cruldra
|
c8620e6e1b
|
♻️ refactor(vscode): 看板的悬停提示也改走 data-tooltip,插件网页只剩一条提示的路;lint 禁止原生 title
- 看板剩下的原生 title(顶栏按钮、工单卡片、工单详情、会话、Profile 表、改动文件树和 diff、属性表)全部改成 data-tooltip,
禁用的按钮照样弹;只有图标、原来只靠 title 当名字的(审查勾、生成说明、属性说明的 i 图标、没头像的归属人)补上 aria-label
- 提示框按原文换行:摘修复弹框里「迁移」列的几个文件一行一个
- 代码阅读 Markdown 链接的标题写成 data-tooltip
- eslint 规则:网页 TSX 的 DOM 元素上写 title 报错,iframe 和组件自己的 title 属性不算
|
2026-09-27 21:39:15 +08:00 |
|
cruldra
|
a8663136a1
|
📝 docs(vscode): 代码阅读规格写明悬停提示组件的位置
|
2026-09-27 21:28:07 +08:00 |
|
cruldra
|
71641bdc41
|
✨ feat(vscode): 代码阅读的 FastAPI 路由器单独一张「路由器」卡片(前缀、标签、依赖、默认响应,接口表列挂在它上面的接口,函数名 ⌘ + 点击跳到接口卡片);接口卡片写所属路由器
|
2026-09-27 21:26:36 +08:00 |
|
cruldra
|
b4e4879570
|
✨ feat(vscode): 代码阅读的 FastAPI 接口多一个筛选属性「请求方法」(GET / POST …);库规则自己报的筛选属性由规则起名(LibraryRule.attributeNames)
|
2026-09-27 21:21:48 +08:00 |
|
cruldra
|
ec34ace7cf
|
🐛 fix(vscode): 悬停提示不用原生 title,webview 统一用自绘提示框,代码阅读的种类图标停上去能看到种类名
VS Code 1.139 带的 Electron 43 在 macOS 上只在鼠标压着带 title 的元素自身边缘时才弹原生提示,
停在它里面的图标、文字上不弹(electron/electron#49843,Electron 38 起)。种类图标 20px 的框
几乎被 16px 的图形占满,所以基本看不到种类名;块右上角按钮同样受影响。页面上核对过:图标中心点
命中的是图标里的线条,没有盖在上面的东西。
- components/ui/tooltip.tsx 改成整页只挂一次的 TooltipHost:元素只写 data-tooltip,事件统一交给它;
样子照 VS Code 悬停框(editorHoverWidget 那组变量、widget-shadow 阴影),停 500ms 才弹、弹着时换元素
立刻换,移开 / 按下 / 按键 / 滚动收起;键盘聚焦立刻弹,提示不是元素自己的名字时挂 aria-describedby
- 代码阅读里所有 title(种类图标、块按钮、筛选栏、问答区、中文名的「原名」)改成 data-tooltip;
SelectMenu 的 title 属性改名 tooltip;看板工单详情原来包一层的 Tooltip 也改成 data-tooltip
- 何时弹 / 收的规则抽成纯函数加测试;更新代码阅读 spec
|
2026-09-27 21:21:13 +08:00 |
|