Skip to content

Releases

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 17:46
6b8898d

What's Changed

  • Query files — open a JavaScript query from a .js file and save the active query back to
    disk (Ctrl+L / Ctrl+S in TUI, a toolbar action and the Files page in Web). TUI offers a
    native file/folder picker next to the typed path, and both interfaces remember the ten most
    recently opened or saved query files. by @AMEST in #17
  • Raw mongosh output — select Raw (stdout) before running a script in TUI or Web
    Script mode to display native shell output, including console.log and print, without JSON
    parsing and with spaces and line breaks preserved. Web downloads raw results as .txt.
    Choose Table, Tree or JSON and rerun the script to obtain structured documents again. by @AMEST in #18

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 06:38
e42b8f0

What's Changed

Added

  • Selected query execution — TUI and Web run the selected fragment, or the whole script
    when nothing is selected, from the Run action or keyboard shortcut. The full editor draft is
    preserved; history, document actions and result refresh use the executed fragment.
  • TUI editor navigation — Alt/Option arrows move by word, with Shift to extend selection.
    Terminals that send Esc+b / Esc+f are also supported. Cmd arrows require terminal mappings
    to Home/End because Terminal.Gui 2.5 does not expose a Cmd modifier.
  • TUI result scrolling — wide results show a horizontal scrollbar alongside keyboard navigation.
  • TUI query context — each tab shows its connection profile and database above the editor,
    including the URI/default database when no database was explicitly selected.
  • TUI query timeout completion — suggest maxTimeMS() in cursor method chains and place
    the caret inside its parentheses for entering a timeout in milliseconds. Document editing
    and automatic result refresh remain available for verified reads using maxTimeMS.
  • TUI query history — choose a saved connection, inspect the query, database, collection,
    date, status and duration, and reopen it in a new tab without executing it.
  • TUI syntax highlighting — JavaScript/JSON tokens are colored in query and document editors
    and history previews, preserving editing, autocomplete and selection.
  • TUI index details — show key fields, directions and uniqueness; require confirmation
    before dropping an index and disable dropping the built-in _id_ index.

Changed

  • TUI file dialogs start in the user's home directory on macOS, Linux and Windows.
    Exports suggest a portable filename with database, collection and timestamp; format changes
    update the suggested extension while preserving custom paths. Existing SSH key paths remain unchanged.
  • TUI document dialogs grow with the terminal height and reserve more space for the document editor.
  • Opening a collection in TUI immediately runs its generated find({}).limit(50) query,
    including opening it from the collection context menu. Closing a tab cancels its pending query.
  • TUI refreshes results after document insertion, editing and deletion by replaying the last
    verified read in its original tab, preserving the editor draft and selected tab.

Fixed

  • Plain arrows in TUI Results scroll immediately by one line or column, preserve the other
    scroll axis and keep focus at content edges, including when the hidden caret is on a short line.
  • Text context menus in TUI query/results and document editors use English/Russian labels and
    help text; the clear action is named Clear all text. Query menus update when the language changes.
  • Web Cmd/Ctrl+Enter runs the query instead of inserting a blank line through CodeMirror's
    default key binding; both this shortcut and F5 capture the current document and selection.
  • Query errors in TUI and Web include the underlying cause instead of only a generic failure;
    MongoDB URIs are redacted and diagnostics remain excluded from application logs.
  • Collection names are escaped as JavaScript string literals before generating TUI queries.
  • Pending TUI queries do not run twice or steal focus after switching tabs; delayed results
    are applied through the UI loop and never update a closed tab.
  • TUI index dialogs finish background loading and index creation inside nested windows
    without hanging on progress; failures and cancellation restore the controls.
  • Enter selects the highlighted action in the TUI connection tree context menu instead of
    dismissing it without running the action. Space still selects and Esc cancels.
  • Collection export failures are logged with database, collection, format and safe exception
    diagnostics, including errors handled by the TUI dialog; filters, output paths and credentials
    stay out of logs.
  • MongoDB Tools use the selected transfer database in the URI and preserve the original
    authentication source, avoiding conflicting database options and authentication failures.

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:56
ace96a0

What's Changed

Added

  • Local web interface — run mongo-tui web --open to browse databases and collections,
    execute JavaScript, view Table/Tree/JSON results, edit documents, manage indexes and use
    the AI assistant in a browser. The host listens only on 127.0.0.1 (port 8765 by default).
    Web assets are embedded in the existing executable; no separate frontend deployment is needed.
  • Web sign-in — master-password authentication or a single-use launch link for first setup
    and keyring/local-key-file modes, with expiring browser sessions, sign-out and revocation
    when security settings change.
  • Web user management — database and cluster permissions, user editing, password generation
    and one-time credentials, with localized errors, current-user protection and cancellation.
  • Web transfers and history — JSON array/JSON Lines import, canonical JSON Lines export,
    downloading displayed query results, and reopening saved history entries without executing them.
  • Query deadlines — a shared Settings → Queries timeout for TUI and Web: 30 seconds
    by default, 0 to disable. Web queries can also be cancelled from the workspace.
  • Application logs — a Web log viewer and persisted logging-level settings in both clients,
    with live updates and a diagnostic environment override.
  • Co-author credit — --version and Help → About credit Medvedev Denis (medved91)
    below Copyright in English and Russian.

