Prepares the 0.4.0 release - #164
Merged
Merged
Conversation
A minor, as ruled by the operator, 2026-10-01: the statement grammar compiles from source through compileProgram, compileProgramWithPositions and compileProgramWithSpans, and ParseReason gains the three refusals only they answer; execute and executeValue compile a source string as a statement program, as the reference's do; executeTagged, durationToMilliseconds and the DecompileResult type are added; the protected-root refusal names its root under details.root; and a duration component past the largest safe integer is refused. 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.4.0 section dated from the local clock and placed above 0.3.0's, grouped Added, Changed with fragments in name order, and the fragments are 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, and npm pack --dry-run built through the publish guard, which passed all three of its properties and listed 49 files for @riddler/predicator@0.4.0. The tag and the publish are not done here. Refs: pts-3px7
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.4.0 release, by hand from.claude/wurk/release.md(the kit has no npm recipe). A minor, as ruled by the operator, 2026-10-01. This PR does not merge, tag or publish: the conductor merges it, pulls main, creates the annotated tagv0.4.0at the merge SHA and pushes it; the operator runsnpm publish.Commits
78064ddPrepares the 0.4.0 releaseThe release commit touches exactly the files the release checklist's table names:
package.json("version"0.3.0 -> 0.4.0 and nothing else),README.md(the install pin^0.3.0->^0.4.0and nothing else),CHANGELOG.md(the new section, above 0.3.0's) and the promotedchangelog.d/*.mdfragments (deleted).changelog.d/holds only itsREADME.mdafterwards.Premise checks
fe15d4bwhen this branch was cut; the reference prep is1ddd46b(the first line ofgit log --oneline --no-patch -L '/"version"/,+1:package.json').npm view @riddler/predicator dist-tagsanswered{ latest: '0.3.0' }before the bump.v0.4.0exists (git rev-parse -q --verify refs/tags/v0.4.0exits 1, andgit ls-remote --tags origin v0.4.0lists nothing).git log --oneline v0.3.0..origin/main, the release's content, 17 commits:Fragments promoted
In fragment-name order, seven:
pts-0o0p,pts-0zns,pts-ix34,pts-mmls,pts-o0gr,pts-shdy,pts-xmz6. Under Added:pts-0o0p,pts-ix34,pts-mmls,pts-shdy,pts-xmz6(two bullets). Under Changed:pts-0zns,pts-o0gr. No fragment carries Deprecated, Removed, Fixed or Security. A script compared every-bullet line of every fragment atfe15d4bagainst the new section with a whole-line fixed-string match: each was found byte for byte, and the section carries no bullet the fragments do not.The closed-set question
Asked over every promoted fragment and over the public surface since
v0.3.0:git diff v0.3.0..origin/mainoversrc/index.ts,src/tagged.ts, the modules they re-export from (src/compile.ts,src/decompile.ts,src/duration-units.ts,src/errors.ts,src/ast.ts), andtest/export-surface.json(the export-surface list the test pins).compileProgram,compileProgramWithPositions,compileProgramWithSpanssrc/index.ts, fromsrc/compile.ts)durationToMillisecondssrc/index.ts, fromsrc/duration-units.ts)DecompileResult(the typedecompilealready answered, now exported by name; shape unchanged)src/index.ts, fromsrc/decompile.ts)executeTagged./tagged(src/tagged.ts)unexpected_else,unassignable_location,expected_open_braceParseReason(src/errors.ts)details?: { readonly root: string }onEvaluationError, set only on theprotected_rootrefusal; the constructor takes it as an optional fourth argumentsrc/errors.tsdetailsabsentexecuteandexecuteValuecompile a source string as a statement program (ruled by the operator, 2026-10-01)src/index.ts::durationandparseDurationwith the existinginvalid_duration_formatsrc/cast.ts,src/duration-units.tsv0.3.0against origin/main adds six names (DecompileResult, the threecompileProgramnames,durationToMilliseconds,executeTagged) and drops none on.or./tagged(its one removed diff line isevaluateTaggedgaining a trailing comma); the twoexportlinessrc/index.tsdrops are replaced by wider statements that still name every former nameSo every change is a minor on 0.x, consistent with 0.4.0. The statement node types added to
src/ast.tsare not exported (the publicAststays the opaque branded type), and the located program results andexecuteTagged's result are unexported aliases, so a host names them structurally or throughReturnType, as it nameddecompile's result beforeDecompileResult.The publish guard on the pack path
npm pack --dry-run(no registry write; no tarball written) ranprepack, the publish guard: it removed the output directory, rebuilt, and passed all three of its properties, endingpublish-guard: the output was built from this tree and is packable, then listed 49 files for@riddler/predicator@0.4.0. The full output, with the worktree path replaced by<worktree>:npm pack --dry-run
The promoted section
Gate
The full gate (
mise exec -- pnpm run gate) ran green on the release commit's exact tree (the files staged at the commit are the files the gate ran on, under the same held locks, tree12ab37e), so the commit was made without a second run. The whole output follows, with the worktree path replaced by<worktree>and temporary-directory prefixes by<tmp>, and terminal color codes removed; nothing else is cut:pnpm run gate
Provenance
pts-0znsfragment states them, and every bullet is carried from its fragment.