yrby 0.7.1-aarch64-linux → 0.8.1-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +88 -0
- data/README.md +593 -384
- data/lib/generators/yrby/install/install_generator.rb +24 -13
- data/lib/generators/yrby/install/templates/document_channel.rb +4 -7
- data/lib/generators/yrby/tables/tables_generator.rb +7 -4
- data/lib/generators/yrby/tables/templates/create_y_tables.rb +1 -1
- data/lib/y/3.4/yrby.so +0 -0
- data/lib/y/4.0/yrby.so +0 -0
- data/lib/y/collaborative/attribute.rb +53 -0
- data/lib/y/collaborative/helper.rb +48 -0
- data/lib/y/collaborative.rb +98 -0
- data/lib/y/lexxy.rb +4 -4
- data/lib/y/rendering.rb +39 -15
- data/lib/y/tiptap.rb +3 -3
- data/lib/y/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f2a8adb2628da0f03d1f51aaaa8e9d4fff8b312ec2721e553a5948644bc2c316
|
|
4
|
+
data.tar.gz: b3f8faa69b75d3d4ec8bc005f968e221da4039d7193401337c14a9e0582d87c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a4a916bd3d7534bf7c39c6fcfb9fc3ca1b90931bb3887cb4e38faab64d7e8264dd0bbc7902f3c479da32037e64dea3fbfbb4ccdbd5b4d287dd04c05fc0859f3d
|
|
7
|
+
data.tar.gz: 9725fd1c74ddaa31b4248f3b318eff62c754970468700e4e5a59db3179923be516628ccd1d2a24219abaff0aca15be26aac701efcfff76bf1fcaa9302b7f7cb2
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,94 @@ All notable changes to this project are documented here. The format is based on
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project aims
|
|
5
5
|
to follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.8.1] - 2026-10-03
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `unknown_types` on `Y::Lexical` and `Y::ProseMirror`, and so on `Y::Lexxy`
|
|
14
|
+
and `Y::Tiptap`. It lists the node types in a document that neither the
|
|
15
|
+
built-in schema nor a rule handles, which are the ones `to_html` can't fully
|
|
16
|
+
render. Render a real document from your editor in a test and assert the list
|
|
17
|
+
is empty.
|
|
18
|
+
- The renderer crates export `escape_text` and `escape_attr` for callers that
|
|
19
|
+
build their own markup (`lexical-yjs-html` 0.1.4, `prosemirror-yjs-html`
|
|
20
|
+
0.1.5).
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- The demo app and the render-parity test run on Lexxy 1.0. `Y::Lexxy`
|
|
25
|
+
output matches Lexxy 1.0's own `value`, including image alt text edited
|
|
26
|
+
after the document syncs.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- The Lexical renderers keep the text of an unknown inline wrapper, such as a
|
|
31
|
+
mark with no rule. The text renders without the wrapper. Before, the whole
|
|
32
|
+
node rendered as nothing, so its text was missing from the HTML.
|
|
33
|
+
- `Y::Lexxy`'s list-item rule escapes the stored `__checked` and `__value`
|
|
34
|
+
attributes. Collaborators write those attributes, and a crafted value could
|
|
35
|
+
break out of the HTML attribute. Normal values (booleans and integers) render
|
|
36
|
+
the same as before.
|
|
37
|
+
- The crate READMEs' callback examples escape the values they insert, and both
|
|
38
|
+
READMEs describe how unknown node types render.
|
|
39
|
+
|
|
40
|
+
## [0.8.0] - 2026-10-01
|
|
41
|
+
|
|
42
|
+
This release ships alongside yrby-client 0.6.0, and the client entries below
|
|
43
|
+
are for that version.
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- `Doc#read_array(name)` returns a `Y.Array` root as a JSON string, for
|
|
48
|
+
documents whose content lives in an array.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- yrby-client document elements now use shared document sessions scoped to
|
|
53
|
+
the consumer. A session tracks pending delivery separately from the editors
|
|
54
|
+
attached to it, and each editor binding gets an abort signal for cleanup. A
|
|
55
|
+
clean remount after a delay reloads from the server. `doc` and `provider`
|
|
56
|
+
are unavailable until the session is acquired and while it is retargeting.
|
|
57
|
+
Turbo no longer serializes CRDT state into cached HTML. Turbolinks 5 works
|
|
58
|
+
the same way, with its before-cache, render, load, and preview signals
|
|
59
|
+
handled alongside Turbo's.
|
|
60
|
+
- Managed sessions expose their delivery status and hold rejected work until
|
|
61
|
+
you call `retry()` or `discard()`. Each session uses its own subscription
|
|
62
|
+
nonce, so acknowledgment sequences from different sessions don't mix.
|
|
63
|
+
Provider status events now include a `pending` flag.
|
|
64
|
+
- The element accepts a `refresh` attribute. If a subscription is rejected
|
|
65
|
+
and `refresh` is set, the session fetches that URL once, expects
|
|
66
|
+
`{ "grant": ... }` back, and resubscribes with the new grant, keeping the
|
|
67
|
+
same document and pending edits. A failed fetch or a second rejection
|
|
68
|
+
blocks the session as before. The session doesn't renew grants on a timer.
|
|
69
|
+
|
|
70
|
+
- `YProtocolSession` and `ReliableSync` renamed their transport hooks to read
|
|
71
|
+
as commands. `onConnect()`, `onDisconnect()`, and `ack()`/`onAck()` are now
|
|
72
|
+
`resume()`, `pause()`, and `acknowledge(id)`, and `ReliableSync`'s
|
|
73
|
+
`onTick()` is now `retransmit()`. `onStatusChange` keeps the `on` prefix
|
|
74
|
+
because it's the only one that registers a listener. `ReliableSync#pending`
|
|
75
|
+
returns an independent snapshot with its own copy of the update bytes, and
|
|
76
|
+
enqueueing copies the buffer you pass in.
|
|
77
|
+
- A grant refresh request now times out after 15 seconds and blocks the
|
|
78
|
+
session. Previously the session stayed offline indefinitely. If a consumer
|
|
79
|
+
throws while resubscribing with a renewed grant, that now blocks the
|
|
80
|
+
session too, where it used to be an unhandled rejection.
|
|
81
|
+
- When a status listener throws, the error goes to `onError`, and the other
|
|
82
|
+
listeners and the cable callback that fired it still run. The provider also
|
|
83
|
+
reports failures in awareness events and unsubscribe. A throwing callback
|
|
84
|
+
can't interrupt presence removal or leave the awareness timer running. If
|
|
85
|
+
the error handler itself throws, the error goes to the console.
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
|
|
89
|
+
- ActionCable providers now ignore callbacks from subscriptions that have
|
|
90
|
+
been replaced, so a late disconnect or rejection can't stop the new
|
|
91
|
+
subscription from delivering edits. Synchronous consumer callbacks wait
|
|
92
|
+
until subscription creation returns, and managed sessions use distinct
|
|
93
|
+
subscription identifiers so old ACKs stay separate.
|
|
94
|
+
|
|
7
95
|
## [0.7.1] - 2026-08-19
|
|
8
96
|
|
|
9
97
|
### Fixed
|