flutter_alacritty 2.4.0
flutter_alacritty: ^2.4.0 copied to clipboard
Flutter terminal widget powered by an Alacritty-based Rust engine (flutter_rust_bridge + flutter_pty_new).
2.4.0 #
TUI scroll performance #
- Feat: Mouse-report TUI wheel via
TuiWheelDistance+TerminalView.tuiScrollSensitivity(discrete/notch vs trackpad 1:1). - Feat: Interaction-first PTY drain (~100ms microtask window) and DEC 2026
synchronized-output present hold on
TerminalEngineClient. - Feat: Dual present path — CustomPainter (cold) plus Rust-raster →
ui.Imagehot path gated bypreferGpuSurface/FLUTTER_ALACRITTY_GPU=1(notFlPixelBufferTextureyet; ASCII bitmap glyphs; mid-cellscroll_fractionand selection/search visuals not on raster — data path viarefreshView). - Perf: Dirty-row painter, glyph-atlas LRU, tighter
scroll_fractiondamage (partial + overscan); stabilize paint present and keep selection on partial damage. - Docs:
docs/library-api.mdscroll/present sections; latency method indocs/superpowers/specs/2026-07-16-tui-scroll-latency-method.md. - Bench: Loosen
kScrollRefreshVsFullSnapshotMaxRatio0.65 → 1.0 — both scroll FFI paths are sub-ms so ratio noise flake; cell-count + absolute µs ceilings remain the regression gates.
T0 — Correctness / polish #
- Config: Wire
font.offset/glyph_offsetinto cell metrics and paint; warn on host-onlywindow.*keys (opacity,decorations, etc.); documentbell.animationas linear-only (other values ignored with a warning). - Fix: Cell height follows primary font ascent+descent (Alacritty-style),
not
max()over CJK/fallback natural boxes; glyphs are hard-clipped to the cell slot so tall outlines cannot spill into the next row (#5). - Feat: Search options (case / whole word / regex / wrap) on the Rust engine
and
TerminalController, with matching toggles on the opt-inTerminalSearchBar. - Docs: Library vs Host ownership catalog; bell defaults locked
(
SystemSoundwhenonBellis null; visual flash only ifbellDuration > 0). - Note:
case_sensitive: falseis always case-insensitive (not Alacritty smart-case). - Deps: Requires
rust_lib_flutter_alacritty^0.2.2(fork-pinnedalacritty_terminalwithwith_case_insensitive).
2.3.2 #
- Publish CI checks out the
rust_lib_flutter_alacrittysubmodule sodart pub publish --dry-rundoes not treat the empty gitlink as a gitignored tracked path.
2.3.1 #
- Fix pub.dev publish dry-run: move local
rust_libpath override topubspec_overrides.yaml, remove unused analyze warnings, and stop mutatingpubspec.yamlin CI before publish.
2.3.0 #
- Foreground process state:
PtyBackend.isForegroundProcessRunningexposes an optionalValueListenable<bool>for tab loading indicators while a foreground command runs (#1).FlutterPtyBackendimplements it on Unix/Android; Windows returnsnull. - Depend on
flutter_pty_new^1.0.0instead offlutter_pty. - Publish CI verifies
flutter_pty_newexists on pub.dev before publishing (release order:rust_lib→flutter_pty_new→flutter_alacritty).
2.2.1 #
-
Rust optional for consumers:
rust_lib_flutter_alacritty0.2.1 ships Cargokit precompiled binaries (signed GitHub releases). No local Rust needed forflutter buildwhen artifacts exist for your platform/crate hash. -
New public test helper:
package:flutter_alacritty/testing/rust_lib_loader.dart(localcargo→ signed download fallback). -
Add
cargokit_options.yaml.examplefor forcing precompiled binaries in CI. -
Android (experimental): local PTY via
FlutterPtyBackend— default/system/bin/sh, app-privateHOME/cwd through [ShellDefaults.install], andpath_providerin the demomain(). Override with [ShellConfig]; seedocs/library-api.md.
2.2.0 #
- Resize v2: single viewport authority, atomic engine+PTY resize, unified scroll input with TUI line batching.
- Scrollback: proportional history scrollbar, incremental refresh, edge snap, and stabilized wheel/pan/scrollbar races.
- Rendering: GPU glyph atlas, bounded incremental growth, background opacity, and incremental scroll-only damage paths.
- Links:
TerminalLinkProviderseam, overlay decoration/hover/click,primaryTapActivatesLink, OSC 8–only mode (no default URL regex scan). - Example app updates and benchmark/visual test tagging via
dart_test.yaml. - Requires
rust_lib_flutter_alacritty0.2.0.
2.1.0 #
- Breaking:
TerminalView.linkProvidersnow defaults toconst [](no automatic URL regex scan on every PTY update). Pass[UrlLinkProvider()]explicitly to restore clickablehttp(s)://detection. OSC 8 hyperlinks are unchanged. - Library API:
TerminalEngine,TerminalController,TerminalViewwithPtyBackendwiring; public barrel exportsRustLibfor hostmain(). - Platform default fonts aligned with VS Code; CJK IME fixes on desktop.
- GNOME-style smooth scrolling, OSC cwd/notifications, hyperlink UX, and
live color sync via
rust_lib_flutter_alacritty0.1.0.
1.0.0 #
- Initial pub.dev release.
- Terminal widget, TOML config, search, selection, and Alacritty-based Rust
engine via
rust_lib_flutter_alacritty.