Frieren Release Notes - Version 1.4.1
A small follow-up to 1.4.0. The panel got a new shared console that any gadget can plug into, plus some color polish.
Keeping the tradition, here's a track:
‘futility’ by Yakui the Maid - Bandcamp Helltube
This is a focused patch on top of 1.4.0: a reusable read-only console any module can embed, terminal theme contrast polish, a single-source version scheme, and a couple of fixes.
New Features
- Embeddable Console Output (
LogView): A new shared, render-only terminal pane promoted to the core, so any module (or panel surface) can show live, ANSI-coloured tool output without shipping its own terminal. Built on a stripped-downTerminalLiteViewer(xterm with no websocket, input, zmodem, flow-control or webgl) exposed throughwindow.Frieren.TerminalCore. It renders in the operator's configured terminal theme and font automatically (sharedterminal-settings), supports both append (streamed/drained deltas) and snapshot (full re-read) feed modes, swallows keystrokes so browser shortcuts like F12 keep working with the view focused, and hides the cursor.
Major Improvements
-
Terminal Theme Polish (WCAG): Reviewed every built-in terminal scheme for contrast against its background. Tuned the custom
defaulttheme (red / brightRed now clear AA) and lifted Gruvbox's hard-to-read normal red to its own bright variant. Schemes whose low contrast is intentional design — Nord, Solarized, comment greys and the ANSIblackslots — were deliberately left faithful rather than de-identified. The theme map is now shared fromterminal-core, so the panel terminal and any module'sLogViewrender identical schemes. -
Single-Source App Version: The app version is now derived from
package.jsonat build time and injected asVITE_APP_VERSION, instead of being duplicated across the.envfiles. Bump it in one place and every surface (About, update check, bundle) follows. -
Terminal CSS Consolidated: xterm styles now load from a single
App.jsximport instead of being scattered across the terminal feature and the UMD support shim.
Bug Fixes
-
Deep-Linkable Module Tabs: Dynamic module routes now accept an optional
:tab?segment (#/:module/:tab?), so third-party UMD modules get the same bookmarkable, reload-surviving tabs as the built-in pages. -
Internet Check Tolerance:
hasInternetConnectionnow pings with-c2, so a single dropped packet no longer falsely reports the device as offline before network-dependent operations.
Developer Experience
terminal-coreas a shared library: Now a first-class shared lib onwindow.Frieren.TerminalCore. Module authors can drop in a live, themed read-only output pane in a few lines via the coreLogView— no per-module terminal plumbing.
Full Changelog: 1.4.0...1.4.1