{{ message }}
Repository navigation
Tags: Ordo-Engine/Ordo
Tags
chore: release 0.9.1 (#203) * chore: release 0.9.1 Bump crates and the npm wrapper to 0.9.1 to ship #202. * chore: upgrade tonic to 0.12 to drop rustls 0.21 tonic 0.10's TLS stack pulled in rustls 0.21.12, which has RUSTSEC-2026-0346 and RUSTSEC-2026-0349 and no fixed 0.21 release. tonic 0.12 uses rustls 0.23, so cargo deny passes again. - tonic 0.10 -> 0.12, prost 0.12 -> 0.13, tonic-build 0.10 -> 0.12; generated gRPC code regenerated. - UDS test client wraps UnixStream in hyper_util's TokioIo (hyper 1 IO traits).
chore: release 0.9.1 (#203) * chore: release 0.9.1 Bump crates and the npm wrapper to 0.9.1 to ship #202. * chore: upgrade tonic to 0.12 to drop rustls 0.21 tonic 0.10's TLS stack pulled in rustls 0.21.12, which has RUSTSEC-2026-0346 and RUSTSEC-2026-0349 and no fixed 0.21 release. tonic 0.12 uses rustls 0.23, so cargo deny passes again. - tonic 0.10 -> 0.12, prost 0.12 -> 0.13, tonic-build 0.10 -> 0.12; generated gRPC code regenerated. - UDS test client wraps UnixStream in hyper_util's TokioIo (hyper 1 IO traits).
fix(server): make call_rule_set and $data work, release 0.9.0 (#201) ordo-server ran every ruleset with an executor that had no resolver, so a call_rule_set action always failed with "CallRuleSet requires a resolver". External data was injected as an input field named "$data", but rules read "$data.x" as a variable lookup, so the value was always missing and conditions on it were silently false. - core: `$name` paths fall back to an input field of the same name when no variable matches, so `$data.<name>.<path>` reads injected data (server and `ordo exec --data`). - core: `execute_with_resolver` passes a resolver per run, so one shared executor can serve every tenant. A call with `input_mapping` keeps `$data`. - server: one store read gives the ruleset, the tenant's data and a snapshot of every ruleset it can reach through calls. Used by execute, batch, pipeline, gRPC (single and batch), the decision gateway and debug execute. Batch and gRPC now also get `$data`. - server: with multi-tenancy, external data was saved under tenants/<id>/data but loaded from tenants/tenants/<id>/data, so it was lost on restart. - docs (en, zh): call_rule_set, external data, data endpoints. - bump crates and npm wrapper to 0.9.0 (also ships #198).
fix(server): make call_rule_set and $data work, release 0.9.0 (#201) ordo-server ran every ruleset with an executor that had no resolver, so a call_rule_set action always failed with "CallRuleSet requires a resolver". External data was injected as an input field named "$data", but rules read "$data.x" as a variable lookup, so the value was always missing and conditions on it were silently false. - core: `$name` paths fall back to an input field of the same name when no variable matches, so `$data.<name>.<path>` reads injected data (server and `ordo exec --data`). - core: `execute_with_resolver` passes a resolver per run, so one shared executor can serve every tenant. A call with `input_mapping` keeps `$data`. - server: one store read gives the ruleset, the tenant's data and a snapshot of every ruleset it can reach through calls. Used by execute, batch, pipeline, gRPC (single and batch), the decision gateway and debug execute. Batch and gRPC now also get `$data`. - server: with multi-tenancy, external data was saved under tenants/<id>/data but loaded from tenants/tenants/<id>/data, so it was lost on restart. - docs (en, zh): call_rule_set, external data, data endpoints. - bump crates and npm wrapper to 0.9.0 (also ships #198).
Gateway works behind TLS proxies; jev-routing samples use real Jev an… …swers (#189) * server: trust the system CA store for the decision gateway upstream reqwest was built with webpki roots only, so behind a TLS-inspecting proxy every gateway call failed with 'error sending request' (502). Adding rustls native roots keeps the bundled roots and also trusts certificates installed on the host. Found while running the jev-routing samples against real Jev through OpenRouter. * examples: jev-routing samples use real Jev answers The four samples now store answers recorded from typesafe/jev-1.13 through OpenRouter instead of hand-written ones. The 'what are my options' blender message comes back as refund 0.97, so it is auto refunded; the README now tells that story. route.mjs calls the real endpoint /api/v1/systemone, and the gateway example uses the OpenRouter model id.
chore(cli): release 0.7.0 (#181) * feat(cli): ordo impact — show which decisions a rule edit changed Runs the baseline ruleset (git HEAD by default, or --base REV / --base-file) and the working-tree version over the same inputs and lists every input whose code, message or output changed, grouped by code transition. Inputs are the ruleset's test cases, optional captured decisions (--inputs JSONL), and boundary probes: for each comparison between an input field and a literal in either version (branch conditions and decision-table cells), the test inputs are re-run just below, at and just above the literal. A moved threshold shows up even when the tests still pass. Also exposed as the `impact` MCP tool, documented in the scaffolded AGENTS.md as the last step before an edit is done, along with decision_table steps and inputSchema. * chore(cli): release 0.7.0 Ships `ordo impact` (#180) and the engine work since 0.6.1 (decimal, input schema, expression strings, decision tables) to npm. Adds `impact` to the CLI and MCP docs pages.
PreviousNext
