- Updated dependencies [1ada658]
- Updated dependencies [3219191]
- Updated dependencies [290f631]
- Updated dependencies [50b7b47]
- Updated dependencies [f15d6f6]
- Updated dependencies [f8684ea]
- Updated dependencies [b4765be]
- @objectstack/spec@9.3.0
- Updated dependencies [2f57b75]
- Updated dependencies [2f57b75]
- @objectstack/spec@9.2.0
- Updated dependencies [b9062c9]
- @objectstack/spec@9.1.0
- Updated dependencies [1817845]
- @objectstack/spec@9.0.1
- Updated dependencies [4c3f693]
- Updated dependencies [0bf39f1]
- Updated dependencies [f533f42]
- Updated dependencies [1c83ee8]
- @objectstack/spec@9.0.0
- @objectstack/spec@8.0.1
- Updated dependencies [a46c017]
- Updated dependencies [b990b89]
- Updated dependencies [99111ec]
- Updated dependencies [d5a8161]
- Updated dependencies [5cf1f1b]
- Updated dependencies [9ef89d4]
- Updated dependencies [3306d2f]
- Updated dependencies [bc44195]
- Updated dependencies [9e2e229]
- @objectstack/spec@8.0.0
- @objectstack/spec@7.9.0
-
f01f9fa: fix(formula): hydrate ISO date/datetime strings on CEL
no such overloadfault (#1530)Date-typed formula fields and date predicates always evaluated to
null:Field.date/Field.datetimeserialize to ISO strings, and cel-js compared the raw string against thegoogle.protobuf.Timestampfromtoday()/now()/daysFromNow(), raisingno such overload(swallowed to null). The existing numeric-string fault-retry (#1534) is now extended to also coerce strict ISO-8601 date/date-time strings toDatebefore retrying once, fixing every caller (formula fields, flow conditions, validation/workflow predicates). Hydration runs only after a fault, so clean expressions are never re-interpreted and genuine non-temporal strings still fault loudly. -
Updated dependencies [06f2bbb]
-
Updated dependencies [36719db]
-
Updated dependencies [424ab26]
- @objectstack/spec@7.8.0
-
825ab06: fix(formula): hydrate string-serialized numeric fields in CEL comparisons (#1534)
Numeric fields that serialize as strings —
Field.rating(allowHalf)→"5.0",Field.currency(scale)→"250000.00",Field.percent— made comparisons likerecord.rating >= 4fault under strict CEL withno such overload: dyn >= int. In flow decision/edge conditions this silently dead-ended the run (no edge matched), and in objectqlapplyFormulaPlanit swallowed tonull.The CEL engine now retries an evaluation once with purely-numeric strings hydrated to numbers, but only after a
no such overloadfault — so a comparison that already type-checks is never re-interpreted (a zip like"02134"stays a string inrecord.zip == "02134"). Because both the automation condition path (service-automationevaluateCondition) and the objectql formula path route throughExpressionEngine.evaluate, both are fixed consistently. A genuinely non-numeric operand (e.g.record.rating >= 4whereratingis"high") still faults loudly rather than being silently rescued. -
Updated dependencies [b391955]
-
Updated dependencies [f06b64e]
-
Updated dependencies [023bf93]
- @objectstack/spec@7.7.0
-
c4a4cbd: ADR-0032 (phase 1): validate-by-default expression layer — no silent failure.
Kills the #1491 class where a malformed predicate (e.g. the
{record.x}template-brace-in-CEL mistake) silently evaluated tofalseand made a flow "fire" with no effect:- service-automation: flow
evaluateConditionno longer swallows CEL failures tofalse— it throws an attributed, corrective error; andregisterFlownow parse-validates every predicate (start/decision/edge condition) at registration, failing loudly with the offending location + source + the fix. - formula: new shared validator —
validateExpression(role, src, schema?),introspectScope,CEL_STDLIB_FUNCTIONS— with schema-aware field-existence- did-you-mean. The
{{ }}template engine gains a formatter whitelist (currency/number/percent/date/datetime/truncate/upper/lower/default/…) with defined value→string semantics; arbitrary logic in holes is rejected. Plain{{ path }}stays back-compatible.
- did-you-mean. The
- cli:
objectstack compilevalidates every flow / validation-rule / field-formula predicate against the resolved object schema and fails the build with located, corrective messages. - service-ai: new agent-callable
validate_expressiontool so authoring agents self-correct before committing. - spec: fix the
FlowSchemaJSDoc example that taught the badcondition: "{amount} < 500"single-brace form.
- service-automation: flow
- Updated dependencies [955d4c8]
- Updated dependencies [c4a4cbd]
- Updated dependencies [b046ec2]
- Updated dependencies [2170ad9]
- Updated dependencies [02d6359]
- Updated dependencies [7648242]
- Updated dependencies [8fa1e7f]
- Updated dependencies [55866f5]
- Updated dependencies [60f9c45]
- @objectstack/spec@7.6.0
- @objectstack/spec@7.5.0
- @objectstack/spec@7.4.1
- Updated dependencies [23c7107]
- Updated dependencies [c72daad]
- Updated dependencies [f115182]
- Updated dependencies [2faf9f2]
- Updated dependencies [2faf9f2]
- Updated dependencies [2faf9f2]
- Updated dependencies [58b450b]
- Updated dependencies [82eb6cf]
- Updated dependencies [13d8653]
- Updated dependencies [ff3d006]
- Updated dependencies [5e831de]
- @objectstack/spec@7.4.0
- Updated dependencies [5e7c554]
- @objectstack/spec@7.3.0
- @objectstack/spec@7.2.1
- @objectstack/spec@7.2.0
- Updated dependencies [47a92f4]
- @objectstack/spec@7.1.0
- Updated dependencies [74470ad]
- Updated dependencies [d29617e]
- Updated dependencies [dc72172]
- @objectstack/spec@7.0.0
- @objectstack/spec@6.9.0
- @objectstack/spec@6.8.1
- Updated dependencies [6e88f77]
- Updated dependencies [c8b9f57]
- @objectstack/spec@6.8.0
- @objectstack/spec@6.7.1
- Updated dependencies [430067b]
- Updated dependencies [4f9e9d4]
- @objectstack/spec@6.7.0
- Updated dependencies [a49cfc2]
- @objectstack/spec@6.6.0
- @objectstack/spec@6.5.1
- @objectstack/spec@6.5.0
- Updated dependencies [f8651cc]
- Updated dependencies [f8651cc]
- Updated dependencies [0bf6f9a]
- @objectstack/spec@6.4.0
- @objectstack/spec@6.3.0
- Updated dependencies [b4c74a9]
- @objectstack/spec@6.2.0
- @objectstack/spec@6.1.1
- Updated dependencies [93c0589]
- @objectstack/spec@6.1.0
- Updated dependencies [629a716]
- Updated dependencies [dbc4f7d]
- Updated dependencies [944f187]
- @objectstack/spec@6.0.0
- Updated dependencies [bab2b20]
- Updated dependencies [fa011d8]
- Updated dependencies [b806f58]
- @objectstack/spec@5.2.0
- Updated dependencies [75f4ee6]
- Updated dependencies [823d559]
- @objectstack/spec@5.1.0
- Updated dependencies [2f9073a]
- @objectstack/spec@5.0.0
- Updated dependencies [2869891]
- @objectstack/spec@4.2.0
- @objectstack/spec@4.1.1
- Updated dependencies [2108c30]
- Updated dependencies [23db640]
- @objectstack/spec@4.1.0
- 15e0df6: chore: unify all package versions to a single patch release
- Updated dependencies [15e0df6]
- @objectstack/spec@4.0.5