claude-opencode-viewer 2.6.41 → 2.6.43

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.
Files changed (3) hide show
  1. package/index-pc.html +29 -28
  2. package/index.html +29 -27
  3. package/package.json +1 -1
package/index-pc.html CHANGED
@@ -1637,6 +1637,9 @@
1637
1637
  modeSelect.value = msg.mode;
1638
1638
  document.getElementById('mode-label').textContent = '';
1639
1639
  }
1640
+ if (msg.running) {
1641
+ preloadData();
1642
+ }
1640
1643
  // 服务端无运行进程,显示启动对话框
1641
1644
  if (!msg.running && !startupDialogShown) {
1642
1645
  startupDialogShown = true;
@@ -2259,29 +2262,28 @@
2259
2262
  var bar = document.getElementById('git-diff-bar');
2260
2263
  if (diffBarVisible) {
2261
2264
  bar.classList.add('visible');
2262
- loadGitStatus(false);
2265
+ if (cachedGitStatus) {
2266
+ diffChanges = cachedGitStatus.changes || [];
2267
+ document.getElementById('git-diff-count').textContent = diffChanges.length;
2268
+ renderDiffFileList();
2269
+ } else if (gitStatusLoading) {
2270
+ document.getElementById('git-diff-file-list').innerHTML = '<div class="git-diff-loading">正在查询 git status...</div>';
2271
+ document.getElementById('git-diff-count').textContent = '...';
2272
+ } else {
2273
+ document.getElementById('git-diff-file-list').innerHTML = '<div class="git-diff-loading" style="color:#666;">点击刷新加载</div>';
2274
+ }
2263
2275
  } else {
2264
2276
  bar.classList.remove('visible');
2265
2277
  diffSelectedFile = null;
2266
2278
  }
2267
2279
  }
2268
2280
 
2269
- function loadGitStatus(forceRefresh) {
2281
+ function loadGitStatus() {
2270
2282
  var fileList = document.getElementById('git-diff-file-list');
2271
-
2272
- if (cachedGitStatus && !forceRefresh) {
2273
- diffChanges = cachedGitStatus.changes || [];
2274
- document.getElementById('git-diff-count').textContent = diffChanges.length;
2275
- renderDiffFileList();
2276
- return;
2277
- }
2278
-
2279
- fileList.innerHTML = '<div class="git-diff-loading">' + (forceRefresh ? '正在刷新...' : '正在查询 git status...') + '</div>';
2283
+ fileList.innerHTML = '<div class="git-diff-loading">正在刷新...</div>';
2280
2284
  document.getElementById('git-diff-count').textContent = '...';
2281
-
2282
- if (gitStatusLoading && !forceRefresh) return;
2283
2285
  gitStatusLoading = true;
2284
- if (forceRefresh) cachedGitStatus = null;
2286
+ cachedGitStatus = null;
2285
2287
 
2286
2288
  fetch(basePath + '/api/git-status')
2287
2289
  .then(function(r) { return r.json(); })
@@ -2423,7 +2425,7 @@
2423
2425
  document.getElementById('close-diff').addEventListener('click', toggleDiffBar);
2424
2426
  document.getElementById('refresh-diff').addEventListener('click', function(e) {
2425
2427
  e.stopPropagation();
2426
- loadGitStatus(true);
2428
+ loadGitStatus();
2427
2429
  // 重置 diff 内容区
2428
2430
  diffSelectedFile = null;
2429
2431
  document.getElementById('git-diff-content-area').innerHTML =
@@ -2445,7 +2447,14 @@
2445
2447
  var bar = document.getElementById('docs-bar');
2446
2448
  if (docsBarVisible) {
2447
2449
  bar.classList.add('visible');
2448
- loadDocs(false);
2450
+ if (cachedDocs) {
2451
+ renderDocsList(cachedDocs);
2452
+ } else if (docsLoading) {
2453
+ document.getElementById('docs-file-list').innerHTML = '<div class="docs-loading">正在查询文档...</div>';
2454
+ document.getElementById('docs-count').textContent = '...';
2455
+ } else {
2456
+ document.getElementById('docs-file-list').innerHTML = '<div class="docs-loading" style="color:#666;">点击刷新加载</div>';
2457
+ }
2449
2458
  } else {
2450
2459
  bar.classList.remove('visible');
2451
2460
  docsSelectedFile = null;
@@ -2481,20 +2490,12 @@
2481
2490
  });
2482
2491
  }
2483
2492
 
2484
- function loadDocs(forceRefresh) {
2493
+ function loadDocs() {
2485
2494
  var fileList = document.getElementById('docs-file-list');
2486
-
2487
- if (cachedDocs && !forceRefresh) {
2488
- renderDocsList(cachedDocs);
2489
- return;
2490
- }
2491
-
2492
- fileList.innerHTML = '<div class="docs-loading">' + (forceRefresh ? '正在刷新...' : '正在查询文档...') + '</div>';
2495
+ fileList.innerHTML = '<div class="docs-loading">正在刷新...</div>';
2493
2496
  document.getElementById('docs-count').textContent = '...';
2494
-
2495
- if (docsLoading && !forceRefresh) return;
2496
2497
  docsLoading = true;
2497
- if (forceRefresh) cachedDocs = null;
2498
+ cachedDocs = null;
2498
2499
 
2499
2500
  fetch(basePath + '/api/docs')
2500
2501
  .then(function(r) { return r.json(); })
@@ -2530,7 +2531,7 @@
2530
2531
  document.getElementById('close-docs').addEventListener('click', toggleDocsBar);
2531
2532
  document.getElementById('refresh-docs').addEventListener('click', function(e) {
2532
2533
  e.stopPropagation();
2533
- loadDocs(true);
2534
+ loadDocs();
2534
2535
  docsSelectedFile = null;
2535
2536
  document.getElementById('docs-content-area').innerHTML =
2536
2537
  '<div class="docs-placeholder">' +
package/index.html CHANGED
@@ -1621,6 +1621,9 @@
1621
1621
  }
1622
1622
  }
1623
1623
  else if (msg.type === 'state') {
1624
+ if (msg.running) {
1625
+ preloadData();
1626
+ }
1624
1627
  // 服务端还没启动进程时,查最近会话并自动恢复
1625
1628
  if (!msg.running && !mobileInitSent) {
1626
1629
  mobileInitSent = true;
@@ -2514,31 +2517,30 @@
2514
2517
  var bar = document.getElementById('git-diff-bar');
2515
2518
  if (diffBarVisible) {
2516
2519
  bar.classList.add('visible');
2517
- loadGitStatus(false);
2520
+ if (cachedGitStatus) {
2521
+ diffChanges = cachedGitStatus.changes || [];
2522
+ document.getElementById('git-diff-count').textContent = diffChanges.length;
2523
+ renderDiffFileList();
2524
+ } else if (gitStatusLoading) {
2525
+ document.getElementById('git-diff-file-list').innerHTML = '<div class="git-diff-loading">正在查询 git status...</div>';
2526
+ document.getElementById('git-diff-count').textContent = '...';
2527
+ } else {
2528
+ document.getElementById('git-diff-file-list').innerHTML = '<div class="git-diff-loading" style="color:#666;">点击刷新加载</div>';
2529
+ }
2518
2530
  } else {
2519
2531
  bar.classList.remove('visible');
2520
2532
  diffSelectedFile = null;
2521
2533
  }
2522
2534
  }
2523
2535
 
2524
- function loadGitStatus(forceRefresh) {
2536
+ function loadGitStatus() {
2525
2537
  var fileList = document.getElementById('git-diff-file-list');
2526
2538
 
2527
- // 有缓存且非强制刷新,直接用缓存
2528
- if (cachedGitStatus && !forceRefresh) {
2529
- diffChanges = cachedGitStatus.changes || [];
2530
- document.getElementById('git-diff-count').textContent = diffChanges.length;
2531
- renderDiffFileList();
2532
- return;
2533
- }
2534
-
2535
- // 正在加载中或需要发起请求
2536
- fileList.innerHTML = '<div class="git-diff-loading">' + (forceRefresh ? '正在刷新...' : '正在查询 git status...') + '</div>';
2539
+ fileList.innerHTML = '<div class="git-diff-loading">正在刷新...</div>';
2537
2540
  document.getElementById('git-diff-count').textContent = '...';
2538
2541
 
2539
- if (gitStatusLoading && !forceRefresh) return; // 预加载进行中,等它完成
2540
2542
  gitStatusLoading = true;
2541
- if (forceRefresh) cachedGitStatus = null;
2543
+ cachedGitStatus = null;
2542
2544
 
2543
2545
  fetch(basePath + '/api/git-status')
2544
2546
  .then(function(r) { return r.json(); })
@@ -2680,7 +2682,7 @@
2680
2682
  document.getElementById('close-diff').addEventListener('click', toggleDiffBar);
2681
2683
  document.getElementById('refresh-diff').addEventListener('click', function(e) {
2682
2684
  e.stopPropagation();
2683
- loadGitStatus(true);
2685
+ loadGitStatus();
2684
2686
  // 重置 diff 内容区
2685
2687
  diffSelectedFile = null;
2686
2688
  document.getElementById('git-diff-content-area').innerHTML =
@@ -2702,7 +2704,14 @@
2702
2704
  var bar = document.getElementById('docs-bar');
2703
2705
  if (docsBarVisible) {
2704
2706
  bar.classList.add('visible');
2705
- loadDocs(false);
2707
+ if (cachedDocs) {
2708
+ renderDocsList(cachedDocs);
2709
+ } else if (docsLoading) {
2710
+ document.getElementById('docs-file-list').innerHTML = '<div class="docs-loading">正在查询文档...</div>';
2711
+ document.getElementById('docs-count').textContent = '...';
2712
+ } else {
2713
+ document.getElementById('docs-file-list').innerHTML = '<div class="docs-loading" style="color:#666;">点击刷新加载</div>';
2714
+ }
2706
2715
  } else {
2707
2716
  bar.classList.remove('visible');
2708
2717
  docsSelectedFile = null;
@@ -2738,21 +2747,14 @@
2738
2747
  });
2739
2748
  }
2740
2749
 
2741
- function loadDocs(forceRefresh) {
2750
+ function loadDocs() {
2742
2751
  var fileList = document.getElementById('docs-file-list');
2743
2752
 
2744
- // 有缓存且非强制刷新,直接用缓存
2745
- if (cachedDocs && !forceRefresh) {
2746
- renderDocsList(cachedDocs);
2747
- return;
2748
- }
2749
-
2750
- fileList.innerHTML = '<div class="docs-loading">' + (forceRefresh ? '正在刷新...' : '正在查询文档...') + '</div>';
2753
+ fileList.innerHTML = '<div class="docs-loading">正在刷新...</div>';
2751
2754
  document.getElementById('docs-count').textContent = '...';
2752
2755
 
2753
- if (docsLoading && !forceRefresh) return;
2754
2756
  docsLoading = true;
2755
- if (forceRefresh) cachedDocs = null;
2757
+ cachedDocs = null;
2756
2758
 
2757
2759
  fetch(basePath + '/api/docs')
2758
2760
  .then(function(r) { return r.json(); })
@@ -2788,7 +2790,7 @@
2788
2790
  document.getElementById('close-docs').addEventListener('click', toggleDocsBar);
2789
2791
  document.getElementById('refresh-docs').addEventListener('click', function(e) {
2790
2792
  e.stopPropagation();
2791
- loadDocs(true);
2793
+ loadDocs();
2792
2794
  docsSelectedFile = null;
2793
2795
  document.getElementById('docs-content-area').innerHTML =
2794
2796
  '<div class="docs-placeholder">' +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-opencode-viewer",
3
- "version": "2.6.41",
3
+ "version": "2.6.43",
4
4
  "description": "A unified terminal viewer for Claude Code and OpenCode with seamless switching",
5
5
  "type": "module",
6
6
  "main": "server.js",