Releases: colliery-io/crt
Release list
v0.1.3
v0.1.2
v0.1.1
v0.1.1: Tab drag-and-drop — reorder, detach, and merge across windows Add unified tab drag system with three operations: - Reorder: drag tabs within a window to rearrange - Detach: drag a tab outside to create a new window - Merge: drag a tab onto any part of another window to join it Includes globally unique tab IDs, cross-window drop target resolution, visual feedback (ghost tab, insertion caret, floating overlay), and automatic cleanup of empty source windows after merge/detach.
v0.1.0
This release focuses on GPU memory efficiency, dramatically reducing CRT's memory footprint when running multiple windows.
Highlights
77% reduction in multi-window memory usage — CRT with 3 windows dropped from 2.7 GB to 600 MB. Per-window overhead went from ~770 MB down to ~100 MB.
What changed
CRT previously created independent GPU render pipelines for every window. Each pipeline compiles to a Metal Pipeline State Object with its own shader cache, and with ~12 pipelines per window, opening 3 windows meant 36 compiled pipelines — most of them duplicates.
v0.1.0 introduces a shared pipeline architecture: immutable GPU objects (render pipelines, bind group layouts, samplers) are created once and shared across all windows via Arc. Per-window state like uniform buffers, bind groups, and instance data remains separate. This eliminates ~24 duplicate Metal shader compilations and their associated driver memory.
Other improvements were mostly around code re organization to pay off some organizational debt, increase maintainability and testability, and improved testing including introduction of graphical tests.
v0.0.10
v0.0.10: Add AUR publishing and aarch64 Linux build - Add aarch64 Linux build to release matrix (ubuntu-24.04-arm) - Add automated AUR publishing via CI - Add PKGBUILD template and publish script
v0.0.9
v0.0.9: URL fixes and render module refactoring - Fix URL underline extending beyond URL by converting byte offsets to character indices - Support wrapped URLs spanning multiple lines (click/hover works on any part) - Add theme submenu to context menu (hover to expand) - Refactor render.rs into modules: context_menu, dialogs, overlays, selection
v0.0.8
v0.0.8: Fix UTF-8 panic on paste with multi-byte characters
v0.0.7
v0.0.7: Per-window themes, paste fix, and bell flash theming - Add per-window theme switching via Window menu and context menu - Fix paste visual discontinuity at cursor boundary (INVERSE normalization) - Move bell flash to CSS theming with --flash-color and --flash-intensity - Remove unused dependencies and clean up dead code paths
v0.0.6
What's New
Event-Driven Reactive Theming
Themes can now respond to terminal events with temporary visual overrides:
::on-bell- Flash effects when bell rings::on-command-success- Green glow on successful commands::on-command-fail- Red effects and sprite swapping on failures::on-focus/::on-blur- Dim when unfocused
Includes sprite swapping support - the Nyan Cat catches fire when commands fail!
New Themes
- nyancat-responsive - Nyan Cat with reactive sprite swapping
- robco-reactive - Fallout Pip-Boy with animated Vault Boy sprites
UI Polish
- Themeable UI components (tabs, context menu, search bar, rename bar)
- Tab renaming support
- Config/theme error toasts
- Focus indicators for accessibility
Architecture Improvements
- Split WindowState into logical groupings
- Extracted keyboard/mouse handlers into dedicated modules
- Cleaner event handling with Mergeable trait
Bug Fixes
- Fix effects persisting when switching themes
- Fix hot reload not working on macOS (symlink path resolution)
- Fix key bindings and selection persistence
- Improve rendering performance
Documentation
- Document reactive theming CSS syntax
- Shell integration instructions for Bash/Zsh (OSC 133)
v0.0.5
Fix key bindings, selection persistence, tab editing, and add Window …