Skip to content

Releases: maxgfr/feelc

v1.11.4

Choose a tag to compare

@github-actions github-actions released this 25 Jun 08:37

1.11.4 (2026-06-25)

Bug Fixes

v1.11.3

Choose a tag to compare

@github-actions github-actions released this 25 Jun 08:07

1.11.3 (2026-06-25)

Bug Fixes

  • ci: publish with the global OIDC-capable npm, not node_modules npm 10.x (c91c553)

v1.11.2

Choose a tag to compare

@github-actions github-actions released this 25 Jun 08:00

1.11.2 (2026-06-25)

Bug Fixes

  • ci: instrument npm OIDC publish to expose why ENEEDAUTH happens (ffae6e6)

v1.11.1

Choose a tag to compare

@github-actions github-actions released this 25 Jun 07:39

1.11.1 (2026-06-25)

Bug Fixes

  • ci: make npm publish robust, idempotent and visible (no more silent skips) (7cf7ee8)

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 25 Jun 06:56

1.11.0 (2026-06-25)

Features

  • ui,skill: light/dark design system + 3-channel Claude Code skill install (4e1e986)

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 21:30
6e08e63
ci: robust npm publish (NPM_TOKEN automation token or OIDC fallback)

Publishing is now done by scripts/release-publish.sh: it uses an NPM_TOKEN automation
token when the secret is set (bypasses 2FA; fatal on failure), and otherwise attempts
OIDC trusted publishing, skipping with a warning if it is not configured so the binary
release never fails. Pass NPM_TOKEN through the release job; bump CI node to 22. See
RELEASING.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 18:43
1e35a73
feat: publish @feelc/engine npm package with WASM and examples

v1.8.1

Choose a tag to compare

@github-actions github-actions released this 24 Jun 15:02
787713c
fix(verify,ui,vm): second-pass hardening of the reactive-inputs PR (#2)

A follow-up review of #1 surfaced one verifier soundness bug (exposed by
the correct `!= x` null fix), an eval/trace divergence, and several
reactive-simulator defects. All fixed, each with a repro-backed test.

verify:
- `unreachable-default` no longer fires when a null/missing input would fall
  through to the `default` line; it now requires a reachable catch-all rule to
  cover the all-null point (shared ir.MatchCell). Fixes a false "default is
  useless" on the credit example and idiomatic `< / >`-tiled tables.
  (OPNE-VERIFY-01/02)
- new `priority-gap` warning when a hit:priority rule outputs a value absent
  from the `priority:` list (was a silent rule-order fallback). (GLUE-002)

compiler:
- reject mixed-type enum members (`number in {1,2,"x"}` -> DSL005) so the
  verifier can't silently drop a member. (NE-1)

vm/service:
- TraceFull is demand-driven like Eval: an unreached-but-static erroring
  dependency no longer makes a full trace fail where Eval succeeds; the HTTP
  and WASM handlers also surface `traceError` instead of silently dropping the
  trace. (GLUE-001)

ui (internal/service/web/shared.js, the single source of truth):
- stale-response guard so a slow earlier /v1/run cannot clobber a newer result
- preserve the exact decimal token on the JSON<->widget round-trip (no f64
  rounding; removes a dead ternary)
- empty/invalid required inputs show a field-level hint and suppress the run
  instead of a cryptic global "unknown variable" error
- dim inputs that provably did not affect the outcome ("not used for this
  outcome") so first-hit short-circuiting is visible rather than confusing

go test ./..., go vet, gofmt all clean; all examples re-verified with no new
blockers (credit's false unreachable-default is gone).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 24 Jun 10:32
3984483
feat(ui,engine): reactive inputs UX + engine correctness fixes (#1)

Make input-editing fully reactive across both web UIs and fix six
correctness bugs surfaced by an adversarial engine audit.

UI — single source of truth (no more drift between the two front-ends):
- New internal/service/web/shared.js holds all transport-agnostic
  renderers + the reactive simulator; build.mjs copies it into the
  playground. serve --ui (HTTP) and the WASM playground now share it.
- Always-visible typed Inputs panel auto-built from the goal decision's
  required inputs (type/domain/unit hints); a decision selector.
- Two-way form <-> JSON sync (guarded, no ping-pong); input values are
  preserved across .rules edits; debounced live loop (source vs input).
- Decimal-exact submission: number inputs are sent as raw JSON number
  tokens (no JS Number() rounding) so the engine's exact decimals hold.
- Rich result card + readable trace (winning rule, justifying cells)
  and firing-path highlight on the decision graph; soft out-of-domain
  validation (non-blocking).
- New POST /v1/model candidate endpoint mirrors the WASM model() so the
  live loop is identical over HTTP and WASM.

Engine fixes (each repro-confirmed + adversarially verified, with tests):
- ir/match.go: `!= x` (OpNe) no longer matches null/NA (ADR 0003/0013).
- verify: numeric enum `in {1,2,3}` treated as a discrete set — fixes
  false completeness gaps and hidden dead rules.
- cmd/feelc run --json: decimals via modelinfo.JSONify (no "2E+3"),
  byte-identical to the HTTP service; trace decimals normalized too.
- third_party/feel: context-sensitive scanner so `a*3-1`/`10-1`
  subtract correctly, plus a unary-minus production (`-a`, `- 3`).
- vm/expr.go: defensive stack-underflow guard (clean error, no panic).

Deferred (logged): PRIORITY tables silently fall back to rule order when
an output is absent from the priority list — low severity, documented
rank() behavior; warrants a verifier diagnostic, not an eval change.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

v1.7.1

Choose a tag to compare

@github-actions github-actions released this 24 Jun 07:30
810a33c
fix: include cell expression variables in table dependencies