You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>