Releases: tuna-os/gtk-office-suite
Release list
v2.1.0 — crash fixes: RefCell reentrancy panics
Crash fixes only, no other functional changes since v2.0.0.
A dedicated audit for RefCell-reentrancy crashes (a borrow held across a call that synchronously reenters and takes another conflicting borrow) found and fixed real, reproducible panics in all three apps:
- Tables (#138, #139): opening any file via File → Open, single-click or arrow-key navigation onto a formula cell, double-clicking a column divider to auto-fit, and deleting a sheet via the confirmation dialog all crashed with "RefCell already borrowed".
- Letters (#140): double-clicking an existing ruler tab stop crashed the same way.
- Decks (#141): switching between two slides that both have speaker notes crashed (GtkTextBuffer's delete-then-insert emits
changedtwice, and the skip-guard only survived one emission) — reachable from slide add/delete/move, undo/redo, keyboard navigation, new-document, and file-open.
Install: flatpak remote-add --if-not-exists tuna-os https://tunaos.org/flatpak/tuna-os.flatpakrepo && flatpak update org.tunaos.tables org.tunaos.letters org.tunaos.decks
v2.0.0 — app IDs dropped -rust suffix, aarch64 builds
Two infra changes, no functional app changes since v1.2.0:
- App IDs dropped the
-rustsuffix:org.tunaos.tables-rust→org.tunaos.tables(same for letters/decks). The Python variants are gone (archived), so the Rust apps are the only Tables/Letters/Decks now — the disambiguating suffix no longer earns its keep. This is a breaking rename: uninstall the old-rustIDs and install the new ones. - aarch64 builds: every app now publishes both x86_64 and aarch64 OCI images, cross-built the same way as Mariner/Mandelbrot.
Install: flatpak remote-add --if-not-exists tuna-os https://tunaos.org/flatpak/tuna-os.flatpakrepo && flatpak install tuna-os org.tunaos.tables org.tunaos.letters org.tunaos.decks
v1.2.0 — command palette, cross-app clipboard, autosave, a11y
Since v1.1.0 (103 commits):
- Command palette everywhere: Ctrl+K across all three apps over a unified GioAction registry, with Ctrl+? shortcut dialogs
- Cross-app clipboard: copy/paste a styled selection between Letters, Tables, and Decks via a shared fragment format
- Autosave + crash recovery: configurable autosave, atomic saves, and a close/quit guard in all three apps
- Accessibility: cells and slide objects are now real AT-SPI nodes (virtual a11y children)
- Tables: fill handle (drag-to-copy, series detection, relative formula shifting), named ranges, row filtering, print area, conditional formatting, sheet rename/delete/reorder
- Letters: footnotes, ODT read/write, page geometry + font family + line spacing round-trips, CommonMark round-trip improvements (630 → 651/652)
- Decks: object inspector, presenter pill, fit-to-viewport canvas, master slides read from PPTX, live slide thumbnails
- i18n wiring: gettext domain, POT extraction
- Flathub prep: enriched metainfo + flathub-layout manifests
- Dependency bumps (quick-xml 0.41, calamine 0.36, pulldown-cmark 0.13, zip v8) and clippy warning cleanup workspace-wide
Install: flatpak remote-add --if-not-exists tuna-os https://tunaos.org/flatpak/tuna-os.flatpakrepo && flatpak install tuna-os org.tunaos.tables-rust org.tunaos.letters-rust org.tunaos.decks-rust
v1.1.0 — surfacing wave, measured parity, oracle-verified formats
Since v1.0:
- Ctrl+K command palette in all three apps over a unified GioAction registry, with Ctrl+? shortcuts dialogs
- Letters: selection format popover, live style readout, ODT read/write, page geometry + font family + line spacing round-trips, raw-HTML-preserving Markdown (CommonMark 630/652)
- Tables: range selection with live Sum/Avg/Count, name box + Ctrl+G, keyboard navigation, merges/frozen panes/column widths persisted to xlsx, CLI file open
- Decks: object inspector, presenter pill, fit-to-viewport canvas, per-run font size/color, slide backgrounds, CLI file open
- 65 through-LibreOffice oracle tests (25/20/20) + 13 AT-SPI smoke tests gate every push
- Fixed along the way: dead formatting actions, a column-header-click crash in Tables, offset object selection in Decks, LibreOffice deleting our code spans, and a dozen more
Install: flatpak remote-add --if-not-exists tuna-os https://tunaos.org/flatpak/tuna-os.flatpakrepo && flatpak install tuna-os org.tunaos.letters-rust (bundles attached below once CI finishes).
v1.0.0 — Hanthor Rust Office Suite
Changelog
v1.0.0 (2026-06-23)
First release of the Hanthor Rust Office Suite — a GNOME-native office suite
written in Rust with GTK4 and libadwaita.
Letters — Word Processor
- Tabbed documents with drag-to-new-window support
- Rich text formatting: Bold, Italic, Underline, Strikethrough, Highlight
- Markdown macros: type
**bold**,*italic*,# headingfor auto-formatting - Find & Replace overlay with case-sensitive toggle
- Paragraph styles: H1-H6, Code, Blockquote
- Text alignment: Left, Center, Right, Justify
- Font size increase/decrease
- Bullet and numbered lists with auto-continuation
- Insert image (file picker + drag-and-drop), link, Markdown table
- File I/O: Markdown, HTML, DOCX, PDF export via Typst
- Spell-check toggle
- Auto-save timer
- Undo/Redo (Ctrl+Z/Y)
Tables — Spreadsheet
- Cairo-rendered grid with column headers and row numbers
- Cell editing via double-click overlay
- Formula evaluation via IronCalc engine (83 functions)
- Multi-sheet workbooks with tab switcher
- File I/O: XLSX, ODS, CSV import/export
- Copy/paste TSV clipboard (cross-app exchange)
- Column auto-width on double-click divider
Decks — Presentations
- Slide sidebar with AdwOverlaySplitView
- Cairo slide canvas with Pango text rendering
- Shapes: rectangles, circles
- Image insertion via file picker
- Fullscreen present mode with keyboard navigation
- Slide management: add, delete, reorder
- File I/O: PPTX via zip + OpenXML
Infrastructure
- All three apps build as Flatpaks
- GSettings for preferences persistence
- GNOME HIG-compliant UI (libadwaita, AdwTabView, AdwHeaderBar)
- Keyboard shortcuts with AdwShortcutsDialog
- Dark mode support (system + manual toggle)
- Responsive toolbar breakpoints
- CI: cargo check, clippy, test, Flatpak build