70f8372fbc43c0e880d3aebaa5a535814a96feb8
Engine gap: the 'automation.record.update' event carries changedFieldIds (and now oldFields), but RecordUpdatedTrigger.accumulate() dropped both — scripts had no way to see what changed or pre-update values, despite the documented trigger output (trigger-types.md). - record-updated/record-condition/record-created-or-updated triggers: pass changedFieldIds + oldFields through to accumulate() - batch-buffer TriggerEvent += oldFields; batch flush records[] entries now carry changedFieldIds + oldFields per record - v2 updateRecord/updateRecords: emit oldFields (pre-update snapshot) - v1 controller updateRecord/updateRecords: snapshot before-fields via getRecordsById, compute changedFieldIds (deep-equal diff, same semantics as v2) instead of hardcoded [] — v1/v2 parity - new spec record-updated.trigger.spec.ts (4 tests, passthrough + watch-filter + table isolation); workflow suite 16 files / 99 tests - trigger-types.md: document semantics + honest scope (REST API writes; ShareDB grid edits do not fire this trigger) Live-verified: PATCH 流转角色 → trigger_input.changedFieldIds=[fld...], oldFields=[售前客服] → record=[技术]; script reads oldRole via triggerInput; fieldIds watch-filter blocks non-watched fields.
Description
No description provided
635 KiB
Languages
TypeScript
66.4%
Python
24.8%
Shell
8.1%
JavaScript
0.7%