v1.7.19
cheaper-inference/OmniRoutev1.7.19Sep 6, 2026by paulfitz
Upgrading?
AI Summary
The calendar widget is now a standalone type, the formula editor offers column completion, and the API now supports a reason for disabling users. Dark mode formula errors are also fixed.
Key Highlights
- Calendar widget becomes a standalone type rather than a bundled custom widget
- Formula editor auto-completes looked-up table column names inside lookup functions
- API endpoint for user disable now accepts a reason parameter
- Fixed unreadable formula errors in dark mode
New Features
- Standalone calendar widget with Day and Week views
- Lookup column name completion in formula editor
- User disable reason in API
Full Release Notes
## 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_WIDGETS` no longer does anything (#2457) * Formulas * The formula editor now completes the looked-up table's column names inside `lookupOne()` and `lookupRecords()`. After a comma it offers the columns not yet used, plus `order_by` (#2530) * 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](https://github.com/gristlabs/grist-core/commit/bfa03d6c)) * 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 * `POST /api/users/:userId/disable` now accepts a `reason`, shown to the user when they try to sign in. Contributed by @fflorent (#2526) * Internal / infrastructure * `GRIST_SINGLE_PORT` is now read only by the development server, unmuddling its meaning ([commit](https://github.com/gristlabs/grist-core/commit/ce0df091)) * A doc worker no longer claims a group at startup from a `groups` hash in Redis, an unused mechanism. Setting a worker's group with `GRIST_WORKER_GROUP`, and marking a document for a group, are unchanged ([commit](https://github.com/gristlabs/grist-core/commit/47f7f8ff)) * Grist server processes are now hardened against prototype pollution ([commit](https://github.com/gristlabs/grist-core/commit/da2a1fe9)) * The sandbox's environment variables are enumerated explicitly ([commit](https://github.com/gristlabs/grist-core/commit/596b32ac)) * 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](https://github.com/gristlabs/grist-core/commit/c516f8a3)) ### 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](https://github.com/gristlabs/grist-core/commit/faa59dab)) * 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](https://github.com/gristlabs/grist-core/commit/09d05050)) * A table or column named after a built-in JavaScript property, such as `constructor`, was not recorded correctly in document history and comparisons ([commit](https://github.com/gristlabs/grist-core/commit/cdb5286a)) ### 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_widget` with `group_by_column_ids` now returns the id of the summary table rather than of the source table ([commit](https://github.com/gristlabs/grist-core/commit/0cf5f5f3)) ## 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**: https://github.com/gristlabs/grist-core/compare/v1.7.18...v1.7.19 [Join our Discord Community](https://discord.gg/MYKpYQ3fbP) if you'd like to get into development of Grist.
Related Repositories
openclaw/openclaw★ 392,696
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,068
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,715
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,674
The open source coding agent.
n8n-io/n8n★ 208,251
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.