What's Changed
New features
- Row numbers, row IDs, or neither. A new "Row numbers" setting on grid widgets, in Grid Options and in a menu at the grid's top-left corner. Choose Numbers (position in the current sort, as before), Row IDs (bracketed like
[15], matching how references render), or Hidden, which collapses the left-hand gutter. Addresses #220, open since 2022, and #1927. (#2448) - Setup checklist for notifications and automations. Notifications, automations, invite emails, and the AI assistant each need plumbing behind them (an email backend, a Redis queue, an AI provider, the full edition), and when a prerequisite is missing the feature simply isn't there. Document Settings now lists what's ready and what each unfinished feature is waiting on. Users can press "Ask the admin" to request a step; admins see the requests in a new Admin Panel item. (commit)
- Switch to the full edition from the Admin Panel. Previously this meant changing Docker image. Now it's a button, in the Admin Panel or the first step of Quick Setup: the server downloads the extensions matching its own version, checks their SHA-256, and restarts in place. Offered on release builds only, not on
main, nightlies, or dev checkouts.GRIST_EXT_FULL_EDITION_BASE_URLpoints it at a mirror, or turns it off for air-gapped installs. (#2450) - "Help us improve" in Quick Setup. First-time setup now ends with an optional card: how you heard about Grist, what kind of user you are, and a switch subscribing an email address to product and security updates. It appears during setup only, and if you leave it blank nothing is sent at all. What you fill in goes to Grist Labs, along with your installation ID. (commit)
Improvements
- Accessibility
- Modals and popups are announced as dialogs by screen readers, and Tab is trapped inside an open modal. Fixes a Mousetrap bug that let keyboard focus wander behind a modal. Contributed by @manuhabitela (#2371). Keyboard focus now works from the tooltip-style popups inside modals as well (commit)
- API
- Temporary row IDs are now translated inside RefList values, not just Ref values and row-ID positions. Rows that reference each other through RefList columns can be created in one bundle (#2477)
- UI/UX
- The Grist edition and version show in the left panel footer, with links to compare editions and to release notes. Previously visible only in the Admin Panel (#2470)
- Internationalization
- Documentation
documentation/database.mdis back in sync with the schema, with a regenerated home DB diagram. Contributed by @fflorent (#2458)- Freshened the comments that feed the generated reference on support.getgrist.com, with formatting fixes and a broken link repaired (#2462)
- The README caught up with the last several releases: accessibility, Automations, OAuth apps, the MCP server, three new environment variables, and a table of full edition feature flags (#2443)
Fixes
- "View as" is preserved for attachment previews and whole-document exports, which previously resolved as the document owner (#2478)
- An Airtable reference column holding a single value imported as unusable text rather than a working reference, leaving the raw Airtable ID behind as alt text (#2446)
- Airtable count columns no longer error when the column they count was imported as a Ref rather than a RefList (#2447)
- In Markdown cells at a max row height, wrapped list items could overlap the lines below (#2465)
- Improved error reporting when comparing documents via the API (
/compare) (commit) - The server could crash when a client disconnected part-way through a proxied request (commit)
- The "reachable" self-check reported a false failure whenever anonymous access was disabled (#2420)
- Redirects when
GRIST_PERSONAL_ORGSis disabled have been improved (#2420)
Full Grist edition extensions
- OAuth apps
- Re-authorizing a client pre-selects the resources you granted before instead of resetting the grant to everything, and skips the account picker when it can identify the account. Switching accounts no longer invalidates the previous account's tokens (commit)
- A server without
GRIST_ENABLE_OIDC_SERVERexplains how to enable OAuth apps, instead of rendering UI over endpoints that 404 (commit)
- MCP
- A banner on the home page and a card on the OAuth apps page explain how to connect using MCP. See the MCP docs (commit)
- Clients passing a document's urlId in place of
doc_idno longer get "Doc belongs to a different DocWorker" (commit) - Document calls now travel to the server holding the document through the same forwarding as the rest of the document API, rather than MCP's own, which means MCP works with Fleet (commit)
- Grist Fleet
- New. Any Grist server in a pool of servers will now proxy WebSocket connections and document API calls to whichever peer server holds the document. Every server can then be deployed the same way behind a load balancer, with no separate home / static / doc worker configuration. Requires
GRIST_FLEET=trueand theinstallationFleetfeature in an Enterprise activation key (commit)
- New. Any Grist server in a pool of servers will now proxy WebSocket connections and document API calls to whichever peer server holds the document. Every server can then be deployed the same way behind a load balancer, with no separate home / static / doc worker configuration. Requires
Contributions
- Grist Labs: @berhalak, @dsagal, @georgegevoian, @paulfitz, @Spoffy
- @manuhabitela: keyboard and screen-reader support in modals and popups (#2371)
- @fflorent: refresh and expand the database documentation (#2458), localize remaining UI strings (#2451)
Translations
- Barna Kovács
- linke
- Martin Harari Thuresson
- npluto
Full Changelog: v1.7.16...v1.7.17
Join our Discord Community if you'd like to get into development of Grist.