Skip to content

Releases: cozyGarage/BookiE

BookiE 0.1.5

Choose a tag to compare

@cursor cursor released this 27 Sep 23:47
34ea8c0

BookiE 0.1.5 for Linux.

Ubuntu 26.04+ / Debian with GTK 4.22, libadwaita 1.9, GtkSourceView 5.18, and GLib 2.88 (amd64). Arch Linux / Omarchy (x86_64). Ubuntu 25.10 and 24.04 cannot run this build. Launch with bookie. tablepro remains an alias. Apt package name is tablepro.

Commit 34ea8c0a894e356e4f88d73b8c0324cec784096b.

Packages

  • Ubuntu/Debian amd64: tablepro_0.1.5-1_amd64.deb
    SHA256: a8bb8ce6d3be87e3e5dc8e30cc93483908c631f14b284a98296fa6befdeccb94
  • Arch/Omarchy x86_64: bookie-0.1.5-1-x86_64.pkg.tar.zst
    SHA256: c9d1b0ff043d0ae05cb0f26de3485928ca1c5916f9582816e459a71f2aafecd7

Changelog

[0.1.5] - 2026-09-27

Added

  • Loaded results can be exported as Markdown, HTML, XML, SQL INSERT statements, or an Excel workbook, alongside CSV and JSON. Statement export is offered only for connections whose engine can express SQL literals, and an Excel export exceeding worksheet limits leaves any existing destination untouched. Workbooks preserve fractional seconds, timezone-bearing timestamps and dates outside 1900–9999 as exact text; ordinary supported dates and whole-second times remain native spreadsheet cells. Empty text is refused with CSV/JSON alternatives instead of being silently collapsed into NULL, preserving any existing destination. XML and HTML preserve carriage returns when parsed. XML refuses unsupported XML 1.0 characters and HTML refuses NUL characters with a row/column error instead of replacing or dropping them.
  • Saved queries have a management dialog (Ctrl+Shift+D): search them, open one in a new editor tab, rename it, or delete it. Until now a saved query could only be reached through the quick switcher and could not be removed.
  • A query that runs for 10 seconds or longer shows a desktop notification when it finishes while the window is not focused.
  • Ctrl+O opens a .sql file in a new editor tab. A file larger than the editor's limit is refused with an explanation instead of being cut short.
  • An editor tab opened from a .sql file is titled by the file, marked while it has unsaved changes, and saves back to it with Ctrl+S; Ctrl+Shift+S saves to a new file, and Ctrl+S on an unsaved query asks where to save it. If another program changed or removed the file since it was opened, the save stops and offers Overwrite or Save As instead of replacing the other program's changes. Closing a tab with unsaved file changes asks first, and after a restart the tab is linked to its file again; if the file is gone, the tab keeps its text and says it is no longer linked.
  • Query history now also records the statements the app itself runs when you save a table structure change or save edited rows, and the history dialog can filter by where a statement came from.
  • Logs can be written as structured JSON lines by setting the log format environment variable, for collection by a log agent. Any other value keeps the human-readable format.
  • A CSV file can be loaded into an existing table from the table's context menu. The file's separator and header row are detected and can be changed, each table column is mapped to a field before anything runs, and the whole import is approved once. It commits in bounded batches, shows progress, can be cancelled, and reports how many rows were written when it stops early.
  • A CSV file can also create the table it is loaded into, from the schema header in the sidebar. The column names and a type guessed from the first rows of the file are shown for every column and can be changed before the table is created. A guess falls back to text whenever any value in the sample does not fit a narrower type.
  • The structure editor shows a Comment field for each column, and reads each column's comment on PostgreSQL, MySQL, SQL Server and ClickHouse, and writes it when creating a table, adding a column or editing one. SQLite refuses a comment with a clear message instead of dropping it silently.
  • Open Quickly (Ctrl+P) lists the connection's tables and views across every schema. Typing a name or a schema-qualified name such as sales.orders finds them, and choosing one opens it.
  • A browsed table's cell menu has Filter by This Value, which narrows the table to rows holding that value, or to rows where the column is NULL for an empty cell. It replaces an existing rule on the same column and keeps the others.
  • PostgreSQL sessions opened by the app report the application name BookiE, and those opened for agents report BookiE agent, so they can be told apart in pg_stat_activity.
  • PostgreSQL materialized views are listed with views in the sidebar and open read-only.
  • The built-in SSH client can authenticate with keys held by ssh-agent, chosen as "SSH agent" in the SSH section, including in the Flatpak build; a missing agent or an agent with no keys is reported plainly.
  • An SSH tunnel can use the system OpenSSH client instead of the built-in one, so ~/.ssh/config, ProxyJump, ssh-agent and host certificates apply. Host keys are always checked: the app asks before trusting a new host even if ~/.ssh/config would accept it, and the agent daemon refuses an unknown host. A saved password or passphrase is only given to the host or key it belongs to, never to a jump host. Not available in the Flatpak build, which cannot run the host's ssh.
  • An editor tab can turn on Session to run on its own PostgreSQL, MySQL, SQL Server or SQLite file connection, so settings, temporary tables and a transaction started with BEGIN carry over between runs. The button shows when a transaction is open, and turning Session off or closing the tab with one open asks whether to commit or roll back. Every statement still goes through policy, approval and the audit journal, and COMMIT and ROLLBACK are recorded as transaction outcomes.
  • A Catalog window in the main menu lists a PostgreSQL connection's functions and procedures, triggers, sequences, extensions, roles, user-defined types and each table's privileges by role, optionally within one schema. An engine without catalog support, a listing refused by policy, a failed listing and an empty one each say so differently.
  • Agents can list a PostgreSQL connection's routines, triggers, sequences, extensions, roles, user-defined types and table privileges through the new list_objects MCP tool, optionally within one schema. It needs only a read token, is limited to the token's allowed connections, and is audited like other catalog reads; an engine without catalog support answers that the listing is unsupported rather than returning an empty list.
  • A saved connection can have its own connect timeout and query timeout, set when it is created. The connect timeout also applies to agent connections; 0 keeps the defaults.
  • A saved connection can be given a name; leaving the name blank keeps the address-derived label.
  • A saved connection can be duplicated; the copy starts without saved credentials.
  • A saved connection can carry a colour tag from a fixed palette, shown beside it in the connection list.
  • The connection list is split into a section per group, with ungrouped connections in their own section.
  • Saved connections can be exported to and imported from a connection bundle file. A bundle without a passphrase carries no credentials, a passphrase-protected bundle encrypts them, and an import shows every connection and what will happen to it before anything is written.

