Repository navigation
Conversation
Runtime 0.3.4 and the React 0.3.5 / Solid 0.3.1 / native 0.4.1 adapters; bindings 0.4.1, utils 0.4.0 and dom 0.1.0 are unchanged. Every range moves together because the adapters pin the runtime exactly: a core package left on ^0.3.3 lets an existing install keep 0.3.3 beside the adapter's 0.3.4. The tree resolves to one copy of each runtime-layer package again. The adapter releases only move that pin; the runtime release is internal (after timers join the run-to-completion queue, which no primitive here uses; fewer per-event allocations) with an unchanged type surface. minimumReleaseAgeExclude now holds exactly the four versions published today. pnpm 11 rejects anything younger than its default one-day minimumReleaseAge, frozen installs included, so CI needs them; the bindings, utils and dom entries were past the cutoff and inert, and the rest named versions the tree no longer resolves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The core and React templates still carried ^0.1.0 for the runtime, the bindings and the React adapter. On 0.x a caret never crosses a minor, so a freshly scaffolded primitive installed 0.1.0 copies beside the repo's current ones: pnpm why reported two versions each of @dunky.dev/state-machine, -bindings and react-state-machine. Every template range now matches the package it mirrors, and the same scaffold resolves to one version of each. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review follow-up. The native adapter moves its React adapter pin too, not only the runtime one. The single-runtime claim now says what the floor actually buys: the core packages and the adapters agree on 0.3.4. The diamond is explained in place instead of pointing at ARCHITECTURE.md, which no published tarball carries. The runtime's internals are no longer restated in five consumer changelogs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
main's #56 moved TypeScript to 7.0.2, touching the root package.json and the lockfile. No conflicts: its lockfile hunks and this branch's @dunky.dev entries are disjoint. A fresh frozen install re-verifies the merged lockfile (1279 entries), dedupe --check reports the same findings as main, and build, test:ci, typecheck, lint, format and both storybooks pass on the merged tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Why/What
The state-machine repo shipped its 2026-10-04 release: runtime
@dunky.dev/state-machine0.3.4, and adapter releases (React0.3.5, Solid0.3.1, native0.4.1) that only move their exact pins. This PR moves every package and scaffold template here onto it together. The adapters pin the runtime exactly. A core package left on^0.3.3can keep a locked0.3.3beside the adapter's0.3.4. That gives two physical runtime copies (a dependency diamond).Changes
dependenciesunless noted):@dunky.dev/controllable,@dunky.dev/dialog:@dunky.dev/state-machine^0.3.3->^0.3.4@dunky.dev/dom-dialog(devDependency):@dunky.dev/state-machine^0.3.3->^0.3.4@dunky.dev/react-dialog:@dunky.dev/react-state-machine^0.3.4->^0.3.5@dunky.dev/solid-dialog:@dunky.dev/solid-state-machine^0.3.0->^0.3.1@dunky.dev/native-dialog:@dunky.dev/native-state-machine^0.4.0->^0.4.1@dunky.dev/state-machine-bindings^0.4.1(already latest).-utils0.4.0and-dom0.1.0come in only through the adapters' exact pins.^0.1.0->^0.3.4(runtime) and^0.1.0->^0.4.1(bindings), React adapter^0.1.0->^0.3.5, Solid adapter^0.3.0->^0.3.1, dom-component runtime devDependency^0.3.3->^0.3.4. Onmain,pnpm scaffold proberesolved runtime0.1.0beside0.3.3, and two versions each of bindings and the React adapter (pnpm why). Now it resolves one version of each.minimumReleaseAgeExclude: lists exactly the four versions published today (2026-10-04T10:01Z). pnpm 11.10 has a defaultminimumReleaseAgeof one day and re-checks every lockfile entry, also with--frozen-lockfile. Without these entries, CI install fails withERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION(reproduced). The seven old entries are removed: four name versions that nothing resolves now; bindings0.4.1, utils0.4.0and dom0.1.0were published 2026-08-22, so they pass the age check without an entry. A fresh-cache frozen install verifies all 1279 entries and passes.@dunky.devstate-machine entries change.controllable,dialog,react-dialog,solid-dialog,native-dialog.dom-dialoggets a patch automatically as a dependent ofdialog; its own change is devDependency-only.main(chore: upgrade TypeScript to 7.0.2聽#56, TypeScript 7). No conflicts.Behavior: no change expected. The adapter tarballs are byte-identical except
versionand the exact pins. The runtime.d.tsis byte-identical. The runtime JS changes (aftertimers through the run-to-completion queue, one frozen boot event,send/setContextas bound fields, live context hosts,for..inprops comparison) do not touch what the UI uses: no machine here usesafter,watch, stateeffects,computedoroneOf; the mailbox token is a fresh object; no test spies onsend.Single copy:
pnpm why -rfinds one version each of@dunky.dev/state-machine(0.3.4),-bindings(0.4.1),-utils(0.4.0),-dom(0.1.0). A freshnode_modules/.pnpmhas one directory each. Every consumer (core, controllable, dom-dialog, all three adapters) resolves to the same real path.Verification (fresh install, merged tree):
build(publint 16/16),test:ci(vitest 296/296, native jest 13/13, same asmain),typecheck(TS 7.0.2),lint,format:check,changeset status --since=origin/main, and both Storybook builds pass.pnpm knipoutput is identical tomain(only the native findings that #58 addresses).Issues
None linked. #54 conflicts in
packages/{react,solid}/dialog/package.json: it adds dependencies directly above the adapter range that this PR bumps. Keep both edits and runpnpm installon whichever PR merges second.馃 Generated with Claude Code