github gristlabs/grist-core v1.7.20

4 hours ago

What's Changed

Improvements

  • Home page
    • The home page is redesigned, with a "Create a document" section (blank document, file import, templates) and a "Learn Grist" section linking to the video tour, tutorial, webinars, and Help Center (commit)
  • Formulas
    • While editing a formula, clicking a column in another table now inserts its name too, without $, ready for a lookup such as Films.lookupOne(Title=$Name) (#2547)
  • Accessibility
    • A new shortcut, Ctrl+I, moves focus within the panel or widget selected with Ctrl+O. In a widget, it reaches the header, making its sort and filter buttons usable by keyboard. In a panel, it jumps between key controls rather than every Tab stop. Contributed by @manuhabitela (#2441)
    • After pressing a button that hides itself, such as "Hide columns" in the right panel, focus stays in the panel rather than jumping back to the widget. Contributed by @manuhabitela (#2439)
  • Self-hosting
    • The default log level is now info rather than error, which hid important warnings. info messages leave out cell values. In JSON logs, error is always a string, and error messages appear as errorMessage (commit)
    • The docker-compose examples are reworked into five, from minimal local testing to a full setup with HTTPS, Keycloak, PostgreSQL, Redis, and RustFS (replacing MinIO, which is no longer maintained). Each has a README walking through first-time setup (commit, #2604)
    • S3-compatible storage settings now accept the GRIST_DOCS_S3_* prefix as well as GRIST_DOCS_MINIO_* (commit)
    • The formula sandbox check at startup now allows 10 seconds rather than 5, for slower servers. Contributed by @Mrmaxmeier (#2553)
  • Internal / infrastructure
    • Grist now checks the name under which it caches a REQUEST() result before using it as a file path (commit)
    • @xmldom/xmldom, used for SAML sign-in, is updated to 0.8.15, fixing several ways a crafted XML document could stall the server (#2562)

Fixes

  • Opening a document after it was closed for being idle could download it again in full from external storage, adding about ten seconds, despite an up-to-date local copy (#2575)
  • The Admin Panel said "Backups are not enabled" when documents were kept in S3-compatible storage (#2591)
  • With Deno 2.9.6 or later, the Pyodide sandbox did not start and documents could not open. Contributed by @Mrmaxmeier (#2605)
  • With no sign-in method configured, setting an install admin email left you signed in as someone else and locked out of the Admin Panel. New installations now sign you in as the admin email. Existing ones with a you@example.com user keep using it (commit)
  • Access rule checks could miss an action that followed an undo in the same request, including the check requiring permission to edit structure for changes that can affect formulas (commit)
  • Parsing a long, specially crafted DateTime value could stall the server (commit)
  • Charts showed DateTime values in UTC instead of the column's timezone (#2573)
  • Double-tapping a cell to edit it did nothing in Firefox for Android (#2592)
  • A document tour pointing at a missing row left an invisible layer blocking the page. The tour now closes instead (commit)

Full Grist edition extensions

  • Imports
    • "Copy data from another document", in the Add new menu, copies chosen tables from another document on the same installation, with or without their data, into the current document or a new one. Formula columns arrive as data, attachments are skipped, and the source's access rules apply. Also available as POST /api/docs/:docId/import/grist (commit)
  • MCP and the assistant
    • The home page can also start a new document from a description given to the assistant (commit)
    • New tools get_page_layout, set_page_layout, get_card_layout, set_card_layout, get_widget_options, and set_widget_options let the MCP agent and the assistant arrange pages and cards and set widget options (commit)
  • Grist Fleet
    • A new Admin Panel section lists the servers holding documents, with each one's address, group, load, document count, and status: running, draining (taking no new documents), or stopped reporting. Also available from GET /api/admin/servers (commit, commit)

Contributions

Translations

  • Arif Budiman
  • Gergely Turi
  • Kévin DUPOND
  • Martin Harari Thuresson
  • Michele Kappa
  • Yalin Sayi

Full Changelog: v1.7.19...v1.7.20

Join our Discord Community if you'd like to get into development of Grist.

Don't miss a new grist-core release

NewReleases is sending notifications on new releases.