Skip to content

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 10:33
· 20 commits to main since this release

Added

  • Server panel Overview on every engine: memory, throughput, connections,
    replication lag and uptime drawn as bars, counters that only make sense as
    rates shown as rates, and metrics your role cannot read labelled rather than
    shown as zero. Postgres, MySQL, Redis, ClickHouse and MongoDB.
  • MongoDB gets a Sessions view ($currentOp) with a guarded kill, and Redis
    clients (CLIENT LIST / CLIENT KILL) now appear there too. Sessions are
    ordered longest-running first; RED never offers to kill its own connection.
  • Server panel auto-refresh, off by default, interval shown in the panel itself,
    floor of two seconds (behavior.server_refresh_secs).
  • Excel (.xlsx) export for any query result: streamed like every other export,
    numbers stay numbers and numeric-looking strings stay strings, stops at
    Excel's 1,048,576-row limit with a toast saying so.
  • Redis key export, in Commands (.redis), JSON, or DUMP (.rdbdump) format,
    scoped to the visible keys, the current filter, or the whole database. Streams,
    cancels cleanly, writes expiry as absolute deadlines, reports values a text
    format cannot carry, and auto-detects .rdbdump on import.
  • RedisJSON documents are first-class: they read as json, filter as their own
    type, and open in a document tree walked a level at a time, so a 200 MB
    document costs no more to open than a small one. Edit a single node or the
    whole document, create one from "New key", and two read-only agent tools map a
    document's shape or read one path. Offered only where the module is loaded.
  • Point the agent at things instead of describing them: drag a table, column,
    schema, query tab or selected rows onto the assistant panel, or use "Ask AI
    about this" in the schema tree. References resolve on send, not on drop.
  • File attachments in chat, dropped anywhere on the panel or added with the +
    beside the composer: text, images and PDFs, read off the UI thread at send
    time, with unsupported or oversized files refused in the composer with a
    reason. Attachments are always treated as data, never as instructions.
  • Reply length is a setting (Settings → AI, 16K by default, up to 64K) and a
    reply that still hits it is continued rather than failed. Conversations are
    compacted as they fill, with local trimming noted in the activity trace.
  • The usage gauge works on the API-key path too and reads the whole conversation,
    with the cost so far on its tooltip.
  • The agent pages through a large result with a cursor over the same streaming
    machinery the grid uses, so windows tile the result with no rows repeated or
    skipped and without re-running the query.
  • Answers show their sources: a numbered line above the prose, one chip per
    query, each linked to the exact call in the activity trace.
  • Queries are checked for join fan-out before the agent believes the number.
    Suspicious shapes get one extra pair of counts, and the agent is told the real
    numbers before it writes its answer. Nothing is blocked.
  • Review mode runs a turn's writes inside one open transaction that you commit or
    roll back at the end, on PostgreSQL, MySQL/MariaDB and SQLite. An unanswered
    review rolls itself back after two minutes.
  • Write approvals count rows first ("Affects 4,213 of 812,004 rows in
    public.orders", with three shown) and warn when a statement matches none. The
    count runs on a short budget and never delays the prompt.
  • The agent reads the queries you have run and your saved-query library for this
    connection, so it uses the join paths, filters and metric definitions you
    actually use. Same on Redis, for commands run and keys opened.
  • Per-connection knowledge file: plain markdown that rides in every chat's prompt
    on that connection, with "Learn this database" to draft one for review.
  • Many new agent tools. On SQL: FK graph, object DDL, cross-column value search,
    EXPLAIN with actual rows, health report, live sessions, schema and data diff,
    index advice. On Redis: key templates, deep collection and stream paging,
    consumer-group lag, clients, topology. On MongoDB: reference discovery, fetch
    by _id, current operations.
  • kv_set for the Redis agent: write a string, hash, set, sorted set, list or
    stream entry with optional expiry, behind the usual approval, which shows the
    exact commands.
  • The agent can hand you a file: a query result, a set of Redis keys or a
    collection, as CSV or JSON, offered as a card in the chat. Exported query
    results are not row-capped.
  • The agent can stop a runaway session, Redis client or MongoDB operation and
    create an index, each behind an approval naming the target. Destructive DDL
    stays unavailable.
  • MongoDB collections show their JSON-schema validator where one is declared, and
    the collection list reports storage size.
  • The work area holds any number of panes, as columns, rows or any nesting of the
    two, in the SQL, Redis and MongoDB shells. Dragging a tab shows exactly where
    it would land, including the first split of an undivided work area.
  • Pane keys: ⌘\ splits right, ⌘⇧\ splits down (both repeatable), ⌥⌘\ cycles
    focus, ⌥⌘W closes a pane into its neighbour, ⌘⇧↩ zooms a pane, ⌥⌘0 resets every
    divider to even shares.
  • The AI composer offers whichever on/off session settings the agent exposes as
    switches, including fast mode on Claude Code.
  • Hold Alt and every panel you can type or navigate in shows the single key that
    jumps to it, in all three shells (Redis had no keyboard focus movement at all
    before). Hint keys are letters from the home row out, so they stay typable on
    every layout. Trigger, hold delay and keys are settings
    (keymap.focus_overlay), including turning it off.

Changed

  • The AI composer's model, thinking level and permission mode sit in three equal
    slots on one line, keeping their place from the first frame instead of
    reshuffling as the agent reports what it supports.
  • Context usage is a ring, amber past three quarters and red past nine tenths,
    replacing the strip of token counts below the composer. The full breakdown and
    session cost are on its tooltip.
  • The prompt box starts four lines tall and grows with what you type, up to
    eight, before it scrolls.
  • ⌘\ splits the focused pane rather than toggling a fixed two-pane split;
    existing keymap.toml bindings keep working. Pane widths are held as
    proportions, so resizing the window widens every pane in step.
  • F6 and ⇧F6 cycle every panel on screen, in every shell, instead of the SQL
    shell's three fixed stops.
  • ⌥⌘1 / ⌥⌘2 / ⌥⌘3 are retired in favour of holding Alt. A keymap.toml binding
    them still loads, and those keys now cycle focus. The command palette lists
    every panel it can focus by name.

Fixed

  • Fixed the bug where ⌘W stopped closing tabs, along with most other shortcuts,
    until the window was clicked. Collapsing a panel, closing a pane or a focus
    shortcut on Redis could leave focus pointing at something no longer on screen;
    focus is now checked every frame and re-anchored to a real panel.
  • The breadcrumb's database picker belongs to its own pane. In a split it used to
    open in every pane at once and then do nothing, since each duplicate menu
    dismissed the others' click; each crumb now names and changes its own pane's
    database.
  • Each pane keeps its own tab-strip scroll position and editor/result divider,
    instead of sharing both across a split.
  • Superseding a Postgres query reliably cancels it at the server, including a
    cancel arriving between the statement being prepared and being run.
  • Importing from DBeaver, DBGate and DataGrip offers your Redis and MongoDB
    entries, not just the SQL ones, including entries stored as a single connection
    string, which now arrive filled in rather than as empty stubs.
  • A Redis glob or prefix search keeps scanning until it finds your keys, instead
    of reporting "No keys match this filter" when they sit beyond the first scan
    window. Combining a pattern with a TTL, favourite or tag filter no longer lets
    unmatched keys leak in from the second page on.
  • Assistant answers no longer run off the right edge of the panel: list items,
    plan steps, tool-call errors and long chips all wrap or ellipsize inside it.