Releases
v1.0.1
Compare
Sorry, something went wrong.
No results found
[1.0.1] - 2026-05-28
🚀 Features
(rust) Headless alacritty engine with advance + cell snapshot
(rust) Engine resize
(frb) Bridge TerminalEngine (new/advance/snapshot/resize)
(pty) PtyBackend interface + flutter_pty implementation
(render) MirrorGrid + CustomPainter cell renderer
Wire PTY <-> engine <-> painter in TerminalScreen
(rust) Testable EventProxy + EngineEvent back-channel
(rust) Take_damage() incremental render updates
(frb) Async advance/take_damage + polled EngineEvent via take_events
(render) Mutable MirrorGrid with incremental apply()
(render) LRU glyph cache of pre-laid-out paragraphs
(render) Sub-pixel CellMetrics + glyph-cached painter
(engine) Per-frame coalescing client with backpressure
Route events + wire coalescing client into TerminalScreen
(rust) Emit FLAG_WIDE_SPACER for wide-char trailing cells
(render) Per-cell flags lane in MirrorGrid
(engine) Carry cell flags through to the mirror grid
(render) Wide-aware glyph cache (2x layout width)
(render) Two-pass paint with wide-char glyphs + spacer skip
(render) CJK monospace fonts in the fallback chain
(render) Box-drawing core + arm-weight line/junction ops
(render) Rounded corners, diagonals, blocks, shades, quadrants
(render) Paint box-drawing glyphs programmatically (seamless borders)
(rust) Emit FLAG_DIM and FLAG_STRIKEOUT
(render) Effective colors (inverse swap, dim darken)
(render) Bold/italic in the glyph cache
(render) Underline + strikeout decorations
(rust) Expose cursor shape + blinking in RenderUpdate
(engine) Carry cursor shape/blinking to the mirror grid
(render) Draw cursor by shape (block/beam/underline/hollow)
(render) Cursor blink via timer + merged repaint
(render) True inverse block cursor (alacritty-style)
(rust) Expose terminal mode flags in RenderUpdate
(engine) Carry mode flags to the mirror grid
(input) TermMode bit constants + helpers
(input) Mode- and modifier-aware key encoder
(input) Pass full modifiers + mode flags to the key encoder
(input) SGR/X10 mouse event encoder
(input) Report pointer events as mouse sequences
(input) Bracketed-paste encoder with end-marker sanitization
(input) Ctrl+Shift+V bracketed paste + focus reporting
(rust) Display_offset-aware render + scroll_lines/scroll_to_bottom
(engine) FRB scroll + carry display offset to the mirror grid
(ui) Wheel scrollback, alt-screen wheel arrows, snap-to-bottom on key
(rust) Alacritty selection + FLAG_SELECTED in snapshot
(render) Selection FRB passthroughs + selected-cell highlight
(ui) Mouse selection (word/line) + Ctrl+Shift+C copy
(ui) Middle-click pastes the in-app primary selection
(pty) Expose child exitCode on PtyBackend
(ui) Shell-exit/spawn-fail overlay + restart-on-input
(rust) Inject color palette + scrollback via EngineConfig
(config) ParseColor for #rrggbb/#aarrggbb/0x..
(config) TerminalConfig value object + fromTomlString
(config) ConfigLoader path resolution + file loading
(config) Thread TerminalConfig through widget tree
(rust) Regex search (search_set/next/prev/clear + searched snapshot)
(config) Match flags + alacritty search colors
(render) Opaque search-match color override in painter
(engine) Search passthroughs + searched-snapshot refresh
(ui) Search bar + Ctrl+Shift+F wiring
(render) Box-drawing long-tail — mixed junctions + dashed lines
(ui) Touch input — one-finger scroll + long-press select
(input) Precision trackpad two-finger pan = scroll
🐛 Bug Fixes
Address tracer-bullet review (reproducible dep, lifecycle, FFI test)
(render) Use concrete monospace font (DejaVu Sans Mono) with fallback
(perf) Unblock Plan 2A startup and first paint
(render) Schedule repaint when grid updates
(ui) Sync grid on resize and wire window title
(frb) Log advance panic; strengthen bindings test
(ui) Title widget opaque color assertion
(render) Restore live repaint after regression
(render) Ensure terminal repaints on grid updates
(engine) Request a frame when scheduling a drain (idle-refresh bug)
(engine) Avoid MirrorGrid RangeError on resize/drain race
(render) Rounded corners reach cell edges (no gap to box sides)
(input) Skip DRAG mouse move when no button is held
(input) Correct mouse button codes + drop unnecessary imports
(ui) Re-render view/selection changes from a full snapshot
(ui) Align exit handler with Plan 2E spec
(ui) Only KeyDown/Repeat restarts from exited state, not KeyUp
(config) Repair integration test + drop orphaned text-style consts
(config) Theme the grid's empty-cell fill (no stale-color bands)
(render) Forced-strut line box so glyphs share baseline + fill cell
(search) Preserve highlights on selection + invalid-regex UI
(search) Ctrl+Shift+F can toggle close + tighten review nits
(search) Step origin past match boundary so prev/next actually move
(search) TextField was eating Shift+Enter; flag desync masked highlights
(packaging) Update package name format in make_config.yaml
🚜 Refactor
(rust) RenderUpdate/LineUpdate + full_snapshot
Address Plan 2A review (drop setState, font, cleanups)
(engine_bindings_test) Improve Rust library path resolution
📚 Documentation
Add v1 design for Flutter terminal on Alacritty Rust core
Add tracer-bullet implementation plan (Plan 1 of v1)
Tracer-bullet acceptance findings + Plan 2 inputs
Add Plan 2A design (core data path)
Add Plan 2A implementation plan (core data path)
Validate Plan 2A — switch events from StreamSink to per-frame polling
Plan 2A acceptance findings + carry-over notes
Mark Plan 2A tasks complete + progress note
Add Plan 2C-1 design (wide-char / CJK rendering)
Add Plan 2C-1 implementation plan (wide-char / CJK)
Plan 2C-1 acceptance findings
Add Plan 2C design (rendering fidelity: box-drawing, attributes, cursor)
Add Plan 2C staged implementation plan (P1/P2/P3)
Plan 2C acceptance findings
Add Plan 2B design (input completeness: keyboard, mouse, paste)
Add Plan 2B staged implementation plan (B1/B2/B3)
Note validated 1003-hover mouse limitation in Plan 2B
Plan 2B acceptance findings
Add Plan 2D design (scrollback, selection, copy/paste)
Add Plan 2D staged implementation plan (D1/D2/D3)
Plan 2D acceptance findings
Add Plan 2E design (robustness & lifecycle)
Add Plan 2E implementation plan (robustness & lifecycle)
Plan 2E acceptance findings
Plan 2F config/theme design spec
2F spec — split config value-object from file loading for library use
Plan 2F config/theme implementation plan
(config) Sample config + Plan 2F acceptance findings
(config) Record empty-cell fill fix in findings
(config) Correct flake note — was stale native lib, not timing
Plan 2G/2J/2H spec — search, box-drawing long-tail, touch input
Plan 2G/2J/2H implementation plan (search, box-drawing, touch)
Sample search colors + Plan 2G/2J/2H acceptance findings
(search) Record post-review user-testing fixes in findings
⚡ Performance
(search) Keep bar mounted under Offstage to skip first-open lag
🧪 Testing
(render) Restore Plan 2A MirrorGrid regression tests
⚙️ Miscellaneous Tasks
Gitignore local .worktrees directory
Integrate flutter_rust_bridge scaffold
Initialize Flutter project with Rust engine integration
Add Linux packaging support and CI workflows
Bump version to 1.0.1 in pubspec.yaml
You can’t perform that action at this time.