Bridge Releases
Release notes sourced from the Devtools Bridge package changelog (Changesets).
Source: packages/devtools-bridge/CHANGELOG.md
Major Changes
Section titled “Major Changes”-
#152
c805d79- Protocol v8. The serialized snapshot’smachineobject narrows to{ outcome }: the six derived booleans it used to carry —isLoading, plus one per status — each restatedstatusortransition.pending, and no panel ever read them.The supported version window shifts to 8 / 7 / 6. A v7 emitter stays supported and can still drive mutations; v6 becomes read-only; v5 is no longer supported.
The
"headless"machine mode is retired fromisMachineMeta, as its own TODO asked.modeissnapshot.typeand has only been"linear" | "graph"since the mode leftJourneyDevtoolsMachineMeta. -
#152
c805d79- Replace the command-specific1.0.0-rc.2bridge with protocol v7 and align it with the final Core snapshot and machine contracts.- Register machine capabilities as generic feature and operation descriptors. Each operation declares its id, label, description, mutation flag, output kind, and typed input fields; invocation returns a structured snapshot, data, text, or void result, or a serialized operation error.
- Expose lifecycle, navigation, context patching, snapshot inspection, and graph event dispatch as
standard operation descriptors. Graph machines are detected by the presence of
send, andeventTypescan advertise the complete declared event set to the panel. - Replace
commandsEnabledwithmutationsEnabled. Mutating operations currently default to enabled whenever the bridge itself is enabled; set this option tofalseto expose read-only inspection. Add configurable operation rate limiting, defaulting to 100 operations per 10 seconds. Remove the oldpluginMetadataoption; plugin state now travels through the machine snapshot. - Update transported snapshots to the Core V1 shape: the linear/graph discriminator, timeline history, current-step async state, namespaced plugin state, outcomes, and enabled graph events are preserved instead of translated into the legacy computed shape. Nested runtime errors are serialized with their name, message, stack, and cause instead of collapsing to empty objects.
- Emit protocol version 7. Version 6 invoke envelopes remain accepted because their generic invoke shape is identical; version 5 register traffic is tolerated for discovery but cannot invoke v7 operations.
- Harden the window boundary with source, origin, channel, version, payload depth, and payload size validation. Reject unknown operations, invalid inputs, disabled mutations, rate-limit excess, and stale post-detach traffic with structured operation errors where applicable.
- Handle replay requests directly in each attached bridge, support multiple machines, and isolate bridge subscription failures from machine transitions.
- Export
buildOperationRunners,createJourneyMachineId,OperationRateLimiter,serializeSnapshot, protocol guards/constants, and the full protocol descriptor/envelope types. - Add an explicit
engines.node >=20.11.0package requirement. - Rewrite the bridge documentation and generated API reference for protocol v7.
Consumers with a custom panel or protocol client must migrate from legacy command envelopes and the old computed snapshot shape to generic
invoke/operationResult/operationErrorenvelopes.
Patch Changes
Section titled “Patch Changes”-
#139
51c20e6- Drop the DevTools feature-comparison table fromSECURITY.mdand state the bridge’s transport and isolation behaviour directly. Documentation only. -
#131
5a7c344- Broaden the npm keywordsAdds
devtools-extension,inspector,time-travel,diagnosticsandobservability. This package is found by somebody debugging a flow that is already misbehaving, which is a different search from the one that finds the runtime, and the registry was answering only the second. No code changes. -
Updated dependencies [
c805d79,c805d79,c805d79,c805d79,c805d79,c805d79,c805d79,3893a1b,c805d79,c805d79,c805d79,c805d79,c805d79,c805d79,c805d79,5a7c344]:- @rxova/journey-core@1.0.0
1.0.0-rc.3
Section titled “1.0.0-rc.3”Patch Changes
Section titled “Patch Changes”-
#131
5a7c344- Broaden the npm keywordsAdds
devtools-extension,inspector,time-travel,diagnosticsandobservability. This package is found by somebody debugging a flow that is already misbehaving, which is a different search from the one that finds the runtime, and the registry was answering only the second. No code changes. -
Updated dependencies [
5a7c344]:- @rxova/journey-core@1.0.0-rc.3
1.0.0-rc.2
Section titled “1.0.0-rc.2”Patch Changes
Section titled “Patch Changes”-
Align the DevTools bridge package with the
1.0.0-rc.2release. -
Updated dependencies
- @rxova/journey-core@1.0.0-rc.2
1.0.0-rc.1
Section titled “1.0.0-rc.1”Major Changes
Section titled “Major Changes”-
1cdde02: ## Breaking changes
Protocol v4
Section titled “Protocol v4”The bridge now communicates over protocol v4 envelopes with capability metadata, observation events, and execution-path queries.
Aligned with the new core API
Section titled “Aligned with the new core API”The bridge now targets
createJourneyMachine(), the simplifiedJourneyDefinitiongenerics, and the plugin-based core architecture.Legacy v3 compatibility
Section titled “Legacy v3 compatibility”Incoming
registerenvelopes without capability metadata are still accepted so extension-first rollouts can interoperate with older inspected apps.Observation event envelopes
Section titled “Observation event envelopes”The bridge can forward
JourneyObservationEventpayloads to power transition tracing and async state inspection in devtools.Execution-path query envelopes
Section titled “Execution-path query envelopes”The extension can request execution-path enumeration when the inspected machine has the execution-paths plugin registered.
Changed
Section titled “Changed”- Kept compatibility with the core timeout, constant-removal, and internal runtime refactors
Patch Changes
Section titled “Patch Changes”- Updated dependencies [1cdde02]
- @rxova/journey-core@1.0.0-rc.1
Minor Changes
Section titled “Minor Changes”-
239f7c5: ## What changed
- Snapshot delivery is now coalesced to one animation frame, with a timeout fallback when
requestAnimationFrameis unavailable. This reduces burst traffic when machines update rapidly. - Pending scheduled snapshots are canceled on detach, so the bridge no longer emits stale state after teardown or disconnect.
- Command results now preserve the core runtime’s non-throwing failure model by returning serialized
errordata inside normalcommandResultenvelopes instead of treating every failed transition as a transport exception. - Environment detection is broader and safer. The bridge now prefers
import.meta.env.DEV/import.meta.env.PROD, falls back toprocess.env.NODE_ENV, and defaults to disabled when neither signal exists. - That environment change makes Bun-based and browser-first bundler setups behave more predictably without assuming a Node-style runtime.
- Serialization and protocol validation were hardened. Payloads are cloned and sanitized more defensively, validation now does a single size check plus a structural safety walk, and unsafe, circular, or oversized payloads are rejected more consistently.
- Internal bridge logic was cleaned up to remove duplication in an already environment-sensitive codepath, reducing the chance of behavior drift between similar branches.
- README, docs, and security guidance were updated with Bun install notes, explicit enablement guidance for runtimes without env signals, and CSP expectations for browser apps using the bridge.
- Test coverage was expanded around protocol safety, serialization edge cases, bridge detach behavior, and command/result handling.
Breaking changes
Section titled “Breaking changes”- Protocol payload validation is stricter. Consumers relying on previously accepted oversized, circular, or structurally unsafe payloads may now see those envelopes rejected.
- Snapshot delivery is now coalesced to one animation frame, with a timeout fallback when
Patch Changes
Section titled “Patch Changes”- Updated dependencies [239f7c5]
- @rxova/journey-core@0.7.0
Patch Changes
Section titled “Patch Changes”-
4ee201f: Per-package patch notes:
@rxova/journey-devtools-bridge- Guarded bridge transport posting with a safe
try/catchsowindow.postMessagefailures are swallowed. - Prevents bridge lifecycle/command flows from throwing when browser messaging is unavailable or rejects.
- Guarded bridge transport posting with a safe
@rxova/journey-react- Memoized provider context value in
Providerto keep stable references whenmachine/journeyinputs are unchanged. - Reduces unnecessary rerenders for memoized consumers during unrelated parent rerenders and StrictMode churn.
- Memoized provider context value in
@rxova/journey-core- Added listener-churn edge coverage to verify snapshot/event subscriptions are fully removed after unsubscribe.
- Hardens regression protection around subscription retention behavior.
-
Updated dependencies [4ee201f]
- @rxova/journey-core@0.6.4
Patch Changes
Section titled “Patch Changes”-
99a6635: Added a new public API TSDoc quality gate (docs:api:check) that verifies callable exports from package entrypoints have TSDoc summaries.
- Enforced that check in CI/docs workflows and documented it in contributor/docs guides.
- Added the checker implementation and comprehensive tests for pass/fail/CLI behavior.
- Added/updated TSDoc on key public exports:
- core transition builders (tx, createTransitions)
- react bindings factory (createJourneyBindings)
- devtools bridge attach + protocol envelope/command validators
- No runtime behavior changes; this branch is primarily API documentation quality/tooling hardening.
@rxova/journey-core
- Added TSDoc summaries for public transition helpers (tx, createTransitions).
- Added tests for the new API TSDoc checker (check-public-api-tsdoc) under core tests.
- No runtime behavior changes.
@rxova/journey-react
- Added a TSDoc summary for createJourneyBindings (public React API entrypoint helper).
- No runtime behavior changes.
@rxova/journey-devtools-bridge
- Added TSDoc summaries for public bridge/protocol APIs (attachJourneyDevtools and envelope/command validators).
- No runtime behavior changes.
apps-docs
- Documented the new API docs quality gate (pnpm run docs:api:check) in the docs README.
- No end-user docs content changes beyond contributor/developer guidance.
repo/tooling (cross-package)
- Added docs:api:check script to root package.json.
- Added scripts/check-public-api-tsdoc.ts to enforce TSDoc coverage on public callable exports.
- Wired this check into CI/docs workflows and contributing guidelines.
-
Updated dependencies [99a6635]
- @rxova/journey-core@0.6.3
Patch Changes
Section titled “Patch Changes”- 6a38c50: - Tightened core machine typing by introducing JourneySendEvent and removing unsafe as unknown/as never casts in convenience APIs.
- Replaced JourneyStepDefinition’s open
Record<string, unknown>escape hatch with explicit typed step extensions. - Added runtime validation in devtools bridge for command stepId values (goToStepById, updateStepMetadata, clearStepError), returning commandError for unknown steps.
- Added/updated tests for type coverage and bridge invalid-step behavior.
- Added JSDoc to key public core types (including transition/event builder generics) and improved type readability with JourneyGoToStepByIdEventType.
- Replaced JourneyStepDefinition’s open
- Updated dependencies [6a38c50]
- @rxova/journey-core@0.6.2
Patch Changes
Section titled “Patch Changes”- Updated dependencies [7be5e0c]
- @rxova/journey-core@0.6.1
Minor Changes
Section titled “Minor Changes”- 56234c2: Improve docs across Core, React, and Devtool Bridge, including API restructuring, clearer runtime semantics references, and TypeScript-focused guidance.
Patch Changes
Section titled “Patch Changes”- Updated dependencies [56234c2]
- @rxova/journey-core@0.6.0
Minor Changes
Section titled “Minor Changes”-
16db5e3: Journey 0.5.0 is a full platform-level upgrade across core runtime, React bindings, and devtools. This 0.5.0 release focuses on deterministic flow behavior, stronger typing, cleaner APIs, and better observability/debuggability.
Section titled “@rxova/journey-core”@rxova/journey-coreNew and improved
Section titled “New and improved”- New canonical snapshot shape with
history.timeline+history.indexpointer model. - Deterministic pointer navigation APIs:
goToPreviousStep(steps?),goToLastVisitedStep(). - Convenience helpers:
goToNextStep(),completeJourney(payload?),terminateJourney(payload?). - Built-in fallback semantics for
back/goToPreviousStepevent sends when no explicit transition matches. - Strongly typed transition builder ergonomics via
createTransitionsandtxhelpers (toComplete,toTerminate, branching builders). - First-match-wins transition execution preserved and clarified for reliability.
- Typed async transition phases exposed in snapshot:
idle,evaluating-when,error. - Metadata is now first-class at runtime via
snapshot.stepMetaandupdateStepMetadata(stepId, updater). - Typed observability stream via
subscribeEvent(...)with lifecycle/navigation/metadata events. - Expanded persistence model with versioning/migration support and safer hydration of invalid data.
Breaking changes
Section titled “Breaking changes”- v1 top-level
timeline/indexsnapshot fields removed. HISTORY_TARGETremoved.- Legacy history helpers removed (
trimHistory,clearHistory, overflow options). - Persistence now targets v2 snapshot structure and should be migrated with
migrate(...)when needed.
Section titled “@rxova/journey-react”@rxova/journey-reactNew and improved
Section titled “New and improved”- Bindings-first architecture is now the default.
createJourneyBindings(journey)returns typedProvider,StepRenderer,useJourneyApi,useJourneySnapshot, anduseJourneyMachine.- Journey typing is captured once at bindings creation time; hook callsites no longer need per-call generics.
useJourneyApi()now delegates to machine-level navigation helpers (goToNextStep,completeJourney,terminateJourney, pointer APIs).- Imperative jumps remain available using event send:
api.send({ type: "goToStepById", stepId })andapi.send({ type: "goToStepById", stepId, payload }). resetOnJourneyChangebehavior is explicitly supported for intentional machine resets when journey definition identity changes.
Breaking changes
Section titled “Breaking changes”- Legacy global React hooks/components API removed in favor of bindings-first usage.
goToStepById(...)is no longer a dedicateduseJourneyApihelper; useapi.send({ type: "goToStepById", ... }).- Existing apps that called old global hooks/components or helper methods must migrate to bindings APIs.
Section titled “@rxova/journey-devtools-bridge”@rxova/journey-devtools-bridgeNew and improved
Section titled “New and improved”- Protocol remains version
3(no protocol version bump in this release). - Richer command set for runtime control:
goToNextStep,terminateJourney,completeJourney,goToStepById,goToPreviousStep,goToLastVisitedStep,updateStepMetadata,send,resetJourney,clearStepError. - Snapshot payloads now include full v2 runtime state:
currentStepId,history.timeline,history.index,context,visited,stepMeta,status,async. - Safer runtime defaults: bridge enabled by default in non-production; disabled by default in production unless explicitly enabled; commands disabled by default in production unless explicitly enabled.
Breaking changes
Section titled “Breaking changes”- Consumers should align command/snapshot assumptions with current protocol v3 shape.
- Tooling relying on old snapshot/history shape must migrate to
history.timelineandhistory.index.
Migration checklist
Section titled “Migration checklist”- Update core snapshot reads from v1 fields to v2 fields (
snapshot.timeline->snapshot.history.timeline,snapshot.index->snapshot.history.index). - Replace removed history APIs (
trimHistory,clearHistory, overflow options) with pointer navigation APIs. - Migrate persisted snapshots to v2 shape (or provide
persistence.migrate). - Move React usage to bindings-first patterns (
createJourneyBindings+ bound hooks/components). - Replace
api.goToStepById(...)calls withapi.send({ type: "goToStepById", ... }). - Update devtools integrations to current protocol v3 command/snapshot structures.
- This release is intentionally comprehensive and includes updated docs, examples, devtools integration notes, and test coverage for the new model.
- Package versions are set to
minorso the fixed published package group bumps from0.4.0to0.5.0. - App package versions are also aligned to
0.5.0forapps-docsandapps-devtools.
- New canonical snapshot shape with
Patch Changes
Section titled “Patch Changes”- Updated dependencies [16db5e3]
- @rxova/journey-core@0.5.0
Minor Changes
Section titled “Minor Changes”- 176007f: - Added full Chrome DevTools extension app
- Added new bridge package with protocol + bridge runtime.
- Added/expanded demo integration to exercise DevTools + bridge flows.
- Added Devtool documentation section.
- Updated docs UX in index.tsx, sidebars.ts, and search styling in styles.module.css.
- Added CI/CD workflows for docs/devtools and Chrome Web Store publishing in devtools.yml, devtools-publish.yml, docs.yml.
- Updated release/versioning config in config.json and scripts in package.json (pnpm run releases).
- Updated README files across packages.
Patch Changes
Section titled “Patch Changes”- @rxova/journey-core@0.4.0