Skip to content

[pull] develop from baserow:develop#292

Merged
pull[bot] merged 7 commits into
code:developfrom
baserow:develop
May 15, 2026
Merged

[pull] develop from baserow:develop#292
pull[bot] merged 7 commits into
code:developfrom
baserow:develop

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 15, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

dimmur-brw and others added 7 commits May 15, 2026 11:41
…5372)

* fix: keep field_cache consistent during formula dependency cascade

* fix: clear cached_typed_internal_expression in clear_cached_properties

clear_cached_properties only cleared cached_untyped_expression and
cached_formula_type, leaving cached_typed_internal_expression stuck on
the pre-refresh value. Any caller that mutates a FormulaField in the DB
and then calls refresh_from_db on a held instance would still get the
stale typed expression, which masks bugs of the same shape as #5371.

* fix flaky test
* fix: convert BadSignature to InvalidVerificationToken in verify_email_address

* fix flaky test
* fix: guard guided tour highlight against missing target elements

Resolves #5377

* fix: hide highlight overlay when no target elements match

Toggle a separate `visible` flag instead of leaving `selector` set when
no elements match. Otherwise the .highlight div stays rendered with its
5000px dimming box-shadow over an empty 0×0 box, dimming the whole UI
without showing a target.

* fix: keep guided tour controls mounted when highlight has no target

Falling back to the centred position (the same path empty-selector steps
use) instead of unmounting the highlight root keeps the slot — including
GuidedTourStep's Next/Finish controls — visible, so users can always
advance or finish the tour.
…Type (#5364)

`FormulaField` allows every date option (`date_format`, `date_include_time`, `date_time_format`, `date_show_tzinfo`) to be NULL because a single row can morph between formula types. For a date-typed formula, however, only `date_force_timezone` is semantically nullable — see `BaserowFormulaDateType.nullable_option_fields`.

When that invariant is violated by an existing row (NULL for a supposedly required option), `construct_type_from_formula_field` built a `BaserowFormulaDateType` carrying those NULLs. The first downstream consumer to access them — `DateFieldType.get_search_expression` building a search expression for `update_search_data` — crashed in `get_date_time_format` with `KeyError: None` (723 occurrences observed in production).

Normalize at the type-construction boundary: when a non-nullable option is NULL on the row, substitute the type's documented default (ISO / False / "24" / False). Downstream code keeps its non-defensive shape, and the same fix protects every other consumer (`get_export_value`, `contains_query`, `get_alter_column_*`).

Fixes #5363
`BaserowIndex.to_django_expression_given_args` assumed that
`type_function_given_valid_args` had already augmented every call from 2
to 4 arguments by appending the array sub-type's mode and SQL template
literals. When the augmentation has not run, accessing args[2]/args[3]
raises `IndexError: list index out of range` and breaks endpoints that
evaluate the formula (row create/update/delete, batch operations, and
application-builder dispatch).

Fall back to the generic text extraction defaults when fewer than four
arguments are present so the function degrades gracefully instead of
500ing.

Fixes #5320 / Sentry BASEROW-SAAS-BACKEND-GT
@pull pull Bot locked and limited conversation to collaborators May 15, 2026
@pull pull Bot added the ⤵️ pull label May 15, 2026
@pull pull Bot merged commit e240757 into code:develop May 15, 2026
4 of 5 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants