@hadden-industries/markdown-quality 1.0.1 → 1.0.2

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.
@@ -78,6 +78,8 @@ These are conservative operational limits; benchmark and platform acceptance rem
78
78
 
79
79
  Formatting compares maintained parsed structure and literals before replacement and verifies convergence.
80
80
  Fenced and indented code retain literal whitespace, including whitespace-only lines and trailing spaces; embedded code formatting remains disabled.
81
+ Inline code compares [CommonMark code-span semantics](https://spec.commonmark.org/0.31.2/#code-spans): each line ending means one space, while interior spaces, tabs and other literal characters remain significant.
82
+ Delimiter padding is already handled by the maintained parser; the comparison does not collapse or trim additional whitespace.
81
83
  The parsed comparison is an additional backstop, not a universal rendered-equivalence guarantee.
82
84
  It conservatively refuses unsupported semantic or literal changes.
83
85
  Ordinary file permission bits are preserved; ownership changes, alternate streams, ACL inheritance, arbitrary metadata, and adversarial filesystem races are not promised as preserved.
@@ -20,10 +20,12 @@ Only a processing 404 is retried; mismatched integrity and other failures stop d
20
20
  Publication is never repeated by this availability check.
21
21
  The three bounded waits fit within the publisher's thirty-minute job limit.
22
22
 
23
- The current source prepares version 1.0.0 under the pilot tag; stable promotion remains gated.
23
+ The current source prepares version 1.0.2 under the pilot tag; stable promotion remains gated.
24
24
  Stable promotion requires the same qualified tuple on both platforms, public registry readback and unauthenticated installation, both pilot acceptances, and a timed restoration exercise.
25
25
  The 1.0.1 corrective candidate restores checking and formatting of literal code lines containing trailing or whitespace-only spaces.
26
- This repair changes shipped JavaScript and therefore requires a new coordinated patch version; completing the unchanged 1.0.0 archives remains a separate recovery operation.
26
+ The original 1.0.1 tuple is published under `pilot` and passed both-platform complete registry qualification in recovery run `37413673170`, without republishing any package.
27
+ The 1.0.2 correction compares inline-code line endings as spaces under CommonMark, retaining meaningful interior whitespace and the strict fenced/indented-code guard.
28
+ This repair changes shipped JavaScript and therefore requires a new coordinated patch version; the unchanged 1.0.0 tuple completed registry qualification separately in recovery run `37409484508`.
27
29
  Keep latest promotion blocked until the literal-preservation repair and exact candidate satisfy the same platform, registry and pilot gates.
28
30
  Changed/referrer mode and later fleet adoptions remain deferred.
29
31
 
@@ -47,8 +49,8 @@ An upstream Cargo lock is a superset of features and development inputs and does
47
49
  The original upstream license and per-asset repack identity are retained.
48
50
 
49
51
  The owner selected public distribution after npm rejected the private publication with E402.
50
- All three packages declare public access and share the source candidate version 1.0.0.
51
- It retains alpha.4's qualified native executable/source/notice bytes and avoids duplicate formatting of byte-identical documents while retaining independent prose checks and preservation/convergence checks.
52
+ All three packages declare public access and share the source candidate version 1.0.2.
53
+ The tuple retains alpha.4's qualified native executable/source/notice bytes and avoids duplicate formatting of byte-identical documents while retaining independent prose checks and preservation/convergence checks.
52
54
  The first alpha.3 hosted OWLAPI shadow checks passed correctness but exceeded the accepted 30-second budget on both platforms.
53
55
  Alpha.3 and alpha.4 remain immutable historical evidence; every new tuple requires fresh transported-archive, registry, and exact-version pilot qualification before promotion.
54
56
  The public alpha.2 archives remain immutable historical delivery evidence and are unqualified for Linux execution.
@@ -66,6 +68,8 @@ Each downstream job rehashes its downloaded archives against the admitted manife
66
68
  The publisher rechecks current main, all three local archive hashes and version absence immediately before each single eligible publication, verifies both native archives before core, and uses only pilot.
67
69
  Only the publication job has OIDC issuance permission; no long-lived npm token is supplied.
68
70
  Both registry jobs use native npm signature/attestation verification and bind each installed package to its admitted source, workflow, exact publication run and attempt.
71
+ Their explicit non-cancellation and successful-publication condition prevents a skipped recovery ancestor from suppressing final qualification after ordinary publication.
72
+ Successful publication alone does not establish complete registry qualification; retain both actual terminal platform reports.
69
73
  Each platform installs and cryptographically verifies its supported native package and core; opposite-platform native archives receive anonymous raw-byte verification, with the combined platform records covering the complete tuple.
70
74
  Structural provenance fixtures do not establish cryptographic acceptance.
71
75
  The workflow does not promote latest; both pilots and recovery must accept the exact tuple first.
@@ -115,7 +119,8 @@ The memory budgets are 512 MiB Windows Job Object committed memory and 512 MiB L
115
119
  These budgets do not impose OS runtime limits or raise existing package limits.
116
120
  Require zero unexpected errors or adjudicated false positives in the window and accepted fixture/probe corpus, retaining expected negative probes separately.
117
121
  Rehearse one task-owned pilot restoration within 60 minutes through byte/sentinel readback and incumbent local checks; hosted required-status recovery remains separate acceptance evidence.
118
- Accepted budgets do not establish that the pending Linux corpus, hosted pilots, or restoration have passed.
122
+ The alpha.4 pilot cutovers passed both hosted platform windows and scoped restoration; those records do not establish acceptance of a later exact tuple.
123
+ Version 1.0.1 requires fresh per-consumer scope, hosted platform windows, restoration and exact trusted-run acceptance before promotion.
119
124
 
120
125
  Provide AGPL corresponding source and build materials alongside object-code delivery to actual recipients.
121
126
  Preserve third-party license texts and attribution.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hadden-industries/markdown-quality",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Shared, bounded Markdown formatting, GFM linting, and local-link checking",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-only",
@@ -46,7 +46,7 @@
46
46
  "prettier": "3.9.9"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@hadden-industries/markdown-quality-win32-x64": "1.0.1",
50
- "@hadden-industries/markdown-quality-linux-x64": "1.0.1"
49
+ "@hadden-industries/markdown-quality-win32-x64": "1.0.2",
50
+ "@hadden-industries/markdown-quality-linux-x64": "1.0.2"
51
51
  }
52
52
  }
package/src/formatting.js CHANGED
@@ -11,6 +11,10 @@ function semantic(node) {
11
11
  if (key === "children") value.children = item.map(semantic);
12
12
  else if (key === "value" && node.type === "text")
13
13
  value.value = item.replace(/\s+/gu, " ");
14
+ // CommonMark code spans turn each line ending into one space. The parser
15
+ // already strips delimiter padding; preserve all other literal characters.
16
+ else if (key === "value" && node.type === "inlineCode")
17
+ value.value = item.replace(/\r\n|\r|\n/gu, " ");
14
18
  else value[key] = item;
15
19
  }
16
20
  return value;