Changed

  • Creating a database now asks for its first collection and creates it on MongoDB immediately.
    Saved connections stay visible in the explorer after disconnecting.
  • Both clients share document-editing and permission models, connection preparation and
    localization keys. Document text, copied data and default JSON exports use Canonical Extended JSON.
  • Framework-dependent builds now require the ASP.NET Core 10 runtime as well as the .NET 10 runtime;
    self-contained release archives include both. Source builds default to version 0.8.0.

Fixed

  • Nested TUI dialogs apply asynchronous results without hanging on saving/loading or requiring
    another keypress, including connection forms and document/user operations.
  • Opening a document reloads it by its original _id through the driver, preserving numeric
    types lost in shell output. Editing is refused when Extended JSON cannot preserve the loaded BSON.
  • Document actions keep the source of the executed query. Web refresh after saving uses the
    successful query snapshot and preserves an unsubmitted editor draft.
  • Web pagination commits the page only after a successful read, keeps the applied filter while
    preserving a draft, and retains the previous results after errors or cancellation.
  • Reaching the Web tab limit displays an error without ending the browser circuit; editor
    selection remains visible in the active line.
  • Security initialization checks persisted state before creating new key material. Failed Web
    password attempts do not lock an encryption key already unlocked by another session.

Known limitations

  • Saving replaces the complete document without detecting writes made after the editor opened;
    a concurrent update can be overwritten. Driver reads also normalize Double(-0.0) to +0.0,
    which is then persisted on save. See BSON editing limits.
  • Cancelling or timing out a write does not undo changes already accepted by MongoDB.
    Web transfers are capped at 32 MiB and exports at 10,000 documents; SOCKS transfers remain unavailable.

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 12:41
93770dd

What's Changed

  • User management — manage MongoDB users from the tree context menu: right-click a database,
    or a connection for the admin database. Create, edit and delete users, assign read /
    readWrite / dbOwner access per database and cluster roles (readAnyDatabase,
    readWriteAnyDatabase, clusterAdmin, clusterManager, clusterMonitor, root),
    generate passwords, preserve unmanaged roles on edit, and copy the password or a ready-to-use
    connection string after creating a user or changing a password.
    Passwords and connection strings are shown once and are never persisted or logged.

Full Changelog: v0.6.0...v0.7.0

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:49
51f00cd

What's Changed

Added

  • Security modes — choose on first launch how the encryption key is protected: a master
    password (default), the OS keyring on macOS and Windows, or a local KEK file with user-only
    permissions. The mode can be changed later in Settings → Security…; switching modes
    re-encrypts all saved secrets in one transaction.
  • Keyring integration on macOS and Windows via Latchkey. Linux supports the master-password
    and local-key-file modes.
  • Reset secrets in the security settings removes saved connection passwords and the AI API
    key, then lets you choose a new security mode.
  • Existing master-password installations are detected automatically and keep working without
    re-entering secrets.
  • Connection test feedback — show a localized running status immediately and disable
    Test until the request finishes. Results include a success/error label and error details;
    successful tests are green and errors are red.

Changed

  • Unlock secrets (F8) and Change master password (Ctrl+P) are available only in
    master-password mode.
  • Testing a connection no longer requires or fills in a profile name; a name is still required
    when saving. Connection strings and SSH settings remain validated.
  • Connection tests are cancelled after 10 seconds, with a localized timeout message and
    Test enabled again.

Fixed

  • Automatic unlock validates the key against every stored connection password and AI API key
    before accepting it or migrating legacy credentials; a mismatched key leaves secrets locked.
  • Resetting secrets also removes passwords embedded in legacy connection URIs. Connection forms
    strip URI credentials even when separate login/password fields are already populated, keeping
    explicitly entered values and filling missing fields from the URI.
  • Connection form errors and test results appear below all fields and above the action buttons,
    without overlapping authentication options. Status changes repaint without another keypress.
  • Locked-secret errors use the selected interface language in both the connection form and
    connection manager.
  • Connection test failures, including network timeouts, are displayed in the form with their
    cause instead of only being logged.

Full Changelog: v0.5.3...v0.6.0

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 20 Oct 13:40
227f700

Fixed

  • The connection manager shows and enables Copy URI only when a saved connection is
    selected; the button is hidden when no connection is selected or the list is empty.

Full Changelog: v0.5.2...v0.5.3

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 11:14
e76a168

Added

  • The AI assistant receives the active database, the database's collections and the sampled
    field names with their BSON types, so it can generate queries against the real schema.
  • The AI assistant dialog shows a requesting state and disables Ask while a request is
    in flight.

Changed

  • Release archives ship without debug symbols: publishing disables DebugType /
    DebugSymbols and removes leftover .pdb files from the artifact directory.

Fixed

  • In the AI assistant dialog, Enter in the prompt runs the request instead of closing
    the dialog.
  • The AI assistant runs the request off the UI thread and applies the response from the
    dialog's main loop, so the answer is shown and the dialog no longer stays stuck on
    Requesting….
    Full Changelog: v0.5.1...v0.5.2

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 16:23

What's changed

  • Running a query uses Ctrl+R (or F5) instead of Ctrl+Enter; some terminal emulators,
    notably on macOS, intercept Ctrl+Enter for their own context menu, and report
    Shift+Enter as a plain newline.
  • Saving or testing a connection fills empty login and password fields from credentials
    embedded in the URI, so a pasted connection string works without the From URI button.

Full Changelog: v0.5.0...v0.5.1

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 08:35

What's Changed

Added

  • Create database and collection — right-click a connection to add a database, or a
    database to create a collection. A new database stays in the tree until refresh or
    reconnect; creating its first collection persists it on the server.
  • New query — right-click a database to open an empty query tab bound to it, or a
    collection to open a tab with a ready-to-run find query, as with a double-click.
  • Empty database discovery — the tree also lists databases known from the connection
    URI, authentication source and granted privileges that the server's catalog omits.
  • Keyboard shortcuts dialog — Help → Keyboard shortcuts… lists every command and its
    hotkey, including why copy uses Ctrl+C on macOS.

Changed

  • Collection query tabs start from db.getCollection(...); mongosh already runs with the
    tab's database, so the getSiblingDB wrapper is no longer inserted into the template.
  • Index creation uses Unique and Background checkboxes instead of a y/n text field.

Fixed

  • Preserve the original document id during editing and deletion; reject id changes and
    report missing documents correctly, including unchanged replacements.
  • Resolve document actions from the executed query's database and collection. Disable
    editing and deletion for ambiguous scripts, projections, aggregations and results without ids.
  • Rotate the master password, connection secrets and AI API key in one SQLite transaction.
    Roll back on failure or cancellation and serialize concurrent secret storage operations.
  • Extract and encrypt credentials from full connection URIs before saving; migrate legacy
    profiles after unlock. Remove scripts, raw diagnostics and exception contents from logs.
  • Copy the selected text to the system clipboard with Ctrl+C in the editor, results and
    dialogs. When the platform clipboard is unavailable (headless Linux, SSH without xclip),
    the text is written through the OSC 52 terminal escape sequence instead of being dropped.

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 17:52
5c3f412

What's Changed

Added

  • Query editor autocomplete — press Ctrl+Space or choose Query → Autocomplete
    for database, collection and field names, including dotted paths through nested objects
    and arrays of documents.
  • Database selection — completing db. lists databases and inserts
    db.getSiblingDB("…"); collections can then be selected after the next dot and are
    inserted through getCollection("…"), including names that overlap with shell methods.
  • Method completion — db.get suggests getSiblingDB and getCollection; collections
    offer find, findOne, countDocuments and estimatedDocumentCount. Supported cursor
    chains offer limit, skip, sort, toArray and count after find(...) and limit(...).
    Method suggestions open automatically while typing a prefix or a dot after a supported call
    and require no database request.
  • Completion controls — filter suggestions while typing, choose with ↑ / ↓, insert
    with Enter / Tab, and dismiss or cancel loading with Esc. Method completion inserts
    parentheses and places the caret inside arguments, preserving existing call arguments
    when correcting a method name.

Changed

  • Collection fields are sampled from up to 20 documents, with nested paths up to eight levels.
    The field cache is scoped to the connection, database and collection, expires after one
    minute, and is cleared by F9 or running a query.

Fixed

  • Query execution now selects the tab's database before every run, so
    db.getCollection(...).find({}).toArray() works without an explicit getSiblingDB(...).
    Explicit database selection in the script still takes precedence; tabs without a selected
    database retain the connection's default database.
  • Completion replaces the entire name when the caret is inside a token, correctly handling
    escaped quotes, backslashes and Unicode escapes while preserving the surrounding query.
  • Pending completion requests are cancelled and stale suggestions discarded when editing,
    changing focus, switching or closing tabs, refreshing, or disconnecting.

Full Changelog: v0.3.0...v0.4.0