flux-md 0.18.1 → 0.18.3
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.
- package/CHANGELOG.md +36 -0
- package/dist/wasm/flux_md_core_bg.wasm +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,42 @@ Notable changes to flux-md. Format based on
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/); this project aims to follow
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## 0.18.3 — 2026-06-29
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **Nested bullets flattened mid-stream (a visible list reflow).** While
|
|
12
|
+
streaming a *loose* outer list (items separated by a blank line) whose items
|
|
13
|
+
contain indented nested sub-bullets, the incremental list fast path treated a
|
|
14
|
+
2-space-indented sub-bullet marker as a top-level **sibling** (it accepted any
|
|
15
|
+
marker within `edge + 3` columns). So the moment the outer list's second item
|
|
16
|
+
began streaming, the first item's nested `<ul>` **collapsed into flat top-level
|
|
17
|
+
items**, then re-nested at finalize — a jarring "indentation disappears then
|
|
18
|
+
comes back" flicker. The sibling test now uses the first item's content column,
|
|
19
|
+
so a marker at or past it correctly nests (the cache bails to the full reparse,
|
|
20
|
+
which renders the nesting). Streamed output now matches a one-shot parse at
|
|
21
|
+
**every prefix**; the only remaining list change while streaming is the
|
|
22
|
+
inherent tight→loose spacing, which a non-streaming parser shows too.
|
|
23
|
+
|
|
24
|
+
## 0.18.2 — 2026-06-29
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Streaming O(n²) cliff on a paragraph followed by a long link-reference /
|
|
29
|
+
footnote definition run** (e.g. reference-heavy LLM output: prose, then a
|
|
30
|
+
block of `[id]: url` definitions). The paragraph stayed speculative until
|
|
31
|
+
`finalize()` — a definition is not a renderable block, so the paragraph never
|
|
32
|
+
became "the last block" and `committed_offset` stalled, re-scanning the whole
|
|
33
|
+
growing definition run on every append. A 235 KB document streamed at a
|
|
34
|
+
256-byte chunk took **~59 s**; it now takes **~20 ms**, and streaming is linear
|
|
35
|
+
in document size across all chunk sizes. A renderable block followed by a
|
|
36
|
+
definition run now commits (a definition only parses at a block boundary, so
|
|
37
|
+
the block is closed). Narrow behavior note, within the existing
|
|
38
|
+
forward-reference limitation: the single paragraph immediately before such a
|
|
39
|
+
run now commits before the later definitions, so a *forward* reference from it
|
|
40
|
+
renders literally instead of resolving at finalize — consistent with every
|
|
41
|
+
earlier paragraph, which already commits mid-stream.
|
|
42
|
+
|
|
7
43
|
## 0.18.1 — 2026-06-29
|
|
8
44
|
|
|
9
45
|
Performance + size pass. No API or output changes — CommonMark 652/652 and
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flux-md",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.3",
|
|
4
4
|
"description": "Zero-dep streaming markdown for the browser. Rust→WASM core, Web Worker per stream, incremental parse with speculative closure.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": ["./dist/worker.js", "./dist/styles.css"],
|