Version Packages - #13
github-actions[bot] wants to merge 1 commit into
Conversation
c9d0374 to
637c3b9
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c9d037438f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
637c3b9 to
def9737
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: def97377c5
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
6fe4a86 to
616a12c
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
5ea2119 to
5ab5716
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5ab5716b68
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| { | ||
| "name": "@okyrychenko-dev/react-action-guard-devtools", | ||
| "version": "0.3.0", | ||
| "version": "0.3.1", |
There was a problem hiding this comment.
Publish the breaking Devtools requirements as 0.4.0
An application that currently uses core 1.0.x and allows Devtools ^0.3.0 will resolve this 0.3.1 release, but Devtools now requires core ^1.1.0; npm will report a peer conflict (or strict peer installation will fail). This release also introduces the Node 20 minimum, excluding Node 18 consumers within the same patch range. Since ^0.3.0 includes all 0.3 patch releases, publish these compatibility drops as 0.4.0 or retain the prior requirements.
Useful? React with 👍 / 👎.
86a1fa5 to
1ea057e
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ea057ee9a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| { | ||
| "name": "@okyrychenko-dev/react-action-guard", | ||
| "version": "1.0.5", | ||
| "version": "1.1.0", |
There was a problem hiding this comment.
Release the Node 20 floor in a major
The prior 1.0.5 source did not declare a Node engine, while this release requires Node 20 or newer; since ^1.0.5 accepts 1.1.0, Node 18 consumers can receive this incompatible update automatically and fail under engine-strict (or at runtime if the new dependencies require Node 20). Fresh evidence: this revision changed the intended release from the earlier 1.0.6 to 1.1.0, but a minor release still does not preserve the previous Node compatibility. Publish this as 2.0.0 or retain Node 18 support.
Useful? React with 👍 / 👎.
1ea057e to
aa48710
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa48710430
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| }, | ||
| "peerDependencies": { | ||
| "@okyrychenko-dev/react-action-guard": "^1.0.4", | ||
| "@okyrychenko-dev/react-action-guard": "^2.0.0", |
There was a problem hiding this comment.
Update the Router README peer range
When users follow the Router README's stated core requirement (^1.0.1) while installing this 1.0.0 release, that core version cannot satisfy the newly published ^2.0.0 peer dependency, producing a peer-resolution warning or failure under strict peer settings. Update the distributed README requirement to the 2.x range together with this release.
Useful? React with 👍 / 👎.
| }, | ||
| "peerDependencies": { | ||
| "@okyrychenko-dev/react-action-guard": "^1.0.4", | ||
| "@okyrychenko-dev/react-action-guard": "^2.0.0", |
There was a problem hiding this comment.
Update the TanStack README peer range
The TanStack README still instructs consumers to use core ^1.0.4, but this release now declares core ^2.0.0 as a peer. A consumer who pins the documented range will therefore get an unsatisfied peer dependency when installing TanStack 1.0.0; update the packaged README's requirement to 2.x.
Useful? React with 👍 / 👎.
| { | ||
| "name": "@okyrychenko-dev/react-action-guard-ui", | ||
| "version": "0.1.5", | ||
| "version": "1.0.0", |
There was a problem hiding this comment.
Update the UI README peer range
The UI README continues to document core ^1.0.2, while its workspace:^ peer is converted to ^2.0.0 during this release (using the workspace core package's new version). Users who follow the documented pinned range will have an unsatisfied peer dependency for UI 1.0.0, so revise the distributed README requirement to 2.x.
Useful? React with 👍 / 👎.
b1170a4 to
469b6ba
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 469b6ba182
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| { | ||
| "name": "@okyrychenko-dev/react-action-guard-tanstack", | ||
| "version": "0.3.5", | ||
| "version": "1.0.0", |
There was a problem hiding this comment.
Declare TanStack's Node.js 20 floor
When this 1.0.0 package is installed on Node 18 with engine-strict, installation fails because its direct @okyrychenko-dev/type-utils@0.1.2 dependency declares node >=20 (pnpm-lock.yaml:1494-1496), while this manifest advertises no Node requirement. Add engines.node: ">=20" so the published TanStack package accurately communicates the compatibility constraint rather than leaving consumers to discover it through a transitive dependency failure.
Useful? React with 👍 / 👎.
c977ee4 to
38fd043
Compare
38fd043 to
1fce6d2
Compare
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@okyrychenko-dev/react-action-guard@2.0.0
Major Changes
named middleware registration, direct event dispatch, and compatibility restore contracts. Observe
lifecycle transitions through ownership-safe anonymous leases and read readonly BlockerInfo snapshots.
Devtools sessions release only their observations; manual observation is now additive on every store.
Centralize guarded-control state and accessible reasons while retaining public hooks, state mappers,
state utilities, and distinct link behavior. Consolidate shared TanStack coverage at its coordination
interface and document migration from removed interfaces. Retain react-zustand-toolkit as the state
management base.
Minor Changes
39fb3de: Introduce a public Blocking lifecycle interface that owns blocker transitions, timers, immutable reads, and isolated observation while preserving the existing Zustand store interface through a compatibility adapter.
3db526a: Publish immutable Blocking lifecycle snapshots through global and provider-scoped stores. React hooks, guarded UI controls, and Devtools now subscribe to those snapshots. Devtools requires core 1.1.0 or newer for the snapshot API. This compatibility drop, together with the Node.js 20 minimum in the pending type-utils migration, releases Devtools as 0.4.0 instead of a 0.3.x patch.
4363609: Expose anonymous, ownership-safe lifecycle event observation through global and provider-scoped stores. Provider middleware and automatic Devtools observation now use release leases without registry names, while legacy named middleware remains available for compatibility and runs without awaiting earlier observers.
Observers registered while an event is being delivered begin receiving events with the next delivery, preventing self-replacing named middleware from processing the same event twice.
Observers released before their turn in an event are skipped, and replacing named middleware keeps its original delivery position.
Named middleware replacements made during an event take effect on the next event. Direct compatibility calls to
runMiddlewaresinvoke middleware concurrently and settle after all complete.Global Devtools observation keeps the current event when manual Devtools middleware registers during delivery, while manual registrations already participating in that event remain authoritative, even if they unregister themselves after handling it.
Patch Changes
@okyrychenko-dev/react-zustand-toolkit1.0.0 while preserving React Action Guard's public store and provider APIs.scope, reason and priority values return to defaults; omitted timeout and callback
values clear. Metadata changes preserve unchanged deadlines and registration
timestamps, while changed timeouts restart and removed timeouts cancel timers.
Imperative updateBlocker patch behavior remains compatible. Consumers relying on
retained hook options must keep those options in the current configuration.
TanStack integration now requires core 1.0.6 or later for replacement support.
instance. Concurrent callers share its outcome; reopening and cancellation are ignored while
execution is pending. Success and failure both allow retry. Existing timeout and unmount
behavior remains unchanged.
@okyrychenko-dev/type-utils0.1.2 for internal type guards, assertions, and utility types, replacing equivalent hand-rolled checks, a duplicatedassertNeverhelper, and inline nullable/optional unions. Runtime behavior is unchanged; some public function signatures now show the package's equivalent utility types. Adds@okyrychenko-dev/type-utilsas a new dependency and explicitly requires Node.js 20 or newer; Node.js 18 is EOL and unsupported.All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@okyrychenko-dev/react-action-guard-devtools@1.0.0
Major Changes
named middleware registration, direct event dispatch, and compatibility restore contracts. Observe
lifecycle transitions through ownership-safe anonymous leases and read readonly BlockerInfo snapshots.
Devtools sessions release only their observations; manual observation is now additive on every store.
Centralize guarded-control state and accessible reasons while retaining public hooks, state mappers,
state utilities, and distinct link behavior. Consolidate shared TanStack coverage at its coordination
interface and document migration from removed interfaces. Retain react-zustand-toolkit as the state
management base.
Minor Changes
Patch Changes
5d403d8: Migrate the Core and Devtools store integrations to
@okyrychenko-dev/react-zustand-toolkit1.0.0 while preserving React Action Guard's public store and provider APIs.94547ea: Isolate Devtools event history and runtime viewing state per observed blocking store, share one observation session between Devtools instances attached to the same store, and expose custom sessions to advanced hook consumers through
ActionGuardDevtoolsProvider.4363609: Expose anonymous, ownership-safe lifecycle event observation through global and provider-scoped stores. Provider middleware and automatic Devtools observation now use release leases without registry names, while legacy named middleware remains available for compatibility and runs without awaiting earlier observers.
Observers registered while an event is being delivered begin receiving events with the next delivery, preventing self-replacing named middleware from processing the same event twice.
Observers released before their turn in an event are skipped, and replacing named middleware keeps its original delivery position.
Named middleware replacements made during an event take effect on the next event. Direct compatibility calls to
runMiddlewaresinvoke middleware concurrently and settle after all complete.Global Devtools observation keeps the current event when manual Devtools middleware registers during delivery, while manual registrations already participating in that event remain authoritative, even if they unregister themselves after handling it.
5d03641: Manage Devtools observation through store-specific participation leases. Panels and providers observing the same blocking store share one event history and automatic observer; configuration ownership transfers deterministically without reapplying
defaultOpen, and the final release detaches observation and clears runtime viewing state. Manual Devtools middleware remains compatible.6230733: Adopt
@okyrychenko-dev/type-utils0.1.2 for internal type guards, assertions, and utility types, replacing equivalent hand-rolled checks, a duplicatedassertNeverhelper, and inline nullable/optional unions. Runtime behavior is unchanged; some public function signatures now show the package's equivalent utility types. Adds@okyrychenko-dev/type-utilsas a new dependency and explicitly requires Node.js 20 or newer; Node.js 18 is EOL and unsupported.Updated dependencies [39fb3de]
Updated dependencies [32264e4]
Updated dependencies [5d403d8]
Updated dependencies [3db526a]
Updated dependencies [0d3c1f7]
Updated dependencies [083a5b7]
Updated dependencies [a1b83db]
Updated dependencies [d07b65a]
Updated dependencies [6513e1e]
Updated dependencies [eefba30]
Updated dependencies [4363609]
Updated dependencies [6230733]
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@okyrychenko-dev/react-action-guard-router@1.0.0
Minor Changes
b4945b0: Restore TanStack navigation blocking using native useBlocker. Confirmed transitions keep protection armed, failed confirmations deny navigation, and superseded or unmounted attempts cannot allow navigation. Require TanStack Router >=1.170.41 within v1, the verified compatibility floor, and use native unload protection with a one-shot bypass after accepted document navigation, avoiding a duplicate browser prompt.
Invalidate pending confirmations when when or scope changes, including replacements that leave the computed blocking state active.
Preserve pending confirmations when observer callbacks onBlock or onAllow change during a rerender.
Compare scopes by normalized contents so equivalent arrays, including reordered or duplicated entries, preserve pending confirmations while effective scope changes invalidate them.
Document and test the native not-found limitation at TanStack Router 1.170.41: unmatched-to-matched navigation skips adapter callbacks even with an active condition or scope; subsequent matched-route navigation remains guarded.
Patch Changes
named middleware registration, direct event dispatch, and compatibility restore contracts. Observe
lifecycle transitions through ownership-safe anonymous leases and read readonly BlockerInfo snapshots.
Devtools sessions release only their observations; manual observation is now additive on every store.
Centralize guarded-control state and accessible reasons while retaining public hooks, state mappers,
state utilities, and distinct link behavior. Consolidate shared TanStack coverage at its coordination
interface and document migration from removed interfaces. Retain react-zustand-toolkit as the state
management base.
@okyrychenko-dev/type-utils0.1.2 for internal type guards, assertions, and utility types, replacing equivalent hand-rolled checks, a duplicatedassertNeverhelper, and inline nullable/optional unions. Runtime behavior is unchanged; some public function signatures now show the package's equivalent utility types. Adds@okyrychenko-dev/type-utilsas a new dependency and explicitly requires Node.js 20 or newer; Node.js 18 is EOL and unsupported.All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@okyrychenko-dev/react-action-guard-tanstack@0.4.0
Minor Changes
Patch Changes
named middleware registration, direct event dispatch, and compatibility restore contracts. Observe
lifecycle transitions through ownership-safe anonymous leases and read readonly BlockerInfo snapshots.
Devtools sessions release only their observations; manual observation is now additive on every store.
Centralize guarded-control state and accessible reasons while retaining public hooks, state mappers,
state utilities, and distinct link behavior. Consolidate shared TanStack coverage at its coordination
interface and document migration from removed interfaces. Retain react-zustand-toolkit as the state
management base.
UIBlockingProviderstore while preserving the global-store fallback when no provider is present.scope, reason and priority values return to defaults; omitted timeout and callback
values clear. Metadata changes preserve unchanged deadlines and registration
timestamps, while changed timeouts restart and removed timeouts cancel timers.
Imperative updateBlocker patch behavior remains compatible. Consumers relying on
retained hook options must keep those options in the current configuration.
TanStack integration now requires core 1.0.6 or later for replacement support.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@okyrychenko-dev/react-action-guard-ui@1.0.0
Patch Changes
named middleware registration, direct event dispatch, and compatibility restore contracts. Observe
lifecycle transitions through ownership-safe anonymous leases and read readonly BlockerInfo snapshots.
Devtools sessions release only their observations; manual observation is now additive on every store.
Centralize guarded-control state and accessible reasons while retaining public hooks, state mappers,
state utilities, and distinct link behavior. Consolidate shared TanStack coverage at its coordination
interface and document migration from removed interfaces. Retain react-zustand-toolkit as the state
management base.
@okyrychenko-dev/type-utils0.1.2 for internal type guards, assertions, and utility types, replacing equivalent hand-rolled checks, a duplicatedassertNeverhelper, and inline nullable/optional unions. Runtime behavior is unchanged; some public function signatures now show the package's equivalent utility types. Adds@okyrychenko-dev/type-utilsas a new dependency and explicitly requires Node.js 20 or newer; Node.js 18 is EOL and unsupported.All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.