mirror of
https://github.com/hoornet/vega.git
synced 2026-04-23 22:30:00 -07:00
Docs: changelog + WebKit OOM lessons for v0.12.8
Add v0.12.8 entry to CHANGELOG.md with Blossom regex root cause, WebKit rendering fix, and notification dedup. Add hard-won Linux/WebKitGTK lessons section to CLAUDE.md (bitmap eviction, MemoryPressureSettings process boundary, bisect-first, cache vs leak) and flag safe Blossom URL auto-detection as pending for v0.12.9.
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,5 +1,15 @@
|
||||
# Changelog
|
||||
|
||||
## v0.12.8 — Fix Linux OOM crash (2026-04-16)
|
||||
|
||||
### Fixed
|
||||
- Linux WebKit web process no longer grows unbounded to 8–12 GB and self-kills. Memory now oscillates at ~0.85–1.6 GB during heavy scrolling on Linux and Windows. Root cause: the Blossom SHA-256 URL auto-detection regex introduced in v0.12.6 caused 3–5× more `<img>` elements per feed page, which combined with WebKitGTK's weak bitmap eviction pushed the WebProcess past its self-kill threshold. Blossom URL auto-detection is temporarily disabled pending proper validation in v0.12.9.
|
||||
- WebKit rendering: `WEBKIT_FORCE_SOFTWARE_RENDERING=1` on Linux to keep the Wayland compositor path intact on Hyprland.
|
||||
- `fetchNotifications` was firing 3× in the first 8 seconds of login; now fires once and the first background poll is delayed to 90s.
|
||||
|
||||
### Changed
|
||||
- v0.12.7 OOM firefighting reverted: follow feed back to 100 events, global feed caches up to 200 — matching pre-crisis v0.12.6 behavior.
|
||||
|
||||
## v0.12.7 — Upload Fixes (2026-04-13)
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -175,3 +175,11 @@ CI triggers on the tag and builds all three platforms (Ubuntu, Windows, macOS AR
|
||||
**Not yet implemented:**
|
||||
- NIP-96 file storage
|
||||
- Custom feeds / lists
|
||||
- Safe Blossom URL auto-detection (temporarily disabled in v0.12.8 after OOM regression — needs HEAD `Content-Type` validation or known-server whitelist before reintroduction)
|
||||
|
||||
## Hard-won Linux/WebKitGTK lessons
|
||||
|
||||
- **WebKitGTK does not evict decoded bitmaps** under memory pressure the way Chromium does. Any path that multiplies `<img>` elements per feed page will translate ~linearly into WebProcess RSS. Validate new "render as image" heuristics (e.g. Blossom SHA-256 URLs) with a real content-type probe before shipping.
|
||||
- **`MemoryPressureSettings` set on `WebsiteDataManager` only affects the NetworkProcess**, not the WebProcess where decoded bitmaps live. Setting a WebProcess cap requires reaching `WebContext` at construction time (construct-only GObject property) — wry does not currently expose this.
|
||||
- **Bisect regression windows before investigating root cause.** If memory behavior changed between versions, `git bisect` the release tags first. Four days of WebKit-level investigation was avoidable once the regression was traced to a single commit in v0.12.6.
|
||||
- **Distinguish caches from leaks.** Oscillating memory = elastic cache (fine). Monotonic growth = leak or uncapped working set (fix it).
|
||||
|
||||
Reference in New Issue
Block a user