Repository navigation
feat(event-script): quoted text bounds, exact decimal bounds and the lookup's list and separator checks - twin of the Java refinement (Increment 178) - #381
Merged
Conversation
…lookup's list and separator checks - twin of the Java refinement (Increment 178) Eric's rulings on an independent review of the range plugins, mirrored line for line: a bound is a canonical number, quoted text (single or double quotes, compared as written and case-sensitively, the separator allowed inside) or unquoted text (compared without case, as before); Range::parse refuses a list or map band, a second separator outside quotes, an unmatched quote, an empty quoted bound and a mix of kinds, and caches a numeric bound as a BigDecimal; typed_number answers a whole number as an integer and any other number as its exact decimal text, the DECIMAL convention, which f:double converts for a floating-point output value. Pinned by the shared range-bounds-vectors.json (52) and range-lookup-vectors.json (48), the extended fixture unit-test-range-bounds-1 and the unit tests; docs, the mirrored help page and the redeployed bundle; CHANGELOG Unreleased item 1 rewritten; INCREMENTS 178.
acn-ericlaw
added a commit
that referenced
this pull request
Oct 11, 2026
… - quoted bounds, exact decimal bounds, the lookup's checks; twin of the Java #555 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
acn-ericlaw
added a commit
that referenced
this pull request
Oct 11, 2026
… open Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Increment 178, the twin of the Java Accenture/mercury-composable#555: the maintainer's rulings on an independent review of
f:rangeLookup,f:minRangeandf:maxRange.'0020',"2026-11-15") compares as written and case-sensitively, and the quotes keep a zero-padded code or a case-sensitive band as text; a quoted bound may contain the separator. Unquoted text compares without case, as before, so every table of v4.12.23 behaves the same. A range, and every band of a table, is one kind; a mix is refused by name, with the hint that a leading zero makes text and that quoting both bounds compares them as text.f:minRangeandf:maxRangeanswer a whole number as an integer and any other number as its exact decimal text, theDECIMALconvention where a float would round it;f:doubleconverts it when a floating-point output value is wanted, and the guides say so...outside quotes (a..b..c,1...2), an unmatched quote and an empty quoted bound; a numeric bound is parsed once when the table is read.Pinned by the shared
range-bounds-vectors.json(52 vectors) andrange-lookup-vectors.json(48), both byte-identical with the Java repository and green on the first run, the extended fixtureunit-test-range-bounds-1(a fee band table with decimal bounds read back as text and converted withf:double; a quoted zero-padded product-code table) and the unit tests. Docs: the syntax guide, the skills reference, the AI agent guide, the mirrored help page and the redeployed bundle (index-DPKAiH17.js); CHANGELOG Unreleased item 1 rewritten to the final semantics; INCREMENTS 178.Why
The review found that a band written as a list was read as text, that zero-padded codes made a table mixed with no way to say "text", and that a decimal bound lost precision as a float. Quoting makes the author's intent explicit, exact text keeps the engine's high-precision rule, and the new refusals turn two silent wrong answers into messages.
Verification
cargo test -p mercury-event-script --lib range --test range_bounds_vectors --test range_lookup_vectorsandcargo test -p mercury-knowledge-graphgreen;cargo clippy --workspace --all-targets -- -D warningsandcargo fmt --all --checkclean;scripts/check-doc-claims.py(50 claims) andscripts/check-llms-links.py(39 references) OK.🤖 Generated with Claude Code