Commit Graph
502 Commits
Author SHA1 Message Date
cruldra 6897954644 ✨ feat(vscode): 条件表达式按「如果…则…否则…」翻译 2026-09-25 03:19:42 +08:00
cruldra 3a184eed9b 🔧 chore(vscode): 版本号升到 0.2.155 2026-09-25 01:58:39 +08:00
cruldra d134837c17 ✨ feat(vscode): 代码阅读关键字按语境翻译 2026-09-25 01:58:07 +08:00
cruldra 72d33032f0 ✨ feat(vscode): 代码阅读块悬停高亮 2026-09-25 01:54:12 +08:00
cruldra f6eb07a91d 🔧 chore(vscode): 版本号升到 0.2.154 2026-09-25 01:51:25 +08:00
cruldra 5ce016ba86 🐛 fix(vscode): Python 的 from 译成「从」 2026-09-25 01:51:03 +08:00
cruldra 46735827d2 🔧 chore(vscode): 版本号升到 0.2.153 2026-09-24 21:36:18 +08:00
cruldra 2b823a32ca ✨ feat(vscode): 代码阅读入口、文件树与预览编辑器 2026-09-24 21:36:00 +08:00
cruldra 4d34b8c715 ✨ feat(vscode): 代码阅读的解析与模板直译核心 2026-09-24 21:16:21 +08:00
cruldra af56985d9a ✨ feat(vscode): 代码阅读预览界面
Vite 加 code-reader.html 第二入口;代码块树(层级竖线、折叠、种类标签配色)、译文 / 源码按词性着色、块内直接编辑(防抖回写整行、Esc 回预览)、翻译下拉、解析失败提示;看板与代码阅读共用带类型的 acquireVsCodeApi 包装和 ErrorBoundary。
2026-09-24 21:01:34 +08:00
cruldra cab5ac0ebc 🔧 chore(vscode): 版本号升到 0.2.152 2026-09-24 19:30:12 +08:00
cruldra d604b6f426 ✨ feat(vscode): 五种会话 id 行都能用橡皮擦清除本机记录,别的机器上的旧会话不再挡着新起 2026-09-24 19:29:39 +08:00
cruldra 4d905ff16e 🔧 chore(vscode): 版本号升到 0.2.151 2026-09-24 19:23:10 +08:00
cruldra bf4661e364 🐛 fix(vscode): 别的机器上开的会话在本机没有会话文件时,会话 id 行置灰不可双击,不再 resume 报错 2026-09-24 19:22:29 +08:00
cruldra 2b1e660cc8 🔧 chore(vscode): 版本号升到 0.2.150 2026-09-24 16:09:35 +08:00
cruldra 961a4e9756 🐛 fix(vscode): 审查意见等多行消息发进会话后自动提交,不再只停在输入框 2026-09-24 16:09:11 +08:00
cruldra 834c6cda1a 🔧 chore(vscode): 版本号升到 0.2.149 2026-09-24 15:33:42 +08:00
cruldra 7888d15a38 🐛 fix(vscode): profiles.json 在外部被改动后 Profile tab 实时刷新 2026-09-24 15:33:25 +08:00
cruldra 0332d1da72 🔧 chore(vscode): 版本号升到 0.2.148 2026-09-21 00:37:18 +08:00
cruldra fb122b76ce ✨ feat(vscode): 同事改工单所在列、开关工单时,本机看板实时跟着动
此前只有新建工单、改标题、改指派会实时上卡;列变化存在 state JSON 评论里,
而 issue_comment 处理只认带 spx:review 标识的审查评论,别人拖卡这边毫无反应,
issues closed/reopened 也没接。抽出 refreshIssueCard 作为统一刷卡入口:重拉
该工单、叠加本机运行态、按 mine 可见性门禁决定上卡还是撤卡,只刷 UI,不写
远端状态也不起会话,观察者机器执行同样安全。state 评论(解析出 column)与
工单开关都接到这个入口上。
2026-09-21 00:37:04 +08:00
cruldra 6603e76fe1 🔧 chore(vscode): 版本号升到 0.2.147 2026-09-20 18:00:45 +08:00
cruldra 4ae508aee3 🐛 fix(vscode): worktree 还在的工单也能启动测试会话,不再强制要求 PR
handleStartTestSession 早就允许在工单 worktree 里测——代码就在工作目录,
不需要 PR 做参考;只有 worktree 已清理、回退主工作区时才要靠 PR 了解
合并进来的改动。详情面板的 ▶ 按钮却只看 pr,导致「有 worktree、没 PR」
的工单点不了,实际后端跑得起来。按钮条件补上 worktreeExists,与后端对齐。
2026-09-20 18:00:27 +08:00
cruldra dbb7aa8a59 🔧 chore(vscode): 版本号升到 0.2.146 2026-09-20 17:25:09 +08:00
cruldra 9e255f517b ✨ feat(vscode): 看板顶部加筛选框,按标题 / 工单号 / PR 号过滤卡片
工单多了以后靠肉眼在四列里翻太慢。顶部输入框按空白分词逐词 AND 匹配
标题、工单号、PR 号,`#427` 与 `427` 等价,纯数字按包含匹配,记不全
编号也能搜到。筛选只收窄渲染,拖拽与依赖锁定仍按全量列表算;列头角标
在筛选时显示「可见 / 总数」。
2026-09-20 17:24:54 +08:00
cruldra 73f2c3ec66 🐛 fix(vscode): 完成列缺 PR 合并时间时按工单关闭时间排序
没走 PR 流程、直接关掉的工单没有 merged_at,原先一律排在所有已合并
工单之后,在上百张卡的完成列里等于永远看不见。loader 把 Gitea issue
的 closed_at 带进 Issue,完成列排序缺 prMergedAt 时回退到它,让两类
工单落在同一条时间线上。
2026-09-20 17:23:25 +08:00
cruldra 0b85b9868b 🧹 chore(vscode): 删掉 cutRelease 换签名后残留的旧注释 2026-09-17 17:58:12 +08:00
cruldra 727dcd2480 🔧 chore(vscode): 版本号升到 0.2.145 2026-09-17 17:57:47 +08:00
cruldra 17570749dd ✨ feat(vscode): 同一天再切发布直接把 main 新提交推进到当天分支,不再另起编号分支 2026-09-17 17:57:47 +08:00
cruldra 4aae4df1f1 🔧 chore(vscode): 版本号升到 0.2.144 2026-09-17 17:52:26 +08:00
cruldra 936097757b 🐛 fix(vscode): 同一天再切发布分支自动编号 .2 / .3,不再报已存在 2026-09-17 17:52:26 +08:00
cruldra b77f2b1b63 🔧 chore(vscode): 版本号升到 0.2.143
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 01:03:44 +08:00
cruldra 2b02da27e7 🐛 fix(vscode): 导入原型插件时总是重启 Figma
插件已经在 Figma 清单里时原先只是把 Figma 拉到前台,而 Figma 把插件代码
缓存在进程里,改完原型点按钮看到的还是上一版 code.js。现在不管清单里有没有,
只要 Figma 在跑就先关掉再拉起,让它重新读盘。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 01:03:29 +08:00
cruldra 387b323271 🔧 chore(vscode): 版本号升到 0.2.142
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:44:48 +08:00
cruldra 7bac5c8b03 ✨ feat(vscode): 七份提示词统一走 Handlebars,头脑风暴三档合一
- 模板引擎换成 Handlebars(noEscape,提示词是纯文本不能被转义),单花括号写法彻底退场
- brainstorm-continue / brainstorm-continue-prototype 两份并进 brainstorm.md,
  用 {{#if issueNumber}} 分新建 / 续聊,续聊里用 {{#if prototypeFile}} 嵌原型段落,
  设置面板对应的两个 textarea 一并删掉
- 模板上下文 = 工单 state JSON 全量字段 + issueNumber / userRequest / nonce /
  planFile / prNumber / prRef,以后模板想用新字段不用改扩展代码
- 各会话入口共用一条 state 读取路径,读失败只记 warn 按空状态继续,不拦开会话
- 升级后首次启动把存量自定义提示词迁到双花括号并合并成一份,改写前把
  settings.json 备份成 settings.json.bak-<时间戳>,迁移动作全写日志
- 装 handlebars 时给 vsce 传递依赖的老 semver 加 trustPolicyExclude 豁免,
  否则 no-downgrade 策略卡住整个装包

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:44:28 +08:00
cruldra efeac8c978 🔧 chore(vscode): 版本号升到 0.2.141
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:29:18 +08:00
cruldra 43a0bf6bad ♻️ refactor(vscode): 续聊里的原型段落搬进模板文件
那段正文原先拼在 prompts.ts 里,设置面板看不到也改不了。现在落到
prompts/brainstorm-continue-prototype.md,面板「提示词」组多一项「续聊·原型段落」,
占位符 {prototypeFile} / {issueNumber} / {prototypeSessionId};取值为空的整行会被
删掉,免得留下半句没有值的说明。

同时把措辞收紧:原型改动只能 ListAgents + SendMessage 给已开着的原型会话,
点名禁止派子代理 / fork 分身 / 自己动插件代码。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:28:58 +08:00
cruldra f9537abf97 🐛 fix(vscode): 续聊提示词禁止用子代理顶替原型会话
上一版只说「用会话交流技能」,规划会话理解成派个 fork 分身去改原型——分身
没有原型上下文,还会和真正的原型会话抢同一份插件代码。改成点名禁止 Agent
子代理 / fork / 后台代理,只允许 ListAgents + SendMessage 给已开着的原型会话,
找不到就停下来让用户起一个。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:26:56 +08:00
cruldra 24e590a8dd 🔧 chore(vscode): 版本号升到 0.2.140
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:16:37 +08:00
cruldra 0792c9262d ✨ feat(vscode): 续聊提示词告诉规划会话怎么找原型会话
讨论里发现原型要改时,规划会话既不该自己动插件代码,也不该去翻 git log 猜
会话 id。提示词现在带上原型会话 id 和终端名,并指明走 spawning-peer-sessions
技能 SendMessage 过去;没有活会话就停下让用户从面板起一个。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:16:22 +08:00
cruldra 9a388b50ce 🔧 chore(vscode): 版本号升到 0.2.139
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:12:04 +08:00
cruldra 142af57d9d ✨ feat(vscode): 工单挂原型插件,详情面板一键导入 Figma
- prototypeFile 走通 state → Issue → webview 全链路(gitea/youtrack 两个
  loader、两份 KNOWN_STATE_FIELDS、issue/patch、webview types),按 planFile
  同款当共享字段;路径校验换成 .json 版,允许绝对路径
- 详情面板「计划文件」下加「原型插件路径」行:双击开 manifest.json,
  行尾按钮「在 Figma 中导入并打开」;没挂插件时只显示空态
- src/figma/:把 manifest 写进 Figma 桌面版的 localFileExtensions 再拉起
  Figma。坑是 Figma 退出会用内存状态覆盖 settings.json,所以写之前先
  osascript 优雅退出并轮询等它真没了(10s 等不到就让用户手动关,不强杀);
  写前备份 settings.json.bak-<时间戳>;已导入过就跳过写入直接打开;
  非 macOS 只把路径复制到剪贴板
- webhook 里 spec/plan 的 marker 同步改成表驱动,顺带认第三种 prototype
- 提示词:prototype.md 要求画完挂 marker;brainstorm-continue.md 新增
  {prototypeRef} 占位符,有原型插件时让续聊先读它别从零重画,没有时
  连同整段抹掉

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:11:49 +08:00
cruldra def5f4e88c ✨ feat(spx): issue marker 支持第三种类型 prototype
- --type 三选一 spec|plan|prototype,marker 行写 <!-- spx:prototype=路径 -->,
  与 spec/plan 共用同一套增量更新逻辑;类型→state 字段的映射收成一张表
- 同步写 state JSON 的 prototypeFile(pattern 要求 dir/.../x.json)
- 顺手补上 b62e58d 漏掉的 prototypeSessionId / prototypeProfilePath:
  schema 与 knownStateFields 都没有它们,带原型会话的工单一 merge
  就会被 additionalProperties 拒掉

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-15 00:08:31 +08:00
cruldra 814e0e8f5a 🔧 chore(vscode): 版本号升到 0.2.138
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-14 10:20:45 +08:00
cruldra b62e58d739 ✨ feat(vscode): 新增第五种工单会话「原型会话」
照测试会话那条链路补一份 prototype:

- 消息与路由:session/start-prototype、session/resume-prototype、
  issue/update-prototype-profile-path,都进只读门禁
- 会话:handleStartPrototypeSession / handleResumePrototypeSession,
  终端名 issue-N-原型;cwd 有 worktree 用 worktree、没有退主仓库根
  (原 resolveTestSessionCwd 改名 resolveWorktreeOrRootCwd 两种会话共用)
- 不要求有 PR,任何阶段都能起;前置工单锁仍然拦
- 提示词:新增 prompts/prototype.md,设置里可改,占位符 {issueNumber}
- profile:工单级 prototypeProfilePath > 设置里的原型默认 profile >
  内置默认,与其它会话互不回退
- 状态字段 prototypeSessionId / prototypeProfilePath / prototypeTabOpen
  贯通 gitea、youtrack、本机 state 与移交包
- 详情面板加「原型会话id」「原型配置文件」两行,设置面板加对应两项

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-14 10:20:30 +08:00
cruldra 3fff796a61 🔧 chore(vscode): 版本号升到 0.2.137
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 13:19:41 +08:00
cruldra f946e5cfee ✨ feat(vscode): 测试提示词改成可配置模板并带上工单号
启动测试会话原先硬编码发 `/pr-acceptance-testing`,不带目标,验收技能只能
反问要测哪个。现在做成 prompts/test.md 模板 + 设置里的「测试提示词」,占位符
{issueNumber} 和 {prRef}(worktree 里是分支,主仓库里是已合并的 PR)。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 13:19:28 +08:00
cruldra e05a5234db 🔧 chore(vscode): 版本号升到 0.2.136
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 12:46:50 +08:00
cruldra 0e84965e2a 🐛 fix(prompts): 实施提示词删掉项目专属的数据库段落
默认实施提示词里写死了某个项目的 dev DB 地址和 alembic 用法,而提示词设置
是全局共用的,换个项目就是错的指令。项目自己的迁移规则归各仓库 CLAUDE.md。

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 12:46:37 +08:00
cruldra 1ed4da5e47 🔧 chore(vscode): 版本号升到 0.2.135
Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 10:52:26 +08:00
cruldra 410a04da77 ✨ feat(vscode): 实施和审查会话行加启动箭头
不用再把卡片拖到「实施中」「审查」列:

- 实施会话id 行在有计划文件且没实施会话时显示 ▶,等同拖进实施中列
- 审查会话id 行在有 PR 时显示 ▶,按 PR 事件那套流程起 codex 审查

Claude-Session: https://claude.ai/code/session_01Kgmb1LvrPmFX3NoUDB4zZC
2026-09-13 10:52:14 +08:00