@ai-matrx/content-ir 0.12.0 → 0.13.0
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 +48 -0
- package/dist/index.cjs +328 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +323 -88
- package/dist/index.js.map +1 -1
- package/dist/source.cjs +328 -87
- package/dist/source.cjs.map +1 -1
- package/dist/source.d.cts +76 -8
- package/dist/source.d.ts +76 -8
- package/dist/source.js +323 -88
- package/dist/source.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.0 — 2026-09-25
|
|
4
|
+
|
|
5
|
+
**`/source` — fixes from the RC-B3 independent verification**
|
|
6
|
+
(common-docs `projects/rich-content-unification/evidence/verify-RC-B3.md`).
|
|
7
|
+
Every finding got a failing test first (`__tests__/source-verify-findings.test.ts`,
|
|
8
|
+
14 of the 17 non-timing tests red on 0.12.0), then the fix:
|
|
9
|
+
|
|
10
|
+
- **THE nested-fence rule now lives here** (`source/fence-nesting.ts`, moved from
|
|
11
|
+
matrx-frontend `components/markdown-core/fence-nesting.ts`): inside a
|
|
12
|
+
```` ```markdown ```` / `md` / `mdx` fence, ```` ```lang ```` opens a nested
|
|
13
|
+
fence and a bare ```` ``` ```` closes the innermost one; a nested fence still
|
|
14
|
+
open at the end of the text retries strict CommonMark. The tokenizer uses it,
|
|
15
|
+
so it ends a nested markdown fence exactly where the renderer does (real row:
|
|
16
|
+
note `f9b7e9a2-…`). Generated cross-language vectors
|
|
17
|
+
`__tests__/fence-nesting-vectors.json`; aidream matrx-ai's Python twin runs a
|
|
18
|
+
byte-identical copy and fails on drift.
|
|
19
|
+
- **Islands change only through `islandEdit(island, text)`.** A plain edit must
|
|
20
|
+
carry every island inside its range back byte-identical and in order —
|
|
21
|
+
otherwise `SourceSpliceError("island_edit")` names the island. Edits are
|
|
22
|
+
diffed segment by segment between islands, so anchors inside an edited
|
|
23
|
+
paragraph map exactly.
|
|
24
|
+
- **Integrity is refused by default.** `requireIntegrity` defaults to `true`;
|
|
25
|
+
`false` is documented as tooling-only.
|
|
26
|
+
- **Linear time on pathological input.** Every closer search goes through an
|
|
27
|
+
occurrence index; code spans use a per-paragraph run table; the single-`$`
|
|
28
|
+
scan stops at the rule's 400-character limit; embedded `__kind` probing has a
|
|
29
|
+
per-paragraph budget; `readXmlTag` takes a finder. 2 MB of `{{`: 21 s → 41 ms.
|
|
30
|
+
- **A tree's root label belongs to the tree island** (the renderer splitter's
|
|
31
|
+
`findTreeBlockStart`).
|
|
32
|
+
- **`$$` follows the core's pairing rule** (`source/math-pairs.ts`, ported from
|
|
33
|
+
`@ai-matrx/kit/delimiter-guard`): tokens outside code pair in order, prose
|
|
34
|
+
pairs are not math, an unpaired `$$` is literal. `$$` at the end of a line
|
|
35
|
+
pairs with a later closer, and a lone `$$` never locks the rest of a document.
|
|
36
|
+
|
|
37
|
+
### Consumer action
|
|
38
|
+
|
|
39
|
+
- `spliceSave` now THROWS on an island change (`island_edit`) and on disturbed
|
|
40
|
+
integrity (`integrity`). Editors change islands with `islandEdit`; tooling
|
|
41
|
+
that wants the report passes `requireIntegrity: false`.
|
|
42
|
+
- matrx-frontend: import the fence rule from `@ai-matrx/content-ir/source`; the
|
|
43
|
+
local `components/markdown-core/fence-nesting.ts` is deleted.
|
|
44
|
+
|
|
45
|
+
## 0.12.1
|
|
46
|
+
|
|
47
|
+
Automatic changed-only republish (docs/metadata drift since the last tag — see
|
|
48
|
+
`git diff npm/content-ir-core/v0.12.0..npm/content-ir-core/v0.12.1 -- apps/shared/content-ir-core`).
|
|
49
|
+
No source changes intended and no consumer action required.
|
|
50
|
+
|
|
3
51
|
## 0.12.0 — 2026-09-23
|
|
4
52
|
|
|
5
53
|
**`/source` — the stored text is the truth, block by block** (rich-content
|