Changed

  • The built-in SSH client's unknown-host-key error no longer suggests connecting once with the system ssh command, which writes to a different known_hosts file than the one this client reads.
  • The built-in SSH client reports plainly when a server accepts only keyboard-interactive authentication, which it does not support, instead of a generic authentication failure.
  • The built-in SSH client now sends keepalives and can report a tunnel as closed once a bastion stops responding, instead of leaving a dead tunnel looking alive until a database driver's own timeout notices.
  • When a saved password can't be read because no keyring is running, the keyring is locked, or its unlock prompt was cancelled, the connection error now says which one and what to do, instead of showing the raw D-Bus error.
  • The keyboard-shortcuts dialog and date editor now use the GNOME 50 APIs.
  • Development builds isolate connections, history, audit, drafts, settings, the policy file, locks, and keyring items from installed builds.
  • Column-width and filter persistence is owned by the application and shared explicitly with its windows and tabs.
  • Query history is owned by the application and passed explicitly to editors, dialogs, preferences, and retention work.
  • Workspace cache, coalesced writer, and close-time flush are owned by the application and shared explicitly across windows. A connection whose editor draft cannot be read no longer blocks restoring every other open connection's tabs, and deleting a saved connection now removes its drafts from disk instead of leaving them behind.
  • Database connections, user preferences, and the MCP agent bridge are owned by the application and shared explicitly with its windows and dialogs.

Fixed

  • Browse shortcuts for Left, Right, and space showed keypad keys, and click shortcuts showed Shift and Ctrl alone.
  • New connection opened on the first driver with port 5432, database postgres, and username postgres.
  • Browse shortcuts for Left, Right, and space showed a blank key.
  • Click shortcuts were labeled Pointer_Button1.
  • Test and Connect sat at opposite ends of the connection header, and a long title ran into the buttons.
  • A ClickHouse connection with Verify CA or Verify Full through an SSH tunnel checked the certificate against the tunnel's local address instead of the database's own hostname, so both modes always failed. They now verify against the database's hostname.
  • A MongoDB connection with Verify CA or Verify Full through an SSH tunnel checked the certificate against the tunnel's local address instead of the database's own hos...
Read more

BookiE 0.1.4

Choose a tag to compare

@cursor cursor released this 17 Sep 02:41
c152652

BookiE 0.1.4 for Linux.

Ubuntu 25.10+ / Debian with GLib 2.82+ (amd64). Arch Linux / Omarchy (x86_64). Ubuntu 24.04 cannot run this build. Launch with bookie. tablepro remains an alias. Apt package name is tablepro.

Commit c152652c4e26f491d5527f92454dc821dcabc9a7.

Packages

  • Ubuntu/Debian amd64: tablepro_0.1.4-1_amd64.deb
    SHA256: dbb80808473a9a541ff56c8c4553405bef0e54e147a9258f8e226850763a9c9b
  • Arch/Omarchy x86_64: bookie-0.1.4-1-x86_64.pkg.tar.zst
    SHA256: d22654e8fc640f77157b01cb4be69a45acecb2ba10680f019e624799e100ab87

Changelog

Changed

  • Isolated GTK and Secret Service tests through shared local/CI runners.
  • Arch and Debian packages: system SQLite, Rust 1.98, and bookie launchers with tablepro aliases.

Fixed

  • SQL formatting dropping significant whitespace and literal prefixes.
  • BOOLEAN cells with mismatched bytes/text entering the inline editor.
  • PostgreSQL INTERVAL overflow and malformed INET/CIDR prefixes treated as NULL.
  • DuckDB identifier quoting and Redis read-only SELECT in the manual connection lab.
  • Debian fallback package installing tablepro while the desktop file launched bookie.
  • ClickHouse VerifyFull reporting a hostname mismatch as a dropped connection.
  • MongoDB VerifyFull reporting an IP-endpoint identity mismatch as connection refused.
  • Redis VerifyFull reporting an IP-endpoint identity mismatch as connection refused.

Security

  • Agentd session reuse after Secret Service or SSH/CA file rotation.
  • Unbounded PostgreSQL and MongoDB SCRAM iteration counts.