Stops the client-only dc.row_status column from being included in the editors/getdynamiccolvals request payload.
Intent
dc.row_status is synthesized entirely in the browser to give DC.ROW_STATUS-based formulas a real cell to reference - it never comes from the backend and must never be sent back to it. The submit path (saveTable()) already stripped it before its payload leaves the browser; the dynamic cell validation lookup did not.
Changes
Extracted the existing row-sanitizing helper (previously private to classifyRow.ts) into a shared withoutEditStatus utility under editor/utils/, with its own unit tests.
classifyRow.ts now imports the shared utility instead of defining its own copy.
dynamicCellValidation() in editor.component.ts now strips dc.row_status from the row before building the source_row payload sent to editors/getdynamiccolvals.
# Summary
Stops the client-only `dc.row_status` column from being included in the `editors/getdynamiccolvals` request payload.
# Intent
`dc.row_status` is synthesized entirely in the browser to give `DC.ROW_STATUS`-based formulas a real cell to reference - it never comes from the backend and must never be sent back to it. The submit path (`saveTable()`) already stripped it before its payload leaves the browser; the dynamic cell validation lookup did not.
# Changes
- Extracted the existing row-sanitizing helper (previously private to `classifyRow.ts`) into a shared `withoutEditStatus` utility under `editor/utils/`, with its own unit tests.
- `classifyRow.ts` now imports the shared utility instead of defining its own copy.
- `dynamicCellValidation()` in `editor.component.ts` now strips `dc.row_status` from the row before building the `source_row` payload sent to `editors/getdynamiccolvals`.
dynamicCellValidation() built its editors/getdynamiccolvals payload
from a raw dataSource row clone, which always carries the client-only
EDIT_STATUS column - unlike saveTable()'s submit path, nothing
stripped it before the request went out. Extracted the strip logic
(previously private to classifyRow) into a shared withoutEditStatus
util and applied it here too.
Yury
marked the pull request as work in progress 2026-08-11 08:28:35 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Stops the client-only
dc.row_statuscolumn from being included in theeditors/getdynamiccolvalsrequest payload.Intent
dc.row_statusis synthesized entirely in the browser to giveDC.ROW_STATUS-based formulas a real cell to reference - it never comes from the backend and must never be sent back to it. The submit path (saveTable()) already stripped it before its payload leaves the browser; the dynamic cell validation lookup did not.Changes
classifyRow.ts) into a sharedwithoutEditStatusutility undereditor/utils/, with its own unit tests.classifyRow.tsnow imports the shared utility instead of defining its own copy.dynamicCellValidation()ineditor.component.tsnow stripsdc.row_statusfrom the row before building thesource_rowpayload sent toeditors/getdynamiccolvals.