You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Include all changes since v2.2.0: frontend design system, color
palette unification, theme presets, mobile-first CSS, CLI hardening,
security fixes, and test coverage improvements.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+28-18Lines changed: 28 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,34 +11,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
12
12
## [2.3.0] - 2026-02-04
13
13
14
-
### Fixed
15
-
16
-
-**YAML injection in article creation**: `SanitizeForYAML()` now escapes backslashes and newlines; frontmatter templates pass title, description, and author through sanitization
17
-
-**Destructive static export**: Replaced `os.RemoveAll` with safe directory swap pattern (export to `.tmp`, rename on success, preserve original on failure)
18
-
-**Cache race condition**: Counter increments (`hits`, `misses`) now use `atomic.AddInt64` instead of mutating under `RLock`
19
-
-**Cache goroutine leak**: Cleanup goroutine now stops cleanly via `stopCh` channel, signaled by `Shutdown()`
-**CI lint step**: golangci-lint in CI with `only-new-issues: true`
28
25
-**CI coverage threshold**: Build fails if coverage drops below 45%
29
26
30
27
### Changed
31
28
29
+
-**Unified color palette**: Replaced amber accent and rainbow gradients with restrained monochrome system — accent is now a lighter variant of each theme's primary hue
30
+
-**About page sidebar**: 6 hardcoded gradient cards reduced to 1 accent (profile) + 5 neutral cards with borders
31
+
-**Social share buttons**: Platform-specific brand colors replaced with `var(--color-primary)` for consistency
32
+
-**Tech icons**: Individual brand colors standardized to `var(--color-primary-dark)`
33
+
-**Tag cloud**: Filled blue pills changed to outlined style matching article card tags
-**comments.css**: Aligned to project design token system
32
36
-**golangci-lint v1 to v2 migration**: Config schema updated to v2 format, action upgraded to v7 with golangci-lint v2.8.0
33
37
-**quic-go updated** to v0.57.0 (resolves CVE)
34
-
-**GitHub Actions pinned**: `softprops/action-gh-release` pinned to SHA`a06a81a03ee405af7f2048a818ed3f03bbf83c7b`
35
-
-**Documentation accuracy**: Fixed broken links, stale coverage numbers, nonexistent Makefile targets, wrong PORT defaults, and obsolete binary references across all docs
38
+
-**GitHub Actions pinned**: `softprops/action-gh-release` pinned to SHA
39
+
-**Documentation accuracy**: Fixed broken links, stale coverage numbers, nonexistent Makefile targets, wrong PORT defaults, and obsolete binary references
36
40
37
-
### Technical Details
41
+
### Fixed
38
42
39
-
- Coverage: ~46.5% (up from ~21%)
40
-
- 10 atomic commits
41
-
- All quality gates passing: lint, test, test-race, govulncheck
43
+
-**YAML injection in article creation**: `SanitizeForYAML()` escapes backslashes and newlines
44
+
-**Destructive static export**: Replaced `os.RemoveAll` with safe directory swap pattern
45
+
-**Cache race condition**: Counter increments now use `atomic.AddInt64` instead of mutating under `RLock`
46
+
-**Cache goroutine leak**: Cleanup goroutine stops cleanly via `stopCh` channel
47
+
-**Navbar horizontal overflow**: Prevented on mobile viewports
48
+
-**Color theme and dark mode separation**: Independent `data-theme` and `data-color-theme` attributes
49
+
-**Small-phone spacing**: Restored via `min-width: 481px` breakpoint
50
+
-**CLI hardening**: `serve --help`/`--port`, hardened export flags, wired build info
0 commit comments