chainlesschain 0.45.2 → 0.45.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainlesschain",
3
- "version": "0.45.2",
3
+ "version": "0.45.3",
4
4
  "description": "CLI for ChainlessChain - install, configure, and manage your personal AI management system",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,8 +55,8 @@ function buildHtml({
55
55
  <title>${escapeHtml(title)}</title>
56
56
  <script>window.__CC_CONFIG__ = ${cfg};</script>
57
57
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css">
58
- <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/12.0.0/marked.min.js"></script>
59
- <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
58
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js" defer></script>
59
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" defer></script>
60
60
  <style>
61
61
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
62
62
 
@@ -460,7 +460,7 @@ function buildHtml({
460
460
  <div id="conn-dot"></div>
461
461
  <span id="conn-label">未连接</span>
462
462
  </div>
463
- <span id="version-label">v5.0.2.3</span>
463
+ <span id="version-label">v5.0.2.4</span>
464
464
  </div>
465
465
  </nav>
466
466
 
@@ -560,18 +560,24 @@ function buildHtml({
560
560
  emptyDesc.textContent = '全局模式:未绑定项目,可直接对话或管理项目。';
561
561
  }
562
562
 
563
- // ── marked.js config ────────────────────────────────────────────────────
564
- if (window.marked) {
565
- marked.setOptions({
566
- highlight: (code, lang) => {
567
- if (window.hljs && lang && hljs.getLanguage(lang)) {
568
- return hljs.highlight(code, { language: lang }).value;
569
- }
570
- return window.hljs ? hljs.highlightAuto(code).value : code;
571
- },
572
- breaks: true,
573
- gfm: true,
574
- });
563
+ // ── marked.js config (deferred — called after defer scripts load) ────────
564
+ function initMarked() {
565
+ if (window.marked) {
566
+ try {
567
+ marked.setOptions({
568
+ highlight: (code, lang) => {
569
+ if (window.hljs && lang && hljs.getLanguage(lang)) {
570
+ return hljs.highlight(code, { language: lang }).value;
571
+ }
572
+ return window.hljs ? hljs.highlightAuto(code).value : code;
573
+ },
574
+ breaks: true,
575
+ gfm: true,
576
+ });
577
+ } catch (_) {
578
+ // marked v10+ removed highlight option — ignore, fallback renderer handles it
579
+ }
580
+ }
575
581
  }
576
582
 
577
583
  // ── WebSocket ────────────────────────────────────────────────────────────
@@ -888,7 +894,7 @@ function buildHtml({
888
894
  el.className = 'message user';
889
895
  el.innerHTML =
890
896
  '<div class="msg-avatar">U</div>' +
891
- '<div class="msg-bubble">' + esc(text).replace(/\n/g, '<br>') + '</div>';
897
+ '<div class="msg-bubble">' + esc(text).split('\\n').join('<br>') + '</div>';
892
898
  messages.appendChild(el);
893
899
  scrollToBottom();
894
900
  }
@@ -1077,11 +1083,14 @@ function buildHtml({
1077
1083
  if (window.marked) {
1078
1084
  try { return marked.parse(text); } catch (_) { /* fall through */ }
1079
1085
  }
1080
- return esc(text).replace(/\n/g, '<br>');
1086
+ return esc(text).split('\\n').join('<br>');
1081
1087
  }
1082
1088
 
1083
1089
  // ── Start ────────────────────────────────────────────────────────────────
1090
+ // Connect immediately — do NOT wait for defer scripts (marked/hljs)
1084
1091
  connect();
1092
+ // Init marked after defer scripts finish loading
1093
+ window.addEventListener('load', initMarked);
1085
1094
  })();
1086
1095
  </script>
1087
1096
  </body>