What's Changed
Improvements
- Widgets
- The calendar is now a widget type of its own rather than a custom widget bundled with Grist, and existing calendar pages move to it automatically. Only the events in view are drawn, so editing one cell no longer redraws them all. Double-clicking an event opens the Grist record card, as does dragging on empty space to create one, and Day and Week views cap at 20 events per day with a "+N more" label.
GRIST_SKIP_BUNDLED_WIDGETSno longer does anything (#2457)
- The calendar is now a widget type of its own rather than a custom widget bundled with Grist, and existing calendar pages move to it automatically. Only the events in view are drawn, so editing one cell no longer redraws them all. Double-clicking an event opens the Grist record card, as does dragging on empty space to create one, and Day and Week views cap at 20 events per day with a "+N more" label.
- Formulas
- The formula editor now completes the looked-up table's column names inside
lookupOne()andlookupRecords(). After a comma it offers the columns not yet used, plusorder_by(#2530)
- The formula editor now completes the looked-up table's column names inside
- UI/UX
- A confirmation for an action that cannot be undone now defaults to canceling. Cancel is highlighted and answers Enter, and the action button is red (commit)
- The "Invite people" dialog now says when invitation emails are not enabled on the installation. Install admins get a link to turn them on, and everyone else a button to ask an admin (#2482)
- API
- Internal / infrastructure
GRIST_SINGLE_PORTis now read only by the development server, unmuddling its meaning (commit)- A doc worker no longer claims a group at startup from a
groupshash in Redis, an unused mechanism. Setting a worker's group withGRIST_WORKER_GROUP, and marking a document for a group, are unchanged (commit) - Grist server processes are now hardened against prototype pollution (commit)
- The sandbox's environment variables are enumerated explicitly (commit)
- Importing a document now rejects any table or column id that Grist would not produce itself, so a hand-edited or foreign schema cannot introduce an unexpected one (commit)
Fixes
- The details of a formula error were unreadable in dark mode, light text on a light background. Contributed by @Federicorao (#2394)
- Grist reported a meaningless exit code when shut down by a signal, showing up as a failed unit under systemd. Contributed by @Mrmaxmeier (#2555)
- With
GRIST_PERSONAL_ORGS=false, a user who belongs to no team site was sent to a welcome page that listed no sites and offered nothing to do. It now says there are no sites available, with a button for install admins to create the first team site. Signed-out visitors get a sign-in prompt (commit) - When the full edition is turned on by environment variable, the Admin Panel stopped showing the activation key section, leaving no way to enter or change a key (commit)
- A table or column named after a built-in JavaScript property, such as
constructor, was not recorded correctly in document history and comparisons (commit)
Full Grist edition extensions
- MCP and the assistant
- The agent is now told to build summaries as summary tables rather than as ordinary tables.
add_page_widgetwithgroup_by_column_idsnow returns the id of the summary table rather than of the source table (commit)
- The agent is now told to build summaries as summary tables rather than as ordinary tables.
Contributions
- Grist Labs: @berhalak, @dsagal, @georgegevoian, @paulfitz
- @fflorent: a reason for disabling a user (#2526)
- @Federicorao: formula error color in dark mode (#2394)
- @Mrmaxmeier: exit code on shutdown by signal (#2555)
Translations
- Guillaume Luszack
- Martin Harari Thuresson
- Vri
Full Changelog: v1.7.18...v1.7.19
Join our Discord Community if you'd like to get into development of Grist.