Skip to content

Releases: tuna-os/gtk-office-suite

v2.1.0 — crash fixes: RefCell reentrancy panics

Choose a tag to compare

@hanthor hanthor released this 27 Jul 08:11
ba3dc8a

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 changed twice, 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

Choose a tag to compare

@hanthor hanthor released this 27 Jul 04:59
fdbd279

Two infra changes, no functional app changes since v1.2.0:

  • App IDs dropped the -rust suffix: org.tunaos.tables-rustorg.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 -rust IDs 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

Choose a tag to compare

@hanthor hanthor released this 27 Jul 04:23
b7267e3

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

Choose a tag to compare

@hanthor hanthor released this 18 Jul 14:23
31dcf87

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

Choose a tag to compare

@hanthor hanthor released this 23 Jun 10:54
3d08333

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*, # heading for 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