Skip to content

Commit b062d20

Browse files
committed
Add CHANGELOG for v0.14.0 and v0.14.1
1 parent c50424b commit b062d20

2 files changed

Lines changed: 120 additions & 0 deletions

File tree

CHANGELOG-v0.14.0.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# LessJS v0.14.0
2+
3+
> 33 commits since v0.13 (a5ff77e → a04a7e5)
4+
5+
---
6+
7+
## 中文
8+
9+
### 架构
10+
11+
- **ESM-native SSG 管线**:Phase 3 改为纯 ESM 运行,不依赖 Vite。SSR bundle 自带 `importmap.json`,跨 runtime 解析 bare specifier。
12+
- **Phase 重排**:构建顺序从 `Phase 1 → Phase 2 → Phase 3` 改为 `Phase 1 → Phase 3 → Phase 2 → Inject`。SSG 不再等待 client bundle。
13+
- **共享 `ssg-render.ts`**:SSG 渲染管线抽成零 Vite 依赖的共享模块,`build-ssg.ts``cli/ssg.ts` 共用。
14+
- **独立 SSG CLI**`cli/ssg.ts` 可脱离 Vite 单独运行 Phase 3。
15+
- **URLPattern**`extractParams()` 用 WHATWG `URLPattern` 替代手写路由参数解析。
16+
- **Phase 2 可选**:零 island 的项目跳过 client 打包。
17+
18+
### 官网 (lessjs.run)
19+
20+
- 首页 v5:交互终端、代码对比、性能基准、架构图、Bundle 对比、快速开始
21+
- 品牌色系统:`#4752c4` 全站统一
22+
- 移动端适配:760px / 480px 断点
23+
- Cloudflare Pages 部署:`/api/term` 函数 + Hono
24+
- 25 篇 ADR 从旧 `decisions/` 迁入 blog 管线
25+
- 文档全面审计:API reference 重写、guide 页面修复、Cloudflare 部署指南
26+
- 发布博文:v0.12.0、v0.13.0
27+
28+
### Bug 修复
29+
30+
- Prism CSS 404、counter hydration、重复渲染(DSD 模式)
31+
- Cloudflare Functions CORS(OPTIONS 预检)
32+
- Terminal island:从 light DOM 重构为 Shadow DOM + `DsdLitElement`
33+
- Functions 目录:从 `src-tmp/` 移回仓库根目录
34+
35+
### 代码质量
36+
37+
- **统一版本号**:全部 10 个包统一为 `0.14.0`(之前碎片化在 `0.1.1``0.13.0`
38+
- **清理死代码**:删除 `constants.ts`(空文件)、`strategy-recommender.ts`(零引用)
39+
- **`@lessjs/signals` 命名统一**:从 `@lessjs/signal` 改为 `@lessjs/signals`
40+
- **`validateSafeUrl` 加固**:新增 `vbscript:` / `file:` 协议检测、URL 解码归一化、畸形编码检测
41+
- **修复 publish 重复**`publish.yml` 删除重复的 `@lessjs/adapter-vite` 条目
42+
- **移除 `--allow-dirty`**:所有 publish task 不再使用 `--allow-dirty`
43+
- **新增 `publish:dry-run`**:发布前预检
44+
- **补充 `app/LICENSE`**`@lessjs/app` 补全 MIT License
45+
- **新增 SSG 测试**`ssg-render.test.ts`(7用例) + `ssg-cli.test.ts`
46+
- **修复导航链接**`/guide/design-philosophy``/guide/architecture`
47+
- **README 版本表更新**:全部 10 包版本更新为 `0.14.0`
48+
- **CI lint 净化**:async lint、无用 import、process import 全部修掉
49+
- **移除 `package.json`**:仓库不再包含 package.json(纯 Deno workspace)
50+
51+
---
52+
53+
## English
54+
55+
### Architecture
56+
57+
- **ESM-native SSG pipeline**: Phase 3 runs as pure ESM, Vite-independent. SSR bundle ships `importmap.json` for cross-runtime bare specifier resolution.
58+
- **Phase reordering**: Build order changed from `Phase 1 → Phase 2 → Phase 3` to `Phase 1 → Phase 3 → Phase 2 → Inject`. SSG no longer waits for client bundle.
59+
- **Shared `ssg-render.ts`**: SSG rendering pipeline extracted to a zero-Vite-dependency module shared by `build-ssg.ts` and standalone `cli/ssg.ts`.
60+
- **Standalone SSG CLI**: `cli/ssg.ts` runs Phase 3 independently of Vite.
61+
- **URLPattern**: `extractParams()` replaced hand-rolled route parsing with WHATWG `URLPattern`.
62+
- **Optional Phase 2**: Client bundle is skipped for projects with zero islands.
63+
64+
### Website (lessjs.run)
65+
66+
- Homepage v5: interactive terminal island, code comparison, benchmarks, architecture diagram, bundle size comparison, quick start CTA
67+
- Brand colour system: `#4752c4` unified across the site
68+
- Mobile responsive: 760px / 480px breakpoints
69+
- Cloudflare Pages deployment: `/api/term` function with Hono
70+
- 25 ADRs migrated from `decisions/` directory into blog pipeline
71+
- Full doc audit: API reference rewrite, guide page fixes, Cloudflare deployment guide
72+
- Release blog posts: v0.12.0, v0.13.0
73+
74+
### Bug Fixes
75+
76+
- Prism CSS 404, counter hydration (removed random IDs), duplicate rendering (DSD pattern)
77+
- Cloudflare Functions CORS (OPTIONS preflight)
78+
- Terminal island: restructured from light DOM to Shadow DOM with `DsdLitElement`
79+
- Functions directory: moved from `src-tmp/` to repo root
80+
81+
### Code Quality
82+
83+
- **Unified versioning**: All 10 packages unified to `0.14.0` (was fragmented across `0.1.1``0.13.0`).
84+
- **Dead code removed**: `constants.ts` (empty), `strategy-recommender.ts` (zero references).
85+
- **`@lessjs/signals` naming**: Standardised to `@lessjs/signals` (was `@lessjs/signal`).
86+
- **`validateSafeUrl` hardened**: Added `vbscript:` / `file:` protocol checks, URL decode normalisation, malformed encoding detection.
87+
- **Duplicate publish fixed**: `publish.yml` duplicate `@lessjs/adapter-vite` entry removed.
88+
- **`--allow-dirty` removed**: All publish tasks no longer use `--allow-dirty`.
89+
- **`publish:dry-run` added**: Pre-flight check for releases.
90+
- **`app/LICENSE` added**: `@lessjs/app` now includes MIT License.
91+
- **SSG tests added**: `ssg-render.test.ts` (7 cases) + `ssg-cli.test.ts`.
92+
- **Navigation link fixed**: `/guide/design-philosophy``/guide/architecture`.
93+
- **README version table**: All 10 package versions updated to `0.14.0`.
94+
- **CI lint zeroed**: All lint errors fixed (async lint, unused imports, process import).
95+
- **`package.json` removed**: No package.json files remain (pure Deno workspace).

CHANGELOG-v0.14.1.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# LessJS v0.14.1
2+
3+
> 5 commits since v0.14 (a04a7e5 → c50424b), 73 files changed
4+
5+
## Bug Fixes
6+
7+
- **Blank page on first load**: inject.scripts (theme-init.js) was emitted before inject.headFragments (anti-flash cloak). When theme-init.js ran to remove the cloak, the `<style id="less-anti-flash">` element didn't exist in the DOM yet. The anti-flash style was applied after theme-init.js ran and never removed, leaving the page `visibility: hidden` permanently. Fixed by swapping output order: headFragments first, scripts second.
8+
- **Speculation Rules parsing error**: Home page rule had both `where: {}` (document matcher) and `source: 'list'` + `urls: ['/']` (list matcher), which the Speculation Rules API forbids. Split into separate rule shapes.
9+
- **prism-html.min.js 404**: Prism has no `prism-html` component. HTML syntax highlighting uses `prism-markup`. Fixed CDN URL.
10+
- **GoatCounter URL**: Changed protocol-relative URL (`//gc.zgo.at/count.js`) to full HTTPS (`https://gc.zgo.at/count.js`).
11+
- **Service Worker**: Only intercepts same-origin requests now (cross-origin CDN/analytics pass through). `networkFirst` returns a 503 fallback instead of throwing when offline.
12+
13+
## Infrastructure
14+
15+
- **CI workflows**: Updated lint/test/deploy workflows with better caching and error handling.
16+
- **E2E tests**: Playwright config and test helpers updated for mobile viewport testing.
17+
- **Color tokens**: Gray scale values inlined in `generateRootColorCSS()` so they resolve immediately without waiting for OpenProps CDN.
18+
19+
## Website
20+
21+
- **404 page**: Fixed mobile responsive.
22+
- **Blog posts**: Updated old posts referencing deprecated packages.
23+
- **Changelog**: Updated router for better mobile layout.
24+
- **less-term island**: CSS reformatting only (no functional change).
25+
- **Guides**: Fixed outdated references in architecture, getting-started, and RPC pages.

0 commit comments

Comments
 (0)