All checks were successful
Build and Deploy (tool.xpcool.com) / build-and-deploy (push) Successful in 1m1s
- 添加 TerminalIcon, GitBranchIcon, ApiIcon, BrushIcon, SoundIcon, Table1Icon, LogoGithubIcon, ContrastIcon, Edit2Icon, ChartBarIcon, EarthIcon, GitMergeIcon, SettingIcon, CurrencyExchangeIcon, MobileIcon, WifiIcon, RocketIcon 等图标导入 - 新增 dev, design, health, study, travel, fun, online 七个工具分类 - 添加 SQL格式化、文本对比、JSON转代码、渐变生成器、占位图生成、 ASCII艺术、摩斯电码、正则可视化、Markdown表格、API构建器、 Gitignore生成器、代码转图片、颜色命名器、缩进转换、代码统计、 Hello World大全、JSON对比、环境变量解析、汇率换算、快递查询、 手机号归属地、IP信息查询、网络测试、网络测速等多个工具路由配置 - 新增 .env.example 配置文件模板 - 创建 docs/api-contract.md 后端接口契约文档 - 新增 api-builder 和 ascii-art 工具页面组件 - 更新 agents.md 添加接手必读指引和维护约定 - 创建 CHANGELOG.md 变更日志文档和工作日志记录
5.1 KiB
5.1 KiB
2026-08-24 工作日志
工具箱新增「有趣的分类与工具」批次
为 tool.xpcool.com 新增 3 个分类 + 9 个工具(31 → 40 个),全部通过 pnpm type-check。
新增分类(src/router/tools.ts)
dev开发进阶 /design创意设计 /fun趣味娱乐
新增工具(views/ 下各自目录)
- 开发进阶:sql-format(手写分词+关键词换行格式化器)、text-diff(LCS 行级 diff,折叠相同行)、json-to-code(JSON→TS interface/Go struct 含 json tag/Python dataclass,嵌套递归建类型表)
- 创意设计:gradient-generator(linear/radial/conic + 12 组预设 + 随机)、placeholder-image(canvas 占位图 + SVG 代码)、ascii-art(亮度感知加权灰度 → 字符,支持反色)
- 趣味娱乐:morse-code(pinyin-pro 中文转拼音编码 + Web Audio 电报声播放)、lucky-wheel(canvas 转盘 + ease-out 动画 + 指针判定)、slogan-generator(5 类文案库随机)
要点备忘
- TDesign 图标名需先在 node_modules/tdesign-icons-vue-next/esm/components/ 确认存在(PaletteIcon 不存在,只有 Palette1Icon;ascii-art 用了 ViewModuleIcon)
- 创意库设计文档:docs/tool-ideas.md(含未来 60+ 工具想法清单)
- 页面样式约定:scoped 内自建 .page-wrap/.form-actions/.code-block,复用公共组件 CopyButton/ErrorAlert/HistoryPanel/UploadDrop
第二批:分类重构 + 后端预留机制 + 编程工具全系(40 → 58 个)
分类重构(9 分类)
- 在 dev/design/fun 基础上新增 health(健康生活)/ study(学习办公)/ travel(旅行出行)/ online(在线服务·后端预留)
后端预留机制(用户正在准备后端服务)
src/api/client.ts:统一 API 客户端(VITE_API_BASE 配置,未配置返回「后端未接入」,统一响应{code,message,data})docs/api-contract.md:6 个接口契约(weather/exchange-rate/express-query/stock-quote/phone-locate/ip-info)- 6 个预留页面:UI 完整、字段按契约类型化,后端上线即用;
.env.example提供 VITE_API_BASE 模板
编程工具 12 个(dev 分类)
- code-minify(JS/CSS/HTML 压缩美化,手写 tokenizer)、regex-visual(正则结构树解析器)、markdown-table、api-builder(fetch/curl 生成)、gitignore-gen、code-to-image(canvas 高亮卡片)、color-namer(148 色表欧氏距离匹配)、indent-convert、code-stats(30+ 语言注释规则状态机)、hello-world(33 语言)、json-diff(递归路径级 diff)、env-parse
坑
- ⚠️ Vue 模板 attribute 内嵌字符串不能写
\"(HTML 解析器把 " 当属性结束符)→ 字符串常量移到 script 定义 - json-diff 的
k in b需先把 b 断言为 Record<string, unknown>,否则 TS2638/TS18048
剩余批次(创意库台账见 docs/tool-ideas.md 第三部分)
- 批次 A 健康 12 / B 学习 10 / C 旅行 6 / D 设计补全 9 / E 趣味补全 14
第三批:网络测试工具 + 上下文无缝切换机制(58 → 59)
网络测试(online 分类)
network-test:HTTP 检测走前端直连(CORS 受限时提示);Ping / TCP / DNS 走后端POST /api/tools/network-test(契约已追加到 api-contract.md 第 7 节)- 图标 WifiIcon
上下文无缝切换机制(核心需求:切 CodeBuddy 账号后新 AI 能无缝接手)
- 关键洞察:用户级数据(skills/memory)随账号走,项目内文件不随账号走 → 状态必须存在项目内 docs/ 下
docs/PROJECT_STATE.md:项目状态与交接文档(单点真相)——全貌/架构机制/待办批次/后端契约索引/技术坑/接手清单,含维护规则docs/CHANGELOG.md:变更日志(倒序),每次请求/更改必追加AGENTS.md顶部新增「⚡ 接手必读」段落:新账号 AI 按顺序读 PROJECT_STATE → CHANGELOG → api-contract- 约定:此后每次实质变更必须同步更新这 3 份文档 + 工作日志(已在 AGENTS.md 写明)
第四批:网络测速工具(59 → 60)
speed-test(online,RocketIcon):下载测速(流式读 body 计时,后端/公网 cloudflare/自定义 URL 三模式,5-50MB,实时进度+峰值)、上传测速(随机数据上传,后端计时优先,1-10MB)、延迟测试(5/10 次 RTT + 抖动)- 契约第 8 节:下载返回随机二进制流(Content-Length + Cache-Control: no-store 建议),上传返回 {bytes, duration_ms, speed_mbps}
- client.ts 导出 BASE_URL 供直接拼流式地址
第五批:删除 5 个工具(60 → 55)
- 按用户要求删除:code-minify、lucky-wheel、slogan-generator、weather、stock-quote(页面目录 + tools.ts 条目 + 契约节)
- tools.ts 顺带清理无引用图标(Star/Smile/Edit/CloudyDay;ChartIcon 因 word-count 保留)
- ⚠️ 坑:项目内 rm -rf 被沙箱 safe-delete(genie-trash)拦截失败 → 改用 mv 到 $TMPDIR 实现移除(dist 同理)
- 文档全部同步:CHANGELOG 第五批 / PROJECT_STATE(55 个、dev 14、fun 1、online 6、契约 7 个)/ tool-ideas / api-contract(7 接口)/ 本日志