崮生(子虚)
|
23728ba02b
|
refactor: 回退内存闸门为固定并发(保留分组调度) + 前端改进
后端:
- subset_queue.ts: 移除基于内存的门控(LLRT GC 不释放 RSS),
回退到固定并发模型,保留分组调度优化(相同字体批处理重用缓存)
- config.ts: 恢复 subsetConcurrency / subsetQueueTimeoutSeconds,
移除 subsetMemSoftLimitMB
- routes/subset.ts, app.ts, routes/config.ts: 同步恢复
- api.ts, README: 同步更新
前端:
- FontSelector.vue: 下拉项和触发器标记临时字体(橙色徽章)
- CodeBlock.vue: 新增轻量代码块组件,内置 CSS/HTML/JS 分词高亮(0依赖)
- Home.vue: 集成 CodeBlock 替换原始 <pre> 代码块
|
2026-07-30 23:11:54 +08:00 |
|
崮生(子虚)
|
7403414439
|
feat: 用内存水位闸门替代固定并发限制
- subset_queue: 新增 withMemoryGate,基于 RSS 决定排队/执行
- getRssMB: Node 用 process.memoryUsage(),LLRT 用 /proc/self/statm
- 请求完成后主动 __gc() 加速内存回收
- config: SUBSET_MEM_SOFT_LIMIT_MB=600 替代 SUBSET_CONCURRENCY=4
- 小请求可高并发(内存够),大请求自动排队(防 OOM)
|
2026-07-30 22:51:37 +08:00 |
|
崮生(子虚)
|
b86d2fcb53
|
fix: 并发默认调到4,队列超时改为可配(30s)
- SUBSET_CONCURRENCY 默认 2 → 4(900M 内存够用)
- 新增 SUBSET_QUEUE_TIMEOUT 环境变量(默认30秒,原硬编码10秒)
- 压测发现10秒超时太短:50并发只有8成功,其余排队超时
|
2026-07-30 21:46:21 +08:00 |
|
崮生(子虚)
|
65ba984972
|
feat: 字体子集化并发队列控制(服务端+客户端)
后端:
- subset_queue.ts: Semaphore 并发控制器,排队超时返回 503
- subset.ts: fontSubset 调用包裹在 withConcurrencyLimit 中
- config.ts: 新增 SUBSET_CONCURRENCY 环境变量(默认 2)
- routes/config.ts: 暴露 subsetConcurrency 到配置 API
前端:
- api.ts: ServerConfig 新增 subsetConcurrency 字段
- webfont-sdk.js: 客户端并发池(默认 4),setMaxConcurrent API
通过 document.fonts.load 精确追踪字体加载完成释放槽位
|
2026-07-30 21:33:45 +08:00 |
|
崮生(子虚)
|
abd75985b7
|
feat: 临时字体保留时限改为秒为单位(TEMP_RETENTION_SECONDS)
- TEMP_RETENTION_HOURS → TEMP_RETENTION_SECONDS,默认 10800(3小时)
- 前端显示自适应:秒/分钟/小时
- README docker-compose 示例同步更新
|
2026-07-30 21:24:38 +08:00 |
|
崮生(子虚)
|
5c3ff96c00
|
docs: 更新 README 裁剪性能数据(node 实测亚毫秒级)
node v24 实测令东齐伋复刻体 50 轮 min:拉丁 0.05ms、8 汉字 0.08ms、
千字文88字 0.19ms(ttf),均达亚毫秒级。补充 X-Timing-* 响应头说明。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-26 10:57:55 +08:00 |
|
崮生(子虚)
|
13787dfd22
|
refactor: 重命名 Skill 为 chinese-web-font,聚焦中文字体应用
- skills/chinese-web-typography.md → skills/chinese-web-font.md
- 移除路线图(不写规划)
- 移除英文 README 中不存在的 Typography Presets 表格
- 统一文案:Typography Skill → Chinese Font Skill
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-29 09:14:04 +08:00 |
|
崮生(子虚)
|
5dab3d6d93
|
更新文档
|
2026-05-28 22:50:02 +08:00 |
|
崮生(子虚)
|
b4a7a820eb
|
feat: AI Typography Skill 系统 + 中英双语 i18n + Before/After Demo
- 新增 skills/chinese-web-typography.md 作为提供给 AI agent 的排版智能文件
- 重写 README.md(中文默认),新增 README.en.md(英文版),互相引用
- 新增 TypographyDemo.vue 前后对比组件,展示中文字体效果差异
- 新增 src/i18n.ts 轻量国际化方案,所有组件文案支持中英切换
- 后端 /api/fonts 返回 temporary 字段标识临时字体
- 升级至 v1.8.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-28 22:41:47 +08:00 |
|
崮生(子虚)
|
c18dc44e72
|
chore: 升级至 v1.7.0,新增内存缓存与运行时统计
- 新增通用 LruCache 类,支持按条目数/字节容量两种淘汰策略
- 字体裁剪结果 LRU 内存缓存(默认 10MB,X-Cache 响应头标识命中)
- 新增 GET /api/stats 运行时统计接口
- 前端统计面板(10s 轮询,页面不可见时暂停)
- API handler 拆分到 routes/ 目录,提取 shared.ts 共享模块
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-04-30 19:34:30 +08:00 |
|
崮生(子虚)
|
b902b4e1cc
|
增强安全性,重构代码
|
2026-04-08 22:05:17 +08:00 |
|
崮生(子虚)
|
878b54a0fd
|
修复上传功能、移除 tjs 运行时支持、添加 vite-plugin-pilot
- 修复 HTTP header 大小写不敏感匹配,解决浏览器上传请求体为空的问题
- 重写 createStreamAfterTarget,修复大文件上传时 body stream 数据流断裂
- 添加 chunked transfer encoding 解码支持
- 读取完 body 后 cancel stream,防止后台循环抛异常炸进程
- 修复 parseHttpRequest 中 split(":") 对含冒号 header value 的错误拆分
- 临时上传同名文件直接覆盖,不再加时间戳前缀
- 移除 tjs (txiki.js) 运行时支持及相关代码
- 安装并配置 vite-plugin-pilot 浏览器测试工具
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 20:31:43 +08:00 |
|
崮生(子虚)
|
43a1d2cf64
|
README 补充 TEMP_MAX_FILES 环境变量说明
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 17:13:45 +08:00 |
|
崮生(子虚)
|
e0f34c36b6
|
修复上传功能和服务器健壮性问题
- 修复 multipart 解析器:endDelimiter 提前检查导致循环退出
- 修复 Node.js v24 兼容:改为先读取 body 再构造 Request
- 修复 HTTP keep-alive 死锁:按 Content-Length 精确读取 body
- 修复服务器崩溃:connectionHandle 加 try-catch,单连接错误不影响全局
- 修复 URL 写死:webfont.shenzilong.com 改为 localhost
- 复制按钮加"已复制/复制失败"反馈提示
- TEMP_MAX_FILES 改为环境变量可配置
- dev 环境默认启用临时上传和管理员上传
- CSS 代码默认展示,使用技巧不再折叠
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-08 17:11:55 +08:00 |
|
zixu
|
8cff027a44
|
更新文档
|
2024-08-29 09:11:20 +08:00 |
|
zixu
|
935ba3fbe3
|
update doc
|
2024-08-28 20:44:17 +08:00 |
|
zixu
|
728e28c1c6
|
更新文档
|
2024-08-28 20:40:57 +08:00 |
|
zixu
|
b50f9e2423
|
更新文档
|
2024-08-28 20:40:23 +08:00 |
|
zixu
|
a44f978ef5
|
改善前端页面
|
2024-08-18 17:46:13 +08:00 |
|
zixu
|
6f49a621d3
|
内存占用
|
2024-08-18 16:33:11 +08:00 |
|
zixu
|
cae3bad5a9
|
更新文档
|
2024-08-18 16:29:18 +08:00 |
|
zixu
|
6b896d768e
|
init
|
2024-08-18 15:14:50 +08:00 |
|