Commit Graph
327 Commits
Author SHA1 Message Date
Ivan Miletic 0ea4ed76e9 fix: test cases 2026-10-01 22:57:06 +02:00
Stefan 2b892e15de fix: record affected documents at change time
Edits queue their path; before the next snapshot the engine walks dependents with a frozen copy of every recorded view (each dependent on the graph stack) and stamps affected documents with a sequence. Consumers read them via changes_since(cursor), so queries in between cannot absorb a change. Graph dictionary views now cover the combined import list, matching first-wins resolution.
2026-10-01 21:15:43 +02:00
Stefan c30964e192 feat: affected_by query returning documents whose diagnostics depend on changed files 2026-10-01 21:15:43 +02:00
Stefan 6d0ced5e78 perf: complete decision table checks without the full table check
Remove full_table_check and the 2,000-row cap; table verification now runs fully in live diagnostics, with work caps only as a runaway guard.

- Per-column row index (string/bool keys, numeric segment tree) of live rows for unreachable checks and compression
- Witness-first reachability before computing covers; lazy borrowed coverers
- Divide-and-conquer missing cases over column partitions
- Allocation-free set intersection/subset checks and in-place merges for string cells
- Findings cache keyed by table content, so unchanged tables are not re-verified
- Identical cells type-checked once per column; linear output type merge and dictionary/linter grouping
2026-10-01 16:22:06 +02:00
Ivan Miletic 6a5e9c1945 fix: decision table verification and diagnostic quick fixes
Verify tables in policies and graphs (unreachable, duplicate, missing cases, compress), budgeted live checks with an on-demand full check, and quick-fix data for redundant parentheses and ?? fallbacks.
2026-10-01 11:23:02 +02:00
GoRules Team 2e88387e7a chore(release): publish (#533) 2026-09-29 23:07:09 +02:00
GoRules Team 61862ab9ef chore(release): publish (#526) 2026-09-29 12:35:25 +02:00
stefan-gorules 4aba11edd3 fix: tolerate null inputs and enforce required policy inputs (#528)
- graph input and output validation treats null optional properties as
  absent (including inside anyOf/oneOf objects) and reports the real
  error when validation still fails
- remove the NULLABILITY_DIVERGENCE diagnostic
- policies enforce required inputs also without goals; a path is missing
  when absent or null unless a step along it is optional, checked after
  reference hydration, and computed entity fields are not inputs
2026-09-28 22:51:47 +02:00
stefan-gorules ffdfd807d1 feat: implement slots instead of natural language (#527)
* feat: implement slots instead of natural language

Replace the natural-language projection (`nl`) with engine-owned slot
completion: for a cursor position the engine classifies the slot being
edited (operand, operator, literal, member access, ...) and returns typed
options, literal facts and the expected type, for policies and graphs.

- zen-expression: new `slot` module (classification, literals, operators)
  and a lenient lexer mode for incomplete input; `nl` removed
- Intellisense: typed diagnostic codes with arguments, richer inspect for
  hover, dedicated parser error variants (messages unchanged)
- Engine: `Workspace::cursor_scope`, `slot`, `facts`; `rename_from` and
  `references_from`; editor spans in UTF-16 units; renames reach imported
  policies, `$nodes` reads, child graphs and output column heads; no `$root`
  completion in policies
- Node bindings: `slot`, `facts`, `cursorScope`, `slotBatch` replace
  `nl`, `nlTokenize`, `nlEncodeString`, `nlTokenizeBatch`

No change to expression evaluation: the VM, compiler, functions and the
default lexer path are untouched, and parser error messages keep their text.

* fix: harden slot classification, scopes and graph expectations

- restore master execution order; slot scopes hide writes of the edited
  block and its dependents instead of relying on block ranking
- token-start editing gated by slot state; operator, list and operand
  spans no longer splice into neighbouring tokens
- interval-aware bracket pairing for half-open and reversed intervals
- lenient lexer recovers from unknown characters (slots only)
- graph expected type follows switch and pass-through nodes and merges
  compatible output schemas
- sibling inference caps distinct values and analyses lazily
- deterministic overload return type display

* fix: order policy blocks by entity reads through closures and relationships

- record reads for `#.field` in closures so entity fields read through
  lists become dependencies
- link reads through derived lists (filter/map results) to the entity
  fields they carry and order the list after those fields
- evaluate entity blocks on single relationships, and demand entity
  paths for plain reads through relationships
- slot scopes keep the top-level variable when hiding written fields
2026-09-28 21:47:40 +02:00
stefan-gorules adf7cdf44a chore: add uniffi tests (#520)
* chore: add uniffi tests

* fix permissions in pipelines

* fix tests
2026-08-24 12:45:09 +02:00
GoRules Team a1f8c3e470 chore(release): publish (#519) 2026-08-24 10:08:40 +02:00
stefan-gorules 8594f9a5fb fix: correct readme examples and java native library loader (#518) 2026-08-24 09:52:58 +02:00
GoRules Team 6c0fbabba1 chore(release): publish (#517) 2026-08-22 13:27:31 +02:00
stefan-gorules 692ca2fe6b fix: improve READMEs across bindings (#516)
* fix: improve READMEs across bindings

* add readmes for crates
2026-08-22 13:10:37 +02:00
GoRules TeamandStefan 112b8dbd42 chore(release): publish (#507)
* chore(release): publish

* correct version of expression_repl to v2

* remove release-as property

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-08-20 19:43:55 +02:00
stefan-gorules 13722740a1 fix: number out of range panics (#506) 2026-08-19 11:01:36 +02:00
GoRules TeamandStefan 0a1c0c3ff5 chore(release): publish (#503)
* chore(release): publish

* correct versions

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-08-19 00:06:21 +02:00
stefan-gorules 7259ab28c3 fix: repair uniffi release pipeline and bump uniffi to 0.31 (#504) 2026-08-18 23:03:23 +02:00
GoRules TeamandStefan 83504fa639 chore(release): publish (#501)
* chore(release): publish

* correct versions

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-08-07 10:51:46 +02:00
stefan-gorules fe43b4c1d7 perf: general performance improvements (#500)
* perf: general performance improvements

* remove unsafe usages, further improve perf

* perf: add table indexing
2026-08-04 11:12:37 +02:00
GoRules TeamandIvan Miletic 32a8f12547 chore(release): publish (#499)
* chore(release): publish

* correct the release

---------

Co-authored-by: Ivan Miletic <vnmiletic@gmail.com>
2026-07-26 14:02:39 +02:00
GoRules TeamandIvan Miletic 6ed91ecb82 chore(release): publish (#497)
* chore(release): publish

---------

Co-authored-by: Ivan Miletic <vnmiletic@gmail.com>
2026-07-24 14:53:46 +02:00
GoRules TeamandStefan e17a808bae chore(release): publish (#495)
* chore(release): publish

* correct the release

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-22 16:47:46 +02:00
stefan-gorules c3b9de695b feat: search capability (#494)
* feat: search capability

* reduce false fuzzy matches count
2026-07-22 16:23:40 +02:00
GoRules TeamandStefan ad97b340b3 chore(release): publish (#491)
* chore(release): publish

* fix: correct cascade-bumped prerelease versions

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-22 11:38:23 +02:00
stefan-gorules 63b560c526 feat: workspace lints and type fixes (#492)
* feat: workspace lints and type fixes

* fix fmt
2026-07-22 11:17:49 +02:00
GoRules Team 717cbf5d80 chore(release): publish (#488) 2026-07-21 12:44:04 +02:00
stefan-gorules a9580c83d7 fix: reduce wasm memory limits (#489) 2026-07-21 00:19:22 +02:00
stefan-gorules 1818371c90 feat: implement new loaders across languages (#487) 2026-07-20 12:20:48 +02:00
GoRules Team fe4790bee4 chore(release): publish (#486) 2026-07-18 02:21:58 +02:00
stefan-gorules 4990a487cb fix: nodejs types and test timeout (#485) 2026-07-18 01:33:37 +02:00
GoRules TeamandStefan 7c8f847c6d chore(release): publish (#484)
* chore(release): publish

* fix prerelease versions

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-17 11:51:27 +02:00
stefan-gorules 8d1910cc4e feat: graph workspace and static analysis (#483) 2026-07-16 23:42:13 +02:00
GoRules TeamandStefan 48cc2e38d5 chore(release): publish (#482)
* chore(release): publish

* correct release versions

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-10 10:42:56 +02:00
GoRules TeamandStefan 68708fa057 chore(release): publish (#480)
* chore(release): publish

* fix incorrect version bump

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-08 13:49:07 +02:00
stefan-gorules b4b59eb7c5 feat: policy dictionary (#479)
* feat: policy dictionary

* remove enum references

* improve tests

* reset index.js and package.json
2026-07-08 13:21:03 +02:00
GoRules TeamandStefan d3cd7ccad9 chore(release): publish (#478)
* chore(release): publish

* correct release version

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-07-07 14:54:50 +02:00
stefan-gorules 6858c1bd04 feat: natural language (#477)
* feat: natural language

* fix cargo fmt
2026-07-07 13:12:46 +02:00
GoRules Team 7805da79f7 chore(release): publish (#475) 2026-06-29 14:18:59 +02:00
stefan-gorules b6fac7c7a6 perf: binding variable conversion (python and nodejs) (#474) 2026-06-29 13:56:52 +02:00
stefan-gorules 6c7bc27039 fix: uniffi add additional config fields (#473) 2026-06-29 13:54:19 +02:00
GoRules TeamandStefan c064ed0c4c chore(release): publish (#471)
* chore(release): publish

* hotfix version update and remove release-as from config

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-06-26 14:16:28 +02:00
stefan-gorules c76e618551 chore: disable gh release for napi (#469) 2026-06-26 13:18:42 +02:00
GoRules TeamandStefan bab9af86e4 chore(release): publish (#468)
* chore(release): publish

* hotfix 1.0.1-beta.0 version to 1.0.0-beta.1

---------

Co-authored-by: Stefan <stefan@gorules.io>
2026-06-26 12:00:10 +02:00
GoRules Team 0aa2a39ebc chore(release): publish (#462) 2026-06-25 15:19:46 +02:00
stefan-gorules a4cafd0346 chore: add benchmarks (#459)
* chore: add benchmarks for tier 1 languages

* improve fixtures

* fix cargo fmt
2026-06-25 13:38:33 +02:00
stefan-gorules 7f31af809d chore: improve release pipeline (#451)
* chore: improve release pipeline

* fix pipelines

* fix sccache

* update workflows

* fix workflow

* update workflow

* remove sccache and cross

* bring back sccache

* fix pipelines

* fix nodejs build

* fix pipelines

* move python to abi3 for future proofing

* fix workflow ordering bug

* gate releases via environment - configure go via release

* set release as 1.0.0-beta
2026-06-24 20:44:35 +02:00
stefan-gorules 6c0ca51354 feat: policy engine (#450)
* feat: policy engine

* fix: cargo fmt

* fix: resolve issues with miri
2026-06-23 18:51:47 +02:00
Bot 26bfaaa38a chore(release): publish uniffi 2026-03-18 14:43:54 +00:00
Bot a298550aa4 chore(release): publish uniffi 2026-03-18 13:23:43 +00:00