chore(release): version packages - #501
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
21 times, most recently
from
July 15, 2026 11:23
368897f to
3625205
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
July 15, 2026 13:40
3625205 to
2a7c4c6
Compare
Contributor
Author
|
Preview removed for PR #501. |
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.
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
@xnetjs/plugins@2.0.0
Major Changes
#496
6a5a15eThanks @crs48! - AI page-markdown surface re-targeted to the BlockNote editor (exploration 0312).'tiptap-yjs'is renamedto
'blocknote-yjs'inAiPageMarkdownApplyAdapterResult['mode']andAiPageMarkdownApplyResult['mode']. Adapters that returnedmode: 'tiptap-yjs'must return'blocknote-yjs'(or'yjs'/'custom').content-v4)documents, dependency-light (walks the Yjs XML tree directly, no editor/DOM):
xnetPageFragmentToMarkdown(doc)reads the BlockNote fragment(paragraph/heading/lists/check items/code/quote/callout/table + inline
mention/hashtag/wikilink/inlineMathatoms), falling back to thelegacy TipTap
contentfragment whencontent-v4is empty(
blockNoteFragmentToMarkdown/legacyFragmentToMarkdownare alsoexported).
replaceXNetPageFragmentWithMarkdown(doc, markdown)writes the AImarkdown subset (paragraphs, headings, bullet/numbered/check lists with
nesting, fenced code, quotes, callouts, wikilinks) as BlockNote PM XML —
blockGroup > blockContainer(uniqueidper block) wrappers — in oneYjs transaction.
createBlockNotePageMarkdownAdapter({ resolveDoc })packages both as anAiPageMarkdownApplyAdapter(plusreadMarkdown) forxnet_apply_page_markdown, replacing the TipTap-era document bridge.XNET_PAGE_FRAGMENT_FIELD('content-v4') andXNET_PAGE_LEGACY_FRAGMENT_FIELD('content') constants.@xnetjs/pluginsnow depends onyjs; the unused@tiptap/coredevDependency is gone.
#496
2a7b80fThanks @crs48! -EditorContributioncarries BlockNote specs instead of TipTap extensions (exploration 0312).EditorContribution.extension(TipTapExtension) andEditorContribution.toolbar(ToolbarContribution, removed entirely) aregone. Plugins now contribute
blockSpecs/inlineContentSpecs/styleSpecs(opaque BlockNote spec objects keyed by spec name) plusbehavior-only
slashMenuItems.isSchemaDefiningExtensionis replaced byisSchemaDefiningContribution,and
findEditorSchemaRisks/warnOnEditorSchemaRiskstake the host'sstatically bundled spec names and flag any contributed spec outside that
set (0205 invariant: schema specs must be identical across all
collaborators or Yjs silently drops content).
SlashCommandContext.editoris now a BlockNote editor instance.@tiptap/coredependency is removed.Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/data@2.0.0
Minor Changes
#496
85c9700Thanks @crs48! - Yjs fragment readers understand the BlockNote document schema (exploration 0312).Documents now live in the
content-v4fragment using BlockNote's ProseMirrorshape (
blockGroup > blockContainer > blockContent); the legacy TipTapcontentfragment remains readable as a fallback until each doc is lazilyimported.
@xnetjs/data:getRichTextPlainTextextracts text from BlockNote-shapedrich-text cells, including the new inline atoms (
mention→@label,hashtag→#name,wikilink→ title,inlineMath→ latex), while stillreading legacy TipTap-shaped cells.
@xnetjs/history: version-diff text extraction preferscontent-v4(legacycontentfallback) and renders BlockNote inline atoms as readable text.@xnetjs/react: newuseMergedEditorContributions/mergeEditorContributions(+MergedEditorContributionstype) collectplugin-contributed BlockNote
blockSpecs/inlineContentSpecs/styleSpecsand slash menu items from the plugin registry, running the editor
schema-skew guard (
warnOnEditorSchemaRisks) against the host's staticallybundled spec names and excluding un-bundled (skew-hazard) specs.
@xnetjs/runtime: blob-CID retention scanning now also walks thecontent-v4andcontentfragments, so blobs referenced from pagedocuments are discovered.
#523
a91f278Thanks @crs48! - Drafts P2/P3 (exploration 0329): Patchwork-style branching on the change log.@xnetjs/data:Draftnode schema (DRAFT_SCHEMA_IRI, entries map, nonesting);
NodeStoredraft overlay —setCheckedOutDraftswaps memberreads to clone content under original ids, redirects member writes to
clones with lazy copy-on-write, mirrors clone change events to original-id
subscribers, and exposes
getRawfor overlay-free reads; device-localdraft privacy set (
markDraftPrivate/isDraftPrivate).@xnetjs/history: draft lifecycle (createDraft,forkNodeIntoDraft—signed snapshot-create + pinned fork point + Yjs blob fork with state
vector,
discardDraft,listDrafts, never-fork policy); merge(
threeWayPropertyMerge,mergeDraft— one merger-signed squash batchwith draft-born promotion via temp ids, relation remapping, deletion
conflict cards, idempotent Yjs delta lane, provenance) and
refreshDraftFromMain(floating drafts).@xnetjs/runtime:NodeStoreSyncProvidergains ashouldPublishpredicate; the personal node-sync room excludes draft-private nodes, and
draft privacy is rehydrated before sync starts.
#523
dd956e5Thanks @crs48! - Drafts UI plumbing (exploration 0329 P2/P3).@xnetjs/react: newuseDraft(hostId)hook (hooks sub-barrel) binding thedraft engine and the NodeStore checkout overlay — list/create open drafts
for a host,
checkout(content-swap reads + lazy copy-on-write viaonMissingMember→forkNodeIntoDraft),returnToMain,discard(leaves the checkout first),
merge(merger-signed squash; returnsconflict cards),
refresh(fold main into the draft; pauses onconflicts),
setReviewRequested, andcomputeReview— per-propertythree-way review cards (base at fork vs main now vs draft now) plus Yjs
document-differs indicators, computed without applying anything. Database
hosts widen the member scope to their row nodes. Re-exports
DraftMergeConflict,MergeDraftResult,RefreshDraftResultforconsumers.
@xnetjs/data: theDraftschema gains an optionalreviewRequestedcheckbox (default
false) — the P4 request-surfacing flag theInbox/Requests surface lists open drafts by.
#499
e4cb876Thanks @crs48! - Add theDebugReportschema (DebugReportSchema,type DebugReport) forfirst-party crash/debug-report triage nodes (exploration 0315). Reports carry
code-level diagnostics only, group by fingerprint, and inherit access from their
diagnostics Space via the standard space cascade.
#523
0f7ef43Thanks @crs48! - Time Machine P1 (exploration 0329): frontiers, checkpoints, pins, prune horizon, scope timelines, production Yjs snapshot capture, and a React scrub hook.@xnetjs/history: newFrontierprimitive (hash-anchored per-node positions:captureFrontier,frontierAtWallTime,frontierTarget,materializeAtFrontier, Yjs snapshot refs + pin keys); named checkpoints(
createCheckpoint,listCheckpoints,deleteCheckpoint,pinFrontier,restoreToFrontier);ScopeTimeline/ScopeScrubCachegeneralizingSchemaTimelineto arbitrary node sets;HistoryHorizonError+HistoryEngine.getHorizon— targets below the prune horizon now fail loudlyinstead of silently remapping to the wrong change.
@xnetjs/data:Checkpointnode schema (CHECKPOINT_SCHEMA_IRI); pinregistry on storage adapters (
NodeStorageAdapter.pins,PinEntry,PinRegistry) protecting pinned changes and Yjs snapshots from pruning andeviction (memory + SQLite implementations).
@xnetjs/sqlite:pinned_changestable (additive migration).@xnetjs/runtime: Yjs history snapshots are now captured on production docpersists (throttled session-boundary/min-interval capture in NodePool).
@xnetjs/react: newuseTimeMachinehook (hooks sub-barrel) binding ascrubber UI to the merged scope timeline: position/step navigation, preview +
property diff at the scrub position, named versions, one-transaction restore,
and history-horizon reporting.
Patch Changes
e2e78cdThanks @crs48! - Fix "no such column: p.tiebreak_key" on databases created before schema v8. Thetiebreak_keycolumn repair now runs before the firstnode_propertiesread(
getNode/getNodes/listNodes/queryNodes), not just before writes — afresh session that opened a document page hit the missing column on its first
hydrate query before any write could trigger the lazy guard. Also adds the
missing v8 entry to
SCHEMA_MIGRATIONS(ALTER TABLE node_properties ADD COLUMN tiebreak_key TEXT).e2e78cd,0f7ef43]:@xnetjs/history@2.0.0
Minor Changes
#496
85c9700Thanks @crs48! - Yjs fragment readers understand the BlockNote document schema (exploration 0312).Documents now live in the
content-v4fragment using BlockNote's ProseMirrorshape (
blockGroup > blockContainer > blockContent); the legacy TipTapcontentfragment remains readable as a fallback until each doc is lazilyimported.
@xnetjs/data:getRichTextPlainTextextracts text from BlockNote-shapedrich-text cells, including the new inline atoms (
mention→@label,hashtag→#name,wikilink→ title,inlineMath→ latex), while stillreading legacy TipTap-shaped cells.
@xnetjs/history: version-diff text extraction preferscontent-v4(legacycontentfallback) and renders BlockNote inline atoms as readable text.@xnetjs/react: newuseMergedEditorContributions/mergeEditorContributions(+MergedEditorContributionstype) collectplugin-contributed BlockNote
blockSpecs/inlineContentSpecs/styleSpecsand slash menu items from the plugin registry, running the editor
schema-skew guard (
warnOnEditorSchemaRisks) against the host's staticallybundled spec names and excluding un-bundled (skew-hazard) specs.
@xnetjs/runtime: blob-CID retention scanning now also walks thecontent-v4andcontentfragments, so blobs referenced from pagedocuments are discovered.
#523
a91f278Thanks @crs48! - Drafts P2/P3 (exploration 0329): Patchwork-style branching on the change log.@xnetjs/data:Draftnode schema (DRAFT_SCHEMA_IRI, entries map, nonesting);
NodeStoredraft overlay —setCheckedOutDraftswaps memberreads to clone content under original ids, redirects member writes to
clones with lazy copy-on-write, mirrors clone change events to original-id
subscribers, and exposes
getRawfor overlay-free reads; device-localdraft privacy set (
markDraftPrivate/isDraftPrivate).@xnetjs/history: draft lifecycle (createDraft,forkNodeIntoDraft—signed snapshot-create + pinned fork point + Yjs blob fork with state
vector,
discardDraft,listDrafts, never-fork policy); merge(
threeWayPropertyMerge,mergeDraft— one merger-signed squash batchwith draft-born promotion via temp ids, relation remapping, deletion
conflict cards, idempotent Yjs delta lane, provenance) and
refreshDraftFromMain(floating drafts).@xnetjs/runtime:NodeStoreSyncProvidergains ashouldPublishpredicate; the personal node-sync room excludes draft-private nodes, and
draft privacy is rehydrated before sync starts.
#523
0f7ef43Thanks @crs48! - Time Machine P1 (exploration 0329): frontiers, checkpoints, pins, prune horizon, scope timelines, production Yjs snapshot capture, and a React scrub hook.@xnetjs/history: newFrontierprimitive (hash-anchored per-node positions:captureFrontier,frontierAtWallTime,frontierTarget,materializeAtFrontier, Yjs snapshot refs + pin keys); named checkpoints(
createCheckpoint,listCheckpoints,deleteCheckpoint,pinFrontier,restoreToFrontier);ScopeTimeline/ScopeScrubCachegeneralizingSchemaTimelineto arbitrary node sets;HistoryHorizonError+HistoryEngine.getHorizon— targets below the prune horizon now fail loudlyinstead of silently remapping to the wrong change.
@xnetjs/data:Checkpointnode schema (CHECKPOINT_SCHEMA_IRI); pinregistry on storage adapters (
NodeStorageAdapter.pins,PinEntry,PinRegistry) protecting pinned changes and Yjs snapshots from pruning andeviction (memory + SQLite implementations).
@xnetjs/sqlite:pinned_changestable (additive migration).@xnetjs/runtime: Yjs history snapshots are now captured on production docpersists (throttled session-boundary/min-interval capture in NodePool).
@xnetjs/react: newuseTimeMachinehook (hooks sub-barrel) binding ascrubber UI to the merged scope timeline: position/step navigation, preview +
property diff at the scrub position, named versions, one-transaction restore,
and history-horizon reporting.
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/react@2.0.0
Minor Changes
#496
85c9700Thanks @crs48! - Yjs fragment readers understand the BlockNote document schema (exploration 0312).Documents now live in the
content-v4fragment using BlockNote's ProseMirrorshape (
blockGroup > blockContainer > blockContent); the legacy TipTapcontentfragment remains readable as a fallback until each doc is lazilyimported.
@xnetjs/data:getRichTextPlainTextextracts text from BlockNote-shapedrich-text cells, including the new inline atoms (
mention→@label,hashtag→#name,wikilink→ title,inlineMath→ latex), while stillreading legacy TipTap-shaped cells.
@xnetjs/history: version-diff text extraction preferscontent-v4(legacycontentfallback) and renders BlockNote inline atoms as readable text.@xnetjs/react: newuseMergedEditorContributions/mergeEditorContributions(+MergedEditorContributionstype) collectplugin-contributed BlockNote
blockSpecs/inlineContentSpecs/styleSpecsand slash menu items from the plugin registry, running the editor
schema-skew guard (
warnOnEditorSchemaRisks) against the host's staticallybundled spec names and excluding un-bundled (skew-hazard) specs.
@xnetjs/runtime: blob-CID retention scanning now also walks thecontent-v4andcontentfragments, so blobs referenced from pagedocuments are discovered.
#523
dd956e5Thanks @crs48! - Drafts UI plumbing (exploration 0329 P2/P3).@xnetjs/react: newuseDraft(hostId)hook (hooks sub-barrel) binding thedraft engine and the NodeStore checkout overlay — list/create open drafts
for a host,
checkout(content-swap reads + lazy copy-on-write viaonMissingMember→forkNodeIntoDraft),returnToMain,discard(leaves the checkout first),
merge(merger-signed squash; returnsconflict cards),
refresh(fold main into the draft; pauses onconflicts),
setReviewRequested, andcomputeReview— per-propertythree-way review cards (base at fork vs main now vs draft now) plus Yjs
document-differs indicators, computed without applying anything. Database
hosts widen the member scope to their row nodes. Re-exports
DraftMergeConflict,MergeDraftResult,RefreshDraftResultforconsumers.
@xnetjs/data: theDraftschema gains an optionalreviewRequestedcheckbox (default
false) — the P4 request-surfacing flag theInbox/Requests surface lists open drafts by.
#523
0f7ef43Thanks @crs48! - Time Machine P1 (exploration 0329): frontiers, checkpoints, pins, prune horizon, scope timelines, production Yjs snapshot capture, and a React scrub hook.@xnetjs/history: newFrontierprimitive (hash-anchored per-node positions:captureFrontier,frontierAtWallTime,frontierTarget,materializeAtFrontier, Yjs snapshot refs + pin keys); named checkpoints(
createCheckpoint,listCheckpoints,deleteCheckpoint,pinFrontier,restoreToFrontier);ScopeTimeline/ScopeScrubCachegeneralizingSchemaTimelineto arbitrary node sets;HistoryHorizonError+HistoryEngine.getHorizon— targets below the prune horizon now fail loudlyinstead of silently remapping to the wrong change.
@xnetjs/data:Checkpointnode schema (CHECKPOINT_SCHEMA_IRI); pinregistry on storage adapters (
NodeStorageAdapter.pins,PinEntry,PinRegistry) protecting pinned changes and Yjs snapshots from pruning andeviction (memory + SQLite implementations).
@xnetjs/sqlite:pinned_changestable (additive migration).@xnetjs/runtime: Yjs history snapshots are now captured on production docpersists (throttled session-boundary/min-interval capture in NodePool).
@xnetjs/react: newuseTimeMachinehook (hooks sub-barrel) binding ascrubber UI to the merged scope timeline: position/step navigation, preview +
property diff at the scrub position, named versions, one-transaction restore,
and history-horizon reporting.
Patch Changes
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/runtime@0.5.0
Minor Changes
#523
a91f278Thanks @crs48! - Drafts P2/P3 (exploration 0329): Patchwork-style branching on the change log.@xnetjs/data:Draftnode schema (DRAFT_SCHEMA_IRI, entries map, nonesting);
NodeStoredraft overlay —setCheckedOutDraftswaps memberreads to clone content under original ids, redirects member writes to
clones with lazy copy-on-write, mirrors clone change events to original-id
subscribers, and exposes
getRawfor overlay-free reads; device-localdraft privacy set (
markDraftPrivate/isDraftPrivate).@xnetjs/history: draft lifecycle (createDraft,forkNodeIntoDraft—signed snapshot-create + pinned fork point + Yjs blob fork with state
vector,
discardDraft,listDrafts, never-fork policy); merge(
threeWayPropertyMerge,mergeDraft— one merger-signed squash batchwith draft-born promotion via temp ids, relation remapping, deletion
conflict cards, idempotent Yjs delta lane, provenance) and
refreshDraftFromMain(floating drafts).@xnetjs/runtime:NodeStoreSyncProvidergains ashouldPublishpredicate; the personal node-sync room excludes draft-private nodes, and
draft privacy is rehydrated before sync starts.
#523
0f7ef43Thanks @crs48! - Time Machine P1 (exploration 0329): frontiers, checkpoints, pins, prune horizon, scope timelines, production Yjs snapshot capture, and a React scrub hook.@xnetjs/history: newFrontierprimitive (hash-anchored per-node positions:captureFrontier,frontierAtWallTime,frontierTarget,materializeAtFrontier, Yjs snapshot refs + pin keys); named checkpoints(
createCheckpoint,listCheckpoints,deleteCheckpoint,pinFrontier,restoreToFrontier);ScopeTimeline/ScopeScrubCachegeneralizingSchemaTimelineto arbitrary node sets;HistoryHorizonError+HistoryEngine.getHorizon— targets below the prune horizon now fail loudlyinstead of silently remapping to the wrong change.
@xnetjs/data:Checkpointnode schema (CHECKPOINT_SCHEMA_IRI); pinregistry on storage adapters (
NodeStorageAdapter.pins,PinEntry,PinRegistry) protecting pinned changes and Yjs snapshots from pruning andeviction (memory + SQLite implementations).
@xnetjs/sqlite:pinned_changestable (additive migration).@xnetjs/runtime: Yjs history snapshots are now captured on production docpersists (throttled session-boundary/min-interval capture in NodePool).
@xnetjs/react: newuseTimeMachinehook (hooks sub-barrel) binding ascrubber UI to the merged scope timeline: position/step navigation, preview +
property diff at the scrub position, named versions, one-transaction restore,
and history-horizon reporting.
Patch Changes
#496
85c9700Thanks @crs48! - Yjs fragment readers understand the BlockNote document schema (exploration 0312).Documents now live in the
content-v4fragment using BlockNote's ProseMirrorshape (
blockGroup > blockContainer > blockContent); the legacy TipTapcontentfragment remains readable as a fallback until each doc is lazilyimported.
@xnetjs/data:getRichTextPlainTextextracts text from BlockNote-shapedrich-text cells, including the new inline atoms (
mention→@label,hashtag→#name,wikilink→ title,inlineMath→ latex), while stillreading legacy TipTap-shaped cells.
@xnetjs/history: version-diff text extraction preferscontent-v4(legacycontentfallback) and renders BlockNote inline atoms as readable text.@xnetjs/react: newuseMergedEditorContributions/mergeEditorContributions(+MergedEditorContributionstype) collectplugin-contributed BlockNote
blockSpecs/inlineContentSpecs/styleSpecsand slash menu items from the plugin registry, running the editor
schema-skew guard (
warnOnEditorSchemaRisks) against the host's staticallybundled spec names and excluding un-bundled (skew-hazard) specs.
@xnetjs/runtime: blob-CID retention scanning now also walks thecontent-v4andcontentfragments, so blobs referenced from pagedocuments are discovered.
Updated dependencies [
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/sqlite@2.0.0
Minor Changes
0f7ef43Thanks @crs48! - Time Machine P1 (exploration 0329): frontiers, checkpoints, pins, prune horizon, scope timelines, production Yjs snapshot capture, and a React scrub hook.@xnetjs/history: newFrontierprimitive (hash-anchored per-node positions:captureFrontier,frontierAtWallTime,frontierTarget,materializeAtFrontier, Yjs snapshot refs + pin keys); named checkpoints(
createCheckpoint,listCheckpoints,deleteCheckpoint,pinFrontier,restoreToFrontier);ScopeTimeline/ScopeScrubCachegeneralizingSchemaTimelineto arbitrary node sets;HistoryHorizonError+HistoryEngine.getHorizon— targets below the prune horizon now fail loudlyinstead of silently remapping to the wrong change.
@xnetjs/data:Checkpointnode schema (CHECKPOINT_SCHEMA_IRI); pinregistry on storage adapters (
NodeStorageAdapter.pins,PinEntry,PinRegistry) protecting pinned changes and Yjs snapshots from pruning andeviction (memory + SQLite implementations).
@xnetjs/sqlite:pinned_changestable (additive migration).@xnetjs/runtime: Yjs history snapshots are now captured on production docpersists (throttled session-boundary/min-interval capture in NodePool).
@xnetjs/react: newuseTimeMachinehook (hooks sub-barrel) binding ascrubber UI to the merged scope timeline: position/step navigation, preview +
property diff at the scrub position, named versions, one-transaction restore,
and history-horizon reporting.
Patch Changes
e2e78cdThanks @crs48! - Fix "no such column: p.tiebreak_key" on databases created before schema v8. Thetiebreak_keycolumn repair now runs before the firstnode_propertiesread(
getNode/getNodes/listNodes/queryNodes), not just before writes — afresh session that opened a document page hit the missing column on its first
hydrate query before any write could trigger the lazy guard. Also adds the
missing v8 entry to
SCHEMA_MIGRATIONS(ALTER TABLE node_properties ADD COLUMN tiebreak_key TEXT).@xnetjs/abuse@2.0.0
Patch Changes
@xnetjs/cli@0.1.7
Patch Changes
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/crypto@2.0.0
Patch Changes
@xnetjs/data-bridge@2.0.0
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/identity@2.0.0
Patch Changes
@xnetjs/storage@2.0.0
Patch Changes
e2e78cd,0f7ef43]:@xnetjs/sync@2.0.0
Patch Changes
@xnetjs/core@2.0.0
xnet-cloud@0.0.18
Patch Changes
xnet-demos@0.1.2
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/brain@0.0.19
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/comms@0.0.19
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/dashboard@0.0.19
Patch Changes
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/labs@0.0.19
Patch Changes
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/licenses@0.0.19
Patch Changes
@xnetjs/maps@0.0.19
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/meetings@0.0.12
Patch Changes
6a5a15e,2a7b80f,85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/server@0.0.18
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/social@0.0.19
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:@xnetjs/unreal@0.0.19
Patch Changes
85c9700,a91f278,dd956e5,e4cb876,e2e78cd,0f7ef43]:xnet-desktop@2.0.0
Desktop shell release riding the @xnetjs/core 2.0.0 train. Desktop-specific changes are not tracked here; see the core packages' changelogs for what shipped.