Repository navigation
Prepares the 0.6.0 release - #204
Merged
Merged
Conversation
The fragment for the forged non-finite float refusal named the new refusals but not one more answer only such an object sees: used as a contextPut path segment, it is now carried in the error's details as the absence, where it was carried as itself, because the details read the segment through the value boundary that now refuses it. The location text and the message are unchanged. One clause is added to the fragment ahead of the 0.6.0 promotion, so the promoted bullet carries it. The change touches no TypeScript and no gated path, so it has no gate to run. Refs: pts-h572
The fragment for the date-against-datetime member change said an ordering that reaches such a pair now puts the date member first where it ordered the two by instant. Some such orderings answered the absence instead: a pair at the same instant was stepped past as equal and a later member that does not order decided the answer. Those now answer a boolean too, as the reference does. The fragment says so, ahead of the 0.6.0 promotion, so the promoted bullet carries it. The change touches no TypeScript and no gated path, so it has no gate to run. Refs: pts-h572
The fragment for the out-of-range integer rendering said an integer literal past the safe-integer bound now decompiles with the digits it was written with. That holds for an integer literal outside a duration; a duration's component past the bound still renders the host's rounded value (holds == 99999999999999999999d decompiles as holds == 100000000000000000000d on this head), which a follow-up covers. The fragment is scoped to match, ahead of the 0.6.0 promotion, so the promoted bullet carries it. The change touches no TypeScript and no gated path, so it has no gate to run. Refs: pts-h572
A minor: ProjectedEvaluation is new on the ./tagged subpath, naming what evaluateTagged answers, and some answers change, each named in a Changed or Fixed bullet: a host Date's type name, a date member against a datetime member, a list ordering over a member holding the null value, the rendering of an out-of-range integer literal outside a duration, the place budget on the plain projection and the JSON builtin, the boundary refusal of a forged non-finite float, a revoked proxy as a contextPut path segment, and the article in two location refusal messages. No public name is removed or renamed. The version moves in package.json, its only carrier. Every changelog fragment is promoted byte for byte under a 0.6.0 section dated from the local clock and placed above 0.5.0's, grouped under Added, Changed and Fixed in that order and in fragment-name order within each, and is deleted here; changelog.d keeps only its README. The README's install pin moves to the new version. Those are every file a release commit here may touch. Run: the full pnpm gate green on this exact tree under node v24.21.0, and npm pack --dry-run built through the publish guard, which passed all three of its properties and listed 50 files for @riddler/predicator@0.6.0. The tag and the publish are not done here. Refs: pts-h572
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.
Prepares the
@riddler/predicator0.6.0 release: three fragment wording edits, then the version bump, the changelog promotion and the README install pin, worked by hand from.claude/wurk/release.md(the kit's release recipe does not implementkind: npm). A minor, decided by the conductor under a standing consent, 2026-10-03.Commits
Three fragment edits ride their own commits ahead of the release commit, so the promoted bullets carry their wording byte for byte. Each touches only one file under
changelog.d/, which is neither TypeScript nor a gated path, so each has no gate of its own; the release commit's gate covers the tree they leave.Names the forged float's path-segment detail(changelog.d/pts-ztsx.md): a forged float whose field is not finite, used as acontextPutpath segment, is carried in the error's details as the absence, where it was carried as itself; the location text and the message are unchanged. The details read a segment through the value boundary (segmentValueinsrc/location.ts), which now refuses such an object (fromHostinsrc/values.ts).Names the ordering that answered the absence(changelog.d/pts-5u1q.md): an ordering that reaches a date member against a datetime member puts the date member first where it ordered the two by instant "or answered the absence".Scopes the integer rendering to outside a duration(changelog.d/pts-7w7e.md): the rendering-as-written bullet is scoped to an integer literal outside a duration. A duration's component past the safe bound still renders rounded on this head (holds == 99999999999999999999ddecompiles asholds == 100000000000000000000d); a follow-up covers it.Prepares the 0.6.0 release: the release commit below.Provenance: the acceptance's "no other file changed" is scoped to the release commit, with the fragment edits in their own commits ahead of it, decided by the conductor under a standing consent, 2026-10-04.
What the release commit changes
Exactly the four kinds of file the release extension's table names, and no other:
package.json:"version"0.5.0 -> 0.6.0, nothing else.CHANGELOG.md: a new## [0.6.0] 2026-10-04section directly above 0.5.0's, dated fromdate +%Fon the machine cutting the prep (the operator's local date), with a short lead paragraph, then### Added,### Changedand### Fixedin that order, each fragment's bullet carried byte for byte in fragment-name order within its heading. No link-reference line.changelog.d/: every fragment deleted (pts-1wd,pts-50hb,pts-5u1q,pts-5uod,pts-7w7e,pts-9jds,pts-av9e,pts-r69a,pts-ztsx); the directory keeps only itsREADME.md.README.md: the install pinpnpm add @riddler/predicator@^0.5.0->^0.6.0.The closed-set question
Read: every promoted fragment, and
git log v0.5.0..6a6ce6d -- src/, which lists these commits (oldest first here).18c7d54Answers a revoked proxy segment as a value6fc34abRefuses a float whose field is not finitef631424Bounds the projection and JSON walks by placesdffa83aNames a host Date a datetime in typeName266719dFixes the article in two location refusals9763206Tells a date member from a datetime member08a74f1Orders a null list member as the reference doesc901cc0Renders an out-of-range integer as writtenb8c02e1Computes the exact-places bound from the table9a2fb80Exports evaluateTagged's result type by nameNew members of a closed vocabulary. One:
ProjectedEvaluation, a type export on./tagged(theexport type { ProjectedEvaluation }re-export insrc/tagged.ts, pinned intest/export-surface.json). No reason union, type-name union or other export gains a member:src/errors.tsis unchanged in the range, notype ... =union line changes anywhere undersrc/, and the reasons the changed answers use (place_budget_exceeded,non_finite_number,not_a_container,invalid_index) each already appear undersrc/atv0.5.0.typeName's new answer for a hostDateis"datetime", an existing member.Removed or renamed public names. None.
git diff v0.5.0..6a6ce6d -- test/export-surface.jsonaddsProjectedEvaluationand removes nothing. Read independently through the TypeScript checker's module exports: the main entry (src/index.ts) exports the same names atv0.5.0and at this base, and./tagged(src/tagged.ts) exports the same names plusProjectedEvaluation. The package'sexportsmap has the same two entries.The census of changed answers. Every Changed or Fixed bullet maps to a census line; none falls outside it.
pts-50hb(Fixed):contextPutwith a revoked proxy as a path segment answers aLocationErrorvalue where it threw.pts-9jds(Fixed): refusal-message articles.pts-ztsx(Changed): a forged float whose field is not finite is refused at the boundary withnon_finite_number; only a forged instance sees it, the path-segment detail included.pts-av9e(Changed): the plain projection and the JSON builtin refuse past the place budget.pts-5u1q(Changed): nested date and datetime members compare as the reference does at v9.4.2, with the precision rows declared (matching the reference ruled by the operator, 2026-10-03).pts-5uod(Changed): list ordering over a member holding the null value answers a boolean as the reference does (the same ruling).pts-7w7e(Changed):decompileof an out-of-range integer literal matches the reference's rendering; the decimal half is declared.pts-1wd(Changed): a hostDate'stypeNameanswers"datetime", and the JSON builtin's refusal for a literal hostDatenames a datetime (added to the census, ruled by the operator, 2026-10-04).pts-r69ais the one Added bullet and changes no answer.Evidence
mise exec -- pnpm run gate) ran green on the release commit's exact tree under node v24.21.0: typecheck, lint, engine neutrality, the suite with coverage (43 files, 4113 tests passed),corpus:check, record cites, the build, the cross-entry identity check and the legacy-resolution check. The commit was made from that staged tree, unchanged, with the repo's gate lock and a machine slot held across the run and the commit.npm pack --dry-runran the publish guard throughprepack: every property passed ("the output was built from this tree and is packable") and npm listed 50 files for@riddler/predicator@0.6.0, the same count as 0.5.0. Nothing was written to the registry.Not done here
The merge, the annotated
v0.6.0tag at the merge commit, andnpm publishfollow this PR and are not part of it; the publish is the operator